From 66721c6d6aef638f742ad1dcfefd1df4ebbb9ac1 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 29 Mar 2025 20:00:07 +0500 Subject: [PATCH 01/92] chore: update packages --- package-lock.json | 1376 +++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 1091 insertions(+), 287 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0b6988..3f175bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "hls-video-element": "^1.5.0", "markdown-to-jsx": "^7.4.7", "media-chrome": "^4.8.0", - "next": "^14.2.13", + "next": "^14.2.26", "next-plausible": "^3.12.1", "react": "^18", "react-cropper": "^2.3.3", @@ -47,6 +47,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -54,11 +55,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "node_modules/@emnapi/core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.0.tgz", + "integrity": "sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==", "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.0.tgz", + "integrity": "sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -77,6 +113,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -86,6 +123,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -109,6 +147,7 @@ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -117,6 +156,7 @@ "version": "1.6.6", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz", "integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==", + "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.6" } @@ -125,6 +165,7 @@ "version": "1.6.13", "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.9" @@ -134,6 +175,7 @@ "version": "0.26.21", "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.21.tgz", "integrity": "sha512-7P5ncDIiYd6RrwpCDbKyFzvabM014QlzlumtDbK3Bck0UueC+Rp8BLS34qcGBcN1pZCTodl4QNnCVmKv4tSxfQ==", + "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.1.1", "@floating-ui/utils": "^0.2.6", @@ -148,6 +190,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" }, @@ -159,7 +202,8 @@ "node_modules/@floating-ui/utils": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", @@ -167,6 +211,7 @@ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", @@ -181,6 +226,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -194,22 +240,25 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "deprecated": "Use @eslint/object-schema instead", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@iconify-json/fa6-brands": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@iconify-json/fa6-brands/-/fa6-brands-1.2.5.tgz", "integrity": "sha512-U/iFfziz6jSN9zArOJZYTtoj2tQyh6MxPdI8M84DQ2kEulPaj8j+h9bqvjmzszNHmD7v+kmmKd/MLkMKk+3Zuw==", "dev": true, + "license": "CC-BY-4.0", "dependencies": { "@iconify/types": "*" } }, "node_modules/@iconify-json/material-symbols": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@iconify-json/material-symbols/-/material-symbols-1.2.14.tgz", - "integrity": "sha512-S0AAFFQPVr8Dkrprspz/otNjxdD3rJRXDGZjbO8a8zn8ZR5mO8jAF81lVoTfUWxPH6SCtH2lK1JQGXHGPxld7g==", + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/@iconify-json/material-symbols/-/material-symbols-1.2.17.tgz", + "integrity": "sha512-hKb+Ii5cqLXXefYMxUB2jIc8BNqxixQogud4KU/fn0F4puM1iCdCF2lFV+0U8wnJ6dZIx6E+w8Ree4bIT7To+A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@iconify/types": "*" } @@ -219,6 +268,7 @@ "resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz", "integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@iconify/types": "*" } @@ -228,6 +278,7 @@ "resolved": "https://registry.npmjs.org/@iconify-json/twemoji/-/twemoji-1.2.2.tgz", "integrity": "sha512-ckWEY5KhIQgdFd9VGvfhecTtYUx3ihXycwlZcEws87LxuvIThMHNBCblrQQ5afhbGMfg21dF+z9F+ODMRDYHMg==", "dev": true, + "license": "CC-BY-4.0", "dependencies": { "@iconify/types": "*" } @@ -237,6 +288,7 @@ "resolved": "https://registry.npmjs.org/@iconify/tailwind/-/tailwind-1.2.0.tgz", "integrity": "sha512-KgpIHWOTcRYw1XcoUqyNSrmYyfLLqZYu3AmP8zdfLk0F5TqRO8YerhlvlQmGfn7rJXgPeZN569xPAJnJ53zZxA==", "dev": true, + "license": "MIT", "dependencies": { "@iconify/types": "^2.0.0" }, @@ -248,12 +300,14 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -270,6 +324,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -281,6 +336,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -295,6 +351,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -308,6 +365,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -316,6 +374,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -325,6 +384,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -334,38 +394,56 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", + "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, "node_modules/@next/env": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.23.tgz", - "integrity": "sha512-CysUC9IO+2Bh0omJ3qrb47S8DtsTKbFidGm6ow4gXIG6reZybqxbkH2nhdEm1tC8SmgzDdpq3BIML0PWsmyUYA==" + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz", + "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.5", "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", "dev": true, + "license": "MIT", "dependencies": { "glob": "10.3.10" } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.23.tgz", - "integrity": "sha512-WhtEntt6NcbABA8ypEoFd3uzq5iAnrl9AnZt9dXdO+PZLACE32z3a3qA5OoV20JrbJfSJ6Sd6EqGZTrlRnGxQQ==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz", + "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -375,12 +453,13 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.23.tgz", - "integrity": "sha512-vwLw0HN2gVclT/ikO6EcE+LcIN+0mddJ53yG4eZd0rXkuEr/RnOaMH8wg/sYl5iz5AYYRo/l6XX7FIo6kwbw1Q==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz", + "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -390,12 +469,13 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.23.tgz", - "integrity": "sha512-uuAYwD3At2fu5CH1wD7FpP87mnjAv4+DNvLaR9kiIi8DLStWSW304kF09p1EQfhcbUI1Py2vZlBO2VaVqMRtpg==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz", + "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -405,12 +485,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.23.tgz", - "integrity": "sha512-Mm5KHd7nGgeJ4EETvVgFuqKOyDh+UMXHXxye6wRRFDr4FdVRI6YTxajoV2aHE8jqC14xeAMVZvLqYqS7isHL+g==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz", + "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -420,12 +501,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.23.tgz", - "integrity": "sha512-Ybfqlyzm4sMSEQO6lDksggAIxnvWSG2cDWnG2jgd+MLbHYn2pvFA8DQ4pT2Vjk3Cwrv+HIg7vXJ8lCiLz79qoQ==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz", + "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -435,12 +517,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.23.tgz", - "integrity": "sha512-OSQX94sxd1gOUz3jhhdocnKsy4/peG8zV1HVaW6DLEbEmRRtUCUQZcKxUD9atLYa3RZA+YJx+WZdOnTkDuNDNA==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz", + "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -450,12 +533,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.23.tgz", - "integrity": "sha512-ezmbgZy++XpIMTcTNd0L4k7+cNI4ET5vMv/oqNfTuSXkZtSA9BURElPFyarjjGtRgZ9/zuKDHoMdZwDZIY3ehQ==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz", + "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -465,12 +549,13 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.23.tgz", - "integrity": "sha512-zfHZOGguFCqAJ7zldTKg4tJHPJyJCOFhpoJcVxKL9BSUHScVDnMdDuOU1zPPGdOzr/GWxbhYTjyiEgLEpAoFPA==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz", + "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -480,12 +565,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.23.tgz", - "integrity": "sha512-xCtq5BD553SzOgSZ7UH5LH+OATQihydObTrCTvVzOro8QiWYKdBVwcB2Mn2MLMo6DGW9yH1LSPw7jS7HhgJgjw==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz", + "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -498,6 +584,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -510,6 +597,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -518,6 +606,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -531,6 +620,7 @@ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.4.0" } @@ -539,6 +629,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -548,6 +639,7 @@ "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -557,6 +649,7 @@ "version": "15.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -580,6 +673,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -601,19 +695,22 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", - "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", - "dev": true + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true, + "license": "MIT" }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -624,22 +721,36 @@ "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" }, "node_modules/@swc/helpers": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/estree": "*", @@ -651,6 +762,7 @@ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/eslint": "*", @@ -658,27 +770,31 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.14.12", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.12.tgz", "integrity": "sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -687,13 +803,15 @@ "version": "15.7.14", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.3", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", "devOptional": true, + "license": "MIT", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -702,13 +820,15 @@ "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==" + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" }, "node_modules/@typescript-eslint/parser": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "7.2.0", "@typescript-eslint/types": "7.2.0", @@ -737,6 +857,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "7.2.0", "@typescript-eslint/visitor-keys": "7.2.0" @@ -754,6 +875,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -767,6 +889,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "7.2.0", "@typescript-eslint/visitor-keys": "7.2.0", @@ -795,6 +918,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -804,6 +928,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -824,6 +949,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -839,6 +965,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -848,6 +975,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "7.2.0", "eslint-visitor-keys": "^3.4.1" @@ -864,13 +992,228 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-ddnlXgRi0Fog5+7U5Q1qY62wl95Q1lB4tXQX1UIA9YHmRCHN2twaQW0/4tDVGCvTVEU3xEayU7VemEr7GcBYUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.3.2.tgz", + "integrity": "sha512-tnl9xoEeg503jis+LW5cuq4hyLGQyqaoBL8VdPSqcewo/FL1C8POHbzl+AL25TidWYJD+R6bGUTE381kA1sT9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.3.2.tgz", + "integrity": "sha512-zyPn9LFCCjhKPeCtECZaiMUgkYN/VpLb4a9Xv7QriJmTaQxsuDtXqOHifrzUXIhorJTyS+5MOKDuNL0X9I4EHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.3.2.tgz", + "integrity": "sha512-UWx56Wh59Ro69fe+Wfvld4E1n9KG0e3zeouWLn8eSasyi/yVH/7ZW3CLTVFQ81oMKSpXwr5u6RpzttDXZKiO4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.3.2.tgz", + "integrity": "sha512-VYGQXsOEJtfaoY2fOm8Z9ii5idFaHFYlrq3yMFZPaFKo8ufOXYm8hnfru7qetbM9MX116iWaPC0ZX5sK+1Dr+g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.3.2.tgz", + "integrity": "sha512-3zP420zxJfYPD1rGp2/OTIBxF8E3+/6VqCG+DEO6kkDgBiloa7Y8pw1o7N9BfgAC+VC8FPZsFXhV2lpx+lLRMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.3.2.tgz", + "integrity": "sha512-ZWjSleUgr88H4Kei7yT4PlPqySTuWN1OYDDcdbmMCtLWFly3ed+rkrcCb3gvqXdDbYrGOtzv3g2qPEN+WWNv5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.3.2.tgz", + "integrity": "sha512-p+5OvYJ2UOlpjes3WfBlxyvQok2u26hLyPxLFHkYlfzhZW0juhvBf/tvewz1LDFe30M7zL9cF4OOO5dcvtk+cw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.3.2.tgz", + "integrity": "sha512-yweY7I6SqNn3kvj6vE4PQRo7j8Oz6+NiUhmgciBNAUOuI3Jq0bnW29hbHJdxZRSN1kYkQnSkbbA1tT8VnK816w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.3.2.tgz", + "integrity": "sha512-fNIvtzJcGN9hzWTIayrTSk2+KHQrqKbbY+I88xMVMOFV9t4AXha4veJdKaIuuks+2JNr6GuuNdsL7+exywZ32w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.3.2.tgz", + "integrity": "sha512-OaFEw8WAjiwBGxutQgkWhoAGB5BQqZJ8Gjt/mW+m6DWNjimcxU22uWCuEtfw1CIwLlKPOzsgH0429fWmZcTGkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.3.2.tgz", + "integrity": "sha512-u+sumtO7M0AGQ9bNQrF4BHNpUyxo23FM/yXZfmVAicTQ+mXtG06O7pm5zQUw3Mr4jRs2I84uh4O0hd8bdouuvQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.3.2.tgz", + "integrity": "sha512-ZAJKy95vmDIHsRFuPNqPQRON8r2mSMf3p9DoX+OMOhvu2c8OXGg8MvhGRf3PNg45ozRrPdXDnngURKgaFfpGoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.3.2.tgz", + "integrity": "sha512-nQG4YFAS2BLoKVQFK/FrWJvFATI5DQUWQrcPcsWG9Ve5BLLHZuPOrJ2SpAJwLXQrRv6XHSFAYGI8wQpBg/CiFA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.2.tgz", + "integrity": "sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", @@ -882,6 +1225,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { @@ -889,6 +1233,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { @@ -896,6 +1241,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { @@ -903,6 +1249,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", @@ -915,6 +1262,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { @@ -922,6 +1270,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -935,6 +1284,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" @@ -945,6 +1295,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@xtuc/long": "4.2.2" @@ -955,6 +1306,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { @@ -962,6 +1314,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -979,6 +1332,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -993,6 +1347,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -1006,6 +1361,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -1021,6 +1377,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -1032,6 +1389,7 @@ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true, + "license": "BSD-3-Clause", "peer": true }, "node_modules/@xtuc/long": { @@ -1039,18 +1397,21 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true, + "license": "Apache-2.0", "peer": true }, "node_modules/@yr/monotone-cubic-spline": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", - "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", + "license": "MIT" }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1063,6 +1424,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1072,6 +1434,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1088,6 +1451,7 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -1105,6 +1469,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -1120,22 +1485,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } + "license": "MIT" }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1144,6 +1501,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1157,12 +1515,14 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1175,6 +1535,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1186,6 +1547,7 @@ "version": "3.54.1", "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.54.1.tgz", "integrity": "sha512-E4et0h/J1U3r3EwS/WlqJCQIbepKbp6wGUmaAwJOMjHUP4Ci0gxanLa7FR3okx6p9coi4st6J853/Cb1NP0vpA==", + "license": "MIT", "dependencies": { "@yr/monotone-cubic-spline": "^1.0.3", "svg.draggable.js": "^2.2.2", @@ -1199,19 +1561,22 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -1221,6 +1586,7 @@ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -1237,6 +1603,7 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -1257,6 +1624,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1266,6 +1634,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -1282,17 +1651,19 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -1306,6 +1677,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -1324,6 +1696,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -1342,6 +1715,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -1358,6 +1732,7 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -1378,13 +1753,15 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -1394,6 +1771,7 @@ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -1405,10 +1783,11 @@ } }, "node_modules/axe-core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", - "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } @@ -1418,6 +1797,7 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -1425,12 +1805,14 @@ "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==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -1443,6 +1825,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1452,6 +1835,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1478,6 +1862,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", @@ -1497,6 +1882,7 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/busboy": { @@ -1515,6 +1901,7 @@ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -1529,10 +1916,11 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -1542,13 +1930,14 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -1562,6 +1951,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1570,14 +1960,15 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", + "version": "1.0.30001707", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", + "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", "funding": [ { "type": "opencollective", @@ -1591,7 +1982,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/ce-la-react": { "version": "0.1.3", @@ -1607,6 +1999,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1622,6 +2015,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1645,6 +2039,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1657,6 +2052,7 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.0" @@ -1665,12 +2061,14 @@ "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" }, "node_modules/clsx": { "version": "2.1.1", @@ -1685,6 +2083,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1695,12 +2094,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -1709,13 +2110,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/copy-webpack-plugin": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", @@ -1738,12 +2141,14 @@ "node_modules/cropperjs": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.6.2.tgz", - "integrity": "sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==" + "integrity": "sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==", + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1757,6 +2162,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -1768,7 +2174,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/custom-media-element": { "version": "1.4.2", @@ -1780,13 +2187,15 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -1804,6 +2213,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -1821,6 +2231,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -1837,6 +2248,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.1.0.tgz", "integrity": "sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -1849,6 +2261,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -1865,20 +2278,23 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/deepmerge-ts": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.4.tgz", - "integrity": "sha512-fxqo6nHGQ9zOVgI4KXqtWXJR/yCLtC7aXIVq+6jc8tHPFUxlFmuUcm2kC4vztQ+LJxQ3gER/XAWearGYQ8niGA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", + "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==", + "license": "BSD-3-Clause", "engines": { "node": ">=16.0.0" } @@ -1888,6 +2304,7 @@ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -1905,6 +2322,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -1921,6 +2339,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1928,13 +2347,15 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1947,6 +2368,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1954,13 +2376,15 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -1973,6 +2397,7 @@ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -1985,25 +2410,30 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.96", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.96.tgz", - "integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==", + "version": "1.5.128", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz", + "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -2017,6 +2447,7 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", @@ -2082,6 +2513,7 @@ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -2091,6 +2523,7 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -2100,6 +2533,7 @@ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -2127,6 +2561,7 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/es-object-atoms": { @@ -2134,6 +2569,7 @@ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -2146,6 +2582,7 @@ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -2157,12 +2594,16 @@ } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { @@ -2170,6 +2611,7 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -2187,6 +2629,7 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -2197,6 +2640,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2210,6 +2654,7 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -2265,6 +2710,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", "dev": true, + "license": "MIT", "dependencies": { "@next/eslint-plugin-next": "14.2.5", "@rushstack/eslint-patch": "^1.3.3", @@ -2291,6 +2737,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -2302,30 +2749,31 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz", - "integrity": "sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.0.tgz", + "integrity": "sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==", "dev": true, + "license": "ISC", "dependencies": { "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.3.7", - "enhanced-resolve": "^5.15.0", - "fast-glob": "^3.3.2", - "get-tsconfig": "^4.7.5", - "is-bun-module": "^1.0.2", - "is-glob": "^4.0.3", - "stable-hash": "^0.0.4" + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.12", + "unrs-resolver": "^1.3.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + "url": "https://opencollective.com/eslint-import-resolver-typescript" }, "peerDependencies": { "eslint": "*", @@ -2346,6 +2794,7 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -2363,6 +2812,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -2372,6 +2822,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, + "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -2405,6 +2856,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -2414,6 +2866,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2426,6 +2879,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2435,6 +2889,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, + "license": "MIT", "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -2464,6 +2919,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -2496,6 +2952,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2508,6 +2965,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2520,6 +2978,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -2537,6 +2996,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2546,6 +3006,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2562,6 +3023,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2574,6 +3036,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -2591,6 +3054,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2603,6 +3067,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2615,6 +3080,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -2622,13 +3088,15 @@ "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -2638,6 +3106,7 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.8.x" @@ -2647,12 +3116,14 @@ "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 + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2668,6 +3139,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2679,13 +3151,15 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { "version": "3.0.6", @@ -2701,21 +3175,39 @@ "type": "opencollective", "url": "https://opencollective.com/fastify" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -2727,6 +3219,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2739,6 +3232,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -2755,6 +3249,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -2765,15 +3260,17 @@ } }, "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/flowbite": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-2.5.2.tgz", "integrity": "sha512-kwFD3n8/YW4EG8GlY3Od9IoKND97kitO+/ejISHSqpn3vw2i5K/+ZI8Jm2V+KC4fGdnfi0XZ+TzYqQb4Q1LshA==", + "license": "MIT", "dependencies": { "@popperjs/core": "^2.9.3", "flowbite-datepicker": "^1.3.0", @@ -2784,6 +3281,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/flowbite-datepicker/-/flowbite-datepicker-1.3.2.tgz", "integrity": "sha512-6Nfm0MCVX3mpaR7YSCjmEO2GO8CDt6CX8ZpQnGdeu03WUCWtEPQ/uy0PUiNtIJjJZWnX0Cm3H55MOhbD1g+E/g==", + "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^15.2.3", "flowbite": "^2.0.0" @@ -2793,6 +3291,7 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/flowbite-react/-/flowbite-react-0.10.2.tgz", "integrity": "sha512-qkayK6IFmfH7zuuDnHmS0hJxLtL0KpW4vo4i/VQfZ6ZfaNlUsNLQxCGcmXwbZZtUm2WVw8x71aaDOAxftG9tmg==", + "license": "MIT", "dependencies": { "@floating-ui/core": "1.6.6", "@floating-ui/react": "0.26.21", @@ -2812,6 +3311,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-2.5.1.tgz", "integrity": "sha512-7jP1jy9c3QP7y+KU9lc8ueMkTyUdMDvRP+lteSWgY5TigSZjf9K1kqZxmqjhbx2gBnFQxMl1GAjVThCa8cEpKA==", + "license": "MIT", "dependencies": { "@popperjs/core": "^2.9.3", "flowbite-datepicker": "^1.3.0", @@ -2819,10 +3319,11 @@ } }, "node_modules/for-each": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", - "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.2.7" }, @@ -2834,11 +3335,12 @@ } }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -2852,13 +3354,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2871,6 +3375,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2880,6 +3385,7 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -2900,22 +3406,24 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -2933,6 +3441,7 @@ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -2946,6 +3455,7 @@ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -2963,6 +3473,7 @@ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -2974,6 +3485,7 @@ "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -2995,6 +3507,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -3007,12 +3520,14 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true, + "license": "BSD-2-Clause", "peer": true }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -3021,6 +3536,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3036,6 +3552,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -3051,6 +3568,7 @@ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -3067,6 +3585,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.3", @@ -3087,6 +3606,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -3096,6 +3616,7 @@ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3106,19 +3627,22 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3131,6 +3655,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3140,6 +3665,7 @@ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -3152,6 +3678,7 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.0" }, @@ -3167,6 +3694,7 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3179,6 +3707,7 @@ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -3193,6 +3722,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -3212,9 +3742,9 @@ } }, "node_modules/hls.js": { - "version": "1.5.20", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.20.tgz", - "integrity": "sha512-uu0VXUK52JhihhnN/MVVo1lvqNNuhoxkonqgO3IpjvQiGpJBdIXMGkofjQb/j9zvV7a1SW8U9g1FslWx/1HOiQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.0.tgz", + "integrity": "sha512-AlW8ymcDKZuKtzXCUmEy4nOcHRkebnShH6t6hC2+QJQP0WXlTUSSO9Kp22uSEYdCgpwkXEJsfOhqxrgO2tDctQ==", "license": "Apache-2.0" }, "node_modules/ignore": { @@ -3222,6 +3752,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -3231,6 +3762,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3247,6 +3779,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -3257,6 +3790,7 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3266,13 +3800,15 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -3287,6 +3823,7 @@ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -3304,6 +3841,7 @@ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -3323,6 +3861,7 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" }, @@ -3337,6 +3876,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -3349,6 +3889,7 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -3361,12 +3902,13 @@ } }, "node_modules/is-bun-module": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", - "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.6.3" + "semver": "^7.7.1" } }, "node_modules/is-callable": { @@ -3374,6 +3916,7 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3385,6 +3928,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -3400,6 +3944,7 @@ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -3417,6 +3962,7 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -3432,6 +3978,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3441,6 +3988,7 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -3455,6 +4003,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3464,6 +4013,7 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", @@ -3481,6 +4031,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3493,6 +4044,7 @@ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3503,12 +4055,14 @@ "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -3518,6 +4072,7 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -3534,6 +4089,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3543,6 +4099,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -3561,6 +4118,7 @@ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3573,6 +4131,7 @@ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -3588,6 +4147,7 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -3604,6 +4164,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -3621,6 +4182,7 @@ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" }, @@ -3636,6 +4198,7 @@ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3648,6 +4211,7 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -3663,6 +4227,7 @@ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -3678,18 +4243,21 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "license": "ISC" }, "node_modules/iterator.prototype": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", @@ -3706,6 +4274,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -3724,6 +4293,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/node": "*", @@ -3739,6 +4309,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -3754,6 +4325,7 @@ "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -3761,13 +4333,15 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3779,32 +4353,37 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -3817,6 +4396,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -3832,6 +4412,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -3840,13 +4421,15 @@ "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" }, @@ -3859,6 +4442,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -3871,6 +4455,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3881,13 +4466,15 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.11.5" @@ -3898,6 +4485,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -3912,12 +4500,14 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -3928,12 +4518,14 @@ "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/markdown-to-jsx": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.7.3.tgz", - "integrity": "sha512-o35IhJDFP6Fv60zPy+hbvZSQMmgvSGdK5j8NRZ7FeZMY+Bgqw+dSg7SC1ZEzC26++CiOUCqkbq96/c3j/FfTEQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.7.4.tgz", + "integrity": "sha512-1bSfXyBKi+EYS3YY+e0Csuxf8oZ3decdfhOav/Z7Wrk89tjudyL5FOmwZQUoy0/qVXGUl+6Q3s2SWtpDEWITfQ==", + "license": "MIT", "engines": { "node": ">= 10" }, @@ -3946,14 +4538,15 @@ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/media-chrome": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/media-chrome/-/media-chrome-4.8.0.tgz", - "integrity": "sha512-oioEGlluW+1RqknqsszrKHDs3NZ9AaatEaE2kYYOSWxnwvVmhRTfDWT4JeMgtUr5r3i2dAI3e/qbeb1j+a0MhA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/media-chrome/-/media-chrome-4.9.0.tgz", + "integrity": "sha512-KSGZUDEt0vg0Ogx+B8YYj0O32l0ppPLR8s5rXBMOEpkLYbJrKfhSPfwTmjJGcp2Nf3F/X2ddwO96YvUXHYeYvw==", "license": "MIT", "dependencies": { "ce-la-react": "^0.1.3" @@ -3970,12 +4563,14 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -3984,6 +4579,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3996,6 +4592,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4008,6 +4605,7 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6" @@ -4018,6 +4616,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "mime-db": "1.52.0" @@ -4030,6 +4629,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", "bin": { "mini-svg-data-uri": "cli.js" } @@ -4039,6 +4639,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4051,6 +4652,7 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4059,6 +4661,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -4067,12 +4670,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -4080,15 +4685,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -4100,21 +4706,24 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/next": { - "version": "14.2.23", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.23.tgz", - "integrity": "sha512-mjN3fE6u/tynneLiEg56XnthzuYw+kD7mCujgVqioxyPqbmiotUCGJpIZGS/VaPg3ZDT1tvWxiVyRzeqJFm/kw==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz", + "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==", + "license": "MIT", "dependencies": { - "@next/env": "14.2.23", + "@next/env": "14.2.26", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -4129,15 +4738,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.23", - "@next/swc-darwin-x64": "14.2.23", - "@next/swc-linux-arm64-gnu": "14.2.23", - "@next/swc-linux-arm64-musl": "14.2.23", - "@next/swc-linux-x64-gnu": "14.2.23", - "@next/swc-linux-x64-musl": "14.2.23", - "@next/swc-win32-arm64-msvc": "14.2.23", - "@next/swc-win32-ia32-msvc": "14.2.23", - "@next/swc-win32-x64-msvc": "14.2.23" + "@next/swc-darwin-arm64": "14.2.26", + "@next/swc-darwin-x64": "14.2.26", + "@next/swc-linux-arm64-gnu": "14.2.26", + "@next/swc-linux-arm64-musl": "14.2.26", + "@next/swc-linux-x64-gnu": "14.2.26", + "@next/swc-linux-x64-musl": "14.2.26", + "@next/swc-win32-arm64-msvc": "14.2.26", + "@next/swc-win32-ia32-msvc": "14.2.26", + "@next/swc-win32-x64-msvc": "14.2.26" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -4162,6 +4771,7 @@ "version": "3.12.4", "resolved": "https://registry.npmjs.org/next-plausible/-/next-plausible-3.12.4.tgz", "integrity": "sha512-cD3+ixJxf8yBYvsideTxqli3fvrB7R4BXcvsNJz8Sm2X1QN039WfiXjCyNWkub4h5++rRs6fHhchUMnOuJokcg==", + "license": "MIT", "funding": { "url": "https://github.com/4lejandrito/next-plausible?sponsor=1" }, @@ -4189,6 +4799,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -4203,12 +4814,14 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4217,6 +4830,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4225,6 +4839,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -4234,6 +4849,7 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4246,6 +4862,7 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4255,6 +4872,7 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4271,14 +4889,16 @@ } }, "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "es-object-atoms": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -4289,6 +4909,7 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -4307,6 +4928,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -4321,6 +4943,7 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4339,6 +4962,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -4348,6 +4972,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -4365,6 +4990,7 @@ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -4382,6 +5008,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4397,6 +5024,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -4412,6 +5040,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4424,6 +5053,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4433,6 +5063,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4441,6 +5072,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -4448,12 +5080,14 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -4470,6 +5104,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -4480,12 +5115,14 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -4497,14 +5134,16 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -4514,14 +5153,15 @@ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "funding": [ { "type": "opencollective", @@ -4536,6 +5176,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -4549,6 +5190,7 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -4565,6 +5207,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" }, @@ -4593,6 +5236,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" @@ -4627,6 +5271,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.1.1" }, @@ -4641,6 +5286,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -4652,13 +5298,15 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -4684,6 +5332,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -4695,6 +5344,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -4716,13 +5366,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -4731,6 +5383,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -4742,6 +5395,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/react-cropper/-/react-cropper-2.3.3.tgz", "integrity": "sha512-zghiEYkUb41kqtu+2jpX2Ntigf+Jj1dF9ew4lAobPzI2adaPE31z0p+5TcWngK6TvmWQUwK3lj4G+NDh1PDQ1w==", + "license": "MIT", "dependencies": { "cropperjs": "^1.5.13" }, @@ -4753,6 +5407,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -4765,6 +5420,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz", "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==", + "license": "MIT", "peerDependencies": { "react": "*" } @@ -4773,7 +5429,8 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/react-toastify": { "version": "11.0.5", @@ -4792,6 +5449,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", "dependencies": { "pify": "^2.3.0" } @@ -4800,6 +5458,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -4811,6 +5470,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4823,6 +5483,7 @@ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -4845,6 +5506,7 @@ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -4865,6 +5527,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4873,6 +5536,7 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -4893,6 +5557,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -4902,14 +5567,16 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -4921,6 +5588,7 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -4937,6 +5605,7 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4970,6 +5639,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -4979,6 +5649,7 @@ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -5011,13 +5682,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -5034,6 +5707,7 @@ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -5050,6 +5724,7 @@ "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } @@ -5059,6 +5734,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -5078,6 +5754,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5094,6 +5771,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -5105,13 +5783,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -5124,6 +5804,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -5133,6 +5814,7 @@ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -5150,6 +5832,7 @@ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -5165,6 +5848,7 @@ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -5178,6 +5862,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5189,6 +5874,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5198,6 +5884,7 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -5217,6 +5904,7 @@ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -5233,6 +5921,7 @@ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -5251,6 +5940,7 @@ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -5269,6 +5959,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -5281,6 +5972,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -5293,6 +5985,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.10.0" @@ -5302,6 +5995,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -5311,6 +6005,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "buffer-from": "^1.0.0", @@ -5318,10 +6013,11 @@ } }, "node_modules/stable-hash": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", - "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", - "dev": true + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" }, "node_modules/streamsearch": { "version": "1.1.0", @@ -5335,6 +6031,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -5352,6 +6049,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5364,12 +6062,14 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5381,6 +6081,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -5396,6 +6097,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -5410,6 +6112,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -5437,6 +6140,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -5447,6 +6151,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -5468,6 +6173,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -5486,6 +6192,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -5502,6 +6209,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5514,6 +6222,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5526,6 +6235,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -5535,6 +6245,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5546,6 +6257,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -5568,6 +6280,7 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -5596,6 +6309,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5607,6 +6321,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5618,6 +6333,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "license": "MIT", "dependencies": { "svg.js": "^2.0.1" }, @@ -5629,6 +6345,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "license": "MIT", "dependencies": { "svg.js": ">=2.3.x" }, @@ -5640,6 +6357,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "license": "MIT", "dependencies": { "svg.js": "^2.2.5" }, @@ -5650,12 +6368,14 @@ "node_modules/svg.js": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", - "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==", + "license": "MIT" }, "node_modules/svg.pathmorphing.js": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "license": "MIT", "dependencies": { "svg.js": "^2.4.0" }, @@ -5667,6 +6387,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "license": "MIT", "dependencies": { "svg.js": "^2.6.5", "svg.select.js": "^2.1.2" @@ -5679,6 +6400,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "license": "MIT", "dependencies": { "svg.js": "^2.2.5" }, @@ -5690,6 +6412,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "license": "MIT", "dependencies": { "svg.js": "^2.6.5" }, @@ -5698,9 +6421,9 @@ } }, "node_modules/swiper": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.2.tgz", - "integrity": "sha512-FmAN6zACpVUbd/1prO9xQ9gKo9cc6RE2UKU/z4oXtS8fNyX4sdOW/HHT/e444WucLJs0jeMId6WjdWM2Lrs8zA==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.6.tgz", + "integrity": "sha512-8aXpYKtjy3DjcbzZfz+/OX/GhcU5h+looA6PbAzHMZT6ESSycSp9nAjPCenczgJyslV+rUGse64LMGpWE3PX9Q==", "funding": [ { "type": "patreon", @@ -5711,14 +6434,16 @@ "url": "http://opencollective.com/swiper" } ], + "license": "MIT", "engines": { "node": ">= 4.7.0" } }, "node_modules/swr": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.2.tgz", - "integrity": "sha512-RosxFpiabojs75IwQ316DGoDRmOqtiAj0tg8wCcbEu4CiLZBs/a9QNtHV7TUfDXmmlgqij/NqzKq/eLelyv9xA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.3.tgz", + "integrity": "sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==", + "license": "MIT", "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.4.0" @@ -5730,12 +6455,14 @@ "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" }, "node_modules/tailwind-merge": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" @@ -5746,6 +6473,7 @@ "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz", "integrity": "sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.13.0" }, @@ -5757,6 +6485,7 @@ "version": "3.4.17", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -5794,15 +6523,18 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=6" } }, "node_modules/terser": { - "version": "5.38.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.38.1.tgz", - "integrity": "sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -5818,10 +6550,11 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -5857,18 +6590,21 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -5877,6 +6613,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -5884,10 +6621,28 @@ "node": ">=0.8" } }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -5900,6 +6655,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -5910,13 +6666,15 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -5927,13 +6685,15 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -5946,6 +6706,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5958,6 +6719,7 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -5972,6 +6734,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -5991,6 +6754,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -6012,6 +6776,7 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -6028,10 +6793,11 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", @@ -6046,6 +6812,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -6063,13 +6830,15 @@ "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unicorn-magic": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -6077,10 +6846,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unrs-resolver": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz", + "integrity": "sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/resolver-binding-darwin-arm64": "1.3.2", + "@unrs/resolver-binding-darwin-x64": "1.3.2", + "@unrs/resolver-binding-freebsd-x64": "1.3.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.3.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.3.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.3.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.3.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-x64-musl": "1.3.2", + "@unrs/resolver-binding-wasm32-wasi": "1.3.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.3.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.3.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.3.2" + } + }, "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -6096,6 +6892,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "peer": true, "dependencies": { "escalade": "^3.2.0", @@ -6113,14 +6910,16 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/use-sync-external-store": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -6128,7 +6927,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/videojs-video-element": { "version": "1.4.1", @@ -6145,6 +6945,7 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -6155,10 +6956,11 @@ } }, "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -6179,9 +6981,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, @@ -6206,6 +7008,7 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10.13.0" @@ -6216,6 +7019,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -6230,34 +7034,17 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -6273,6 +7060,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -6292,6 +7080,7 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -6319,6 +7108,7 @@ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -6333,15 +7123,17 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, @@ -6357,6 +7149,7 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6365,6 +7158,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -6382,6 +7176,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6397,12 +7192,14 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6416,6 +7213,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6427,6 +7225,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6438,6 +7237,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6452,12 +7252,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -6470,6 +7272,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6481,6 +7284,7 @@ "version": "4.5.6", "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.6.tgz", "integrity": "sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==", + "license": "MIT", "dependencies": { "use-sync-external-store": "^1.2.2" }, diff --git a/package.json b/package.json index 83db26f..750aeb8 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "hls-video-element": "^1.5.0", "markdown-to-jsx": "^7.4.7", "media-chrome": "^4.8.0", - "next": "^14.2.13", + "next": "^14.2.26", "next-plausible": "^3.12.1", "react": "^18", "react-cropper": "^2.3.3", From 9e4bf1ac7103db6692829c192f3a4be3be58bd31 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 29 Mar 2025 20:17:22 +0500 Subject: [PATCH 02/92] feat: allow to drag slider in episode selector --- app/components/ReleasePlayer/EpisodeSelector.tsx | 6 +++++- app/components/ReleasePlayer/ReleasePlayer.tsx | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/components/ReleasePlayer/EpisodeSelector.tsx b/app/components/ReleasePlayer/EpisodeSelector.tsx index 93afcd1..958555a 100644 --- a/app/components/ReleasePlayer/EpisodeSelector.tsx +++ b/app/components/ReleasePlayer/EpisodeSelector.tsx @@ -67,7 +67,10 @@ export const EpisodeSelector = (props: { enabled: true, sensitivity: 4, }} - scrollbar={true} + scrollbar={{ + enabled: true, + draggable: true, + }} allowTouchMove={true} style={ { @@ -79,6 +82,7 @@ export const EpisodeSelector = (props: { ))} - )} + } ); }; diff --git a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx index 66e646d..3d58d7e 100644 --- a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx +++ b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx @@ -40,7 +40,10 @@ import { Episode, EpisodeSelectorMenu } from "./EpisodeSelectorMenu"; import HlsVideo from "hls-video-element/react"; import VideoJS from "videojs-video-element/react"; import { ENDPOINTS } from "#/api/config"; -import { saveAnonEpisodeWatched } from "./ReleasePlayer"; +import { + getAnonEpisodesWatched, + saveAnonEpisodeWatched, +} from "./ReleasePlayer"; import { usePreferencesStore } from "#/store/preferences"; export const ReleasePlayerCustom = (props: { @@ -147,33 +150,44 @@ export const ReleasePlayerCustom = (props: { }, []); function saveEpisodeToHistory() { - if ( - preferenceStore.flags.saveWatchHistory && - episode.selected && - !episode.selected.is_watched - ) { - const objectToReplace = episode.available.find( - (arrayItem: Episode) => arrayItem.position === episode.selected.position - ); - const newObject = { - ...episode.selected, - is_watched: true, - }; - Object.assign(objectToReplace, newObject); - - saveAnonEpisodeWatched( + if (props.id && source.selected && voiceover.selected && episode.selected) { + const anonEpisodesWatched = getAnonEpisodesWatched( props.id, source.selected.id, - voiceover.selected.id, - episode.selected.position + voiceover.selected.id ); - if (props.token) { - fetch( - `${ENDPOINTS.statistic.addHistory}/${props.id}/${source.selected.id}/${episode.selected.position}?token=${props.token}` + if ( + preferenceStore.flags.saveWatchHistory && + !episode.selected.is_watched && + !Object.keys( + anonEpisodesWatched[props.id][source.selected.id][ + voiceover.selected.id + ] + ).includes(episode.selected.position.toString()) + ) { + const objectToReplace = episode.available.find( + (arrayItem: Episode) => + arrayItem.position === episode.selected.position ); - fetch( - `${ENDPOINTS.statistic.markWatched}/${props.id}/${source.selected.id}/${episode.selected.position}?token=${props.token}` + const newObject = { + ...episode.selected, + is_watched: true, + }; + Object.assign(objectToReplace, newObject); + saveAnonEpisodeWatched( + props.id, + source.selected.id, + voiceover.selected.id, + episode.selected.position ); + if (props.token) { + fetch( + `${ENDPOINTS.statistic.addHistory}/${props.id}/${source.selected.id}/${episode.selected.position}?token=${props.token}` + ); + fetch( + `${ENDPOINTS.statistic.markWatched}/${props.id}/${source.selected.id}/${episode.selected.position}?token=${props.token}` + ); + } } } } From da6639d799a14b7f96aa790ca0079581310838a5 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 12 Apr 2025 21:28:46 +0500 Subject: [PATCH 64/92] fix: episode changing via buttons --- app/components/ReleasePlayer/ReleasePlayerCustom.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx index 3d58d7e..d85368a 100644 --- a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx +++ b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx @@ -75,6 +75,7 @@ export const ReleasePlayerCustom = (props: { const [playerError, setPlayerError] = useState(null); const [playbackRate, setPlaybackRate] = useState(1); const [isErrorDetailsOpen, setIsErrorDetailsOpen] = useState(false); + const [isEpLoadingTimeout, setIsEpLoadingTimeout] = useState(null); const [retryCount, setRetryCount] = useState(0); @@ -130,13 +131,20 @@ export const ReleasePlayerCustom = (props: { }); }; if (episode.selected) { + if (isEpLoadingTimeout) { + clearTimeout(isEpLoadingTimeout); + } + setPlayerError(null); SetPlayerProps({ src: null, poster: null, type: null, }); - setPlayerError(null); - __getInfo(); + setIsEpLoadingTimeout( + setTimeout(() => { + __getInfo(); + }, 250) + ); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [episode.selected, retryCount]); From 73fb51d9149ae906c08441a1e3f779e154e40768 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sun, 13 Apr 2025 02:18:52 +0500 Subject: [PATCH 65/92] fix: parsing of kodik manifest --- app/components/ReleasePlayer/PlayerParsing.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/components/ReleasePlayer/PlayerParsing.ts b/app/components/ReleasePlayer/PlayerParsing.ts index 8b57b7f..5fca19b 100644 --- a/app/components/ReleasePlayer/PlayerParsing.ts +++ b/app/components/ReleasePlayer/PlayerParsing.ts @@ -84,15 +84,18 @@ export const _fetchKodikManifest = async ( } if (lowQualityLink.includes("https://")) { - // string the https prefix, since we add it manually + // strip the https prefix, since we add it manually lowQualityLink = lowQualityLink.replace("https://", "//"); } let manifest = `https:${lowQualityLink.replace("360.mp4:hls:", "")}`; let poster = `https:${lowQualityLink.replace("360.mp4:hls:manifest.m3u8", "thumb001.jpg")}`; - if (lowQualityLink.includes("animetvseries")) { - // if link includes "animetvseries" we need to construct manifest ourselves + if ( + lowQualityLink.includes("animetvseries") || + lowQualityLink.includes("tvseries") + ) { + // if link includes "animetvseries" or "tvseries" we need to construct manifest ourselves let blobTxt = "#EXTM3U\n"; if (data.links.hasOwnProperty("240")) { @@ -139,7 +142,7 @@ export const _fetchAnilibriaManifest = async ( ) => { const id = url.split("?id=")[1].split("&ep=")[0]; const epid = url.split("?id=")[1].split("&ep=")[1]; - const _url = `https://api.anilibria.tv/v3/title?id=${id}` + const _url = `https://api.anilibria.tv/v3/title?id=${id}`; const data = await _fetchPlayer( `https://anix-player.wah.su/?url=${_url}&player=libria`, setPlayerError From 42d838a497a57828b3ca5811801807ed78f421d4 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sun, 13 Apr 2025 02:43:32 +0500 Subject: [PATCH 66/92] fix: manual kodik manifest parsing --- app/components/ReleasePlayer/PlayerParsing.ts | 97 +++++++++++++++---- 1 file changed, 79 insertions(+), 18 deletions(-) diff --git a/app/components/ReleasePlayer/PlayerParsing.ts b/app/components/ReleasePlayer/PlayerParsing.ts index 5fca19b..bb87f33 100644 --- a/app/components/ReleasePlayer/PlayerParsing.ts +++ b/app/components/ReleasePlayer/PlayerParsing.ts @@ -61,6 +61,15 @@ export async function _fetchPlayer( return data; } +function decryptKodikLink(enc: string) { + const decryptedBase64 = enc.replace(/[a-zA-Z]/g, (e: any) => { + return String.fromCharCode( + (e <= "Z" ? 90 : 122) >= (e = e.charCodeAt(0) + 18) ? e : e - 26 + ); + }); + return atob(decryptedBase64); +} + export const _fetchKodikManifest = async ( url: string, setPlayerError: (state) => void @@ -75,12 +84,7 @@ export const _fetchKodikManifest = async ( if (!lowQualityLink.includes("//")) { // check if link is encrypted, else do nothing - const decryptedBase64 = lowQualityLink.replace(/[a-zA-Z]/g, (e) => { - return String.fromCharCode( - (e <= "Z" ? 90 : 122) >= (e = e.charCodeAt(0) + 18) ? e : e - 26 - ); - }); - lowQualityLink = atob(decryptedBase64); + lowQualityLink = decryptKodikLink(lowQualityLink); } if (lowQualityLink.includes("https://")) { @@ -100,30 +104,87 @@ export const _fetchKodikManifest = async ( if (data.links.hasOwnProperty("240")) { blobTxt += "#EXT-X-STREAM-INF:RESOLUTION=427x240,BANDWIDTH=200000\n"; - !data.links["240"][0].src.startsWith("https:") ? - (blobTxt += `https:${data.links["240"][0].src}\n`) - : (blobTxt += `${data.links["240"][0].src}\n`); + let link = data.links["240"][0].src; + let dec = null; + link.includes("//") ? + link.startsWith("https:") ? + (blobTxt += `${link}\n`) + : (blobTxt += `https:${link}\n`) + : (dec = decryptKodikLink(link)); + + dec ? + dec.startsWith("https:") ? + (blobTxt += `${dec}\n`) + : (blobTxt += `https:${dec}\n`) + : null; } if (data.links.hasOwnProperty("360")) { blobTxt += "#EXT-X-STREAM-INF:RESOLUTION=578x360,BANDWIDTH=400000\n"; - !data.links["360"][0].src.startsWith("https:") ? - (blobTxt += `https:${data.links["360"][0].src}\n`) - : (blobTxt += `${data.links["360"][0].src}\n`); + let link = data.links["360"][0].src; + let dec = null; + link.includes("//") ? + link.startsWith("https:") ? + (blobTxt += `${link}\n`) + : (blobTxt += `https:${link}\n`) + : (dec = decryptKodikLink(link)); + + dec ? + dec.startsWith("https:") ? + (blobTxt += `${dec}\n`) + : (blobTxt += `https:${dec}\n`) + : null; } if (data.links.hasOwnProperty("480")) { blobTxt += "#EXT-X-STREAM-INF:RESOLUTION=854x480,BANDWIDTH=596000\n"; - !data.links["480"][0].src.startsWith("https:") ? - (blobTxt += `https:${data.links["480"][0].src}\n`) - : (blobTxt += `${data.links["480"][0].src}\n`); + let link = data.links["480"][0].src; + let dec = null; + link.includes("//") ? + link.startsWith("https:") ? + (blobTxt += `${link}\n`) + : (blobTxt += `https:${link}\n`) + : (dec = decryptKodikLink(link)); + + dec ? + dec.startsWith("https:") ? + (blobTxt += `${dec}\n`) + : (blobTxt += `https:${dec}\n`) + : null; } if (data.links.hasOwnProperty("720")) { blobTxt += "#EXT-X-STREAM-INF:RESOLUTION=1280x720,BANDWIDTH=1280000\n"; - !data.links["720"][0].src.startsWith("https:") ? - (blobTxt += `https:${data.links["720"][0].src}\n`) - : (blobTxt += `${data.links["720"][0].src}\n`); + let link = data.links["720"][0].src; + let dec = null; + link.includes("//") ? + link.startsWith("https:") ? + (blobTxt += `${link}\n`) + : (blobTxt += `https:${link}\n`) + : (dec = decryptKodikLink(link)); + + dec ? + dec.startsWith("https:") ? + (blobTxt += `${dec}\n`) + : (blobTxt += `https:${dec}\n`) + : null; + } + + if (data.links.hasOwnProperty("1080")) { + blobTxt += "#EXT-X-STREAM-INF:RESOLUTION=1920x1080,BANDWIDTH=2560000\n"; + let link = data.links["1080"][0].src; + let dec = null; + link.includes("//") ? + link.startsWith("https:") ? + (blobTxt += `${link}\n`) + : (blobTxt += `https:${link}\n`) + : (dec = decryptKodikLink(link)); + + dec ? + dec.startsWith("https:") ? + (blobTxt += `${dec}\n`) + : (blobTxt += `https:${dec}\n`) + : null; } let file = new File([blobTxt], "manifest.m3u8", { From c2fc45340686dfd2fd8f402368b126467d7b790b Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 15:04:42 +0500 Subject: [PATCH 67/92] remove github workflow --- .github/workflows/DeployPreviewToVercel.yml | 28 --------------------- .github/workflows/DeployTagToVercel.yml | 28 --------------------- vercel.json | 6 ----- 3 files changed, 62 deletions(-) delete mode 100644 .github/workflows/DeployPreviewToVercel.yml delete mode 100644 .github/workflows/DeployTagToVercel.yml diff --git a/.github/workflows/DeployPreviewToVercel.yml b/.github/workflows/DeployPreviewToVercel.yml deleted file mode 100644 index d9e97fa..0000000 --- a/.github/workflows/DeployPreviewToVercel.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: V3 Preview Deployment -env: - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} -on: - push: - # Pattern matched against refs/tags - branches: - - 'V3' - paths-ignore: - - '**/README.md' - - '**/LICENSE' - - '**/TODO.md' - - '**/docs/**' - - '**/extension/**' -jobs: - Deploy-Preview: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Install Vercel CLI - run: npm install --global vercel@latest - - name: Pull Vercel Environment Information - run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} - - name: Build Project Artifacts - run: vercel build --token=${{ secrets.VERCEL_TOKEN }} - - name: Deploy Project Artifacts to Vercel - run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/DeployTagToVercel.yml b/.github/workflows/DeployTagToVercel.yml deleted file mode 100644 index fc7ea21..0000000 --- a/.github/workflows/DeployTagToVercel.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Production Tag Deployment -env: - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} -on: - push: - # Pattern matched against refs/tags - tags: - - '*' # Push events to every tag not containing / - paths-ignore: - - '**/README.md' - - '**/LICENSE' - - '**/TODO.md' - - '**/docs/**' - - '**/extension/**' -jobs: - Deploy-Production: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Install Vercel CLI - run: npm install --global vercel@latest - - name: Pull Vercel Environment Information - run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} - - name: Build Project Artifacts - run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} - - name: Deploy Project Artifacts to Vercel - run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }} \ No newline at end of file diff --git a/vercel.json b/vercel.json index 4197322..78bf024 100644 --- a/vercel.json +++ b/vercel.json @@ -1,10 +1,4 @@ { - "git": { - "deploymentEnabled": { - "V3": false, - "V2": false - } - }, "headers": [ { "source": "/bookmarks/:slug*", From 88064f05c47d16af18694cf7bf2a6bf3bf022088 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 15:12:53 +0500 Subject: [PATCH 68/92] remove analytics --- app/App.tsx | 9 --------- app/components/SettingsModal/SettingsModal.tsx | 17 ----------------- app/store/preferences.ts | 2 -- next.config.js | 5 +---- package-lock.json | 15 --------------- package.json | 1 - 6 files changed, 1 insertion(+), 48 deletions(-) diff --git a/app/App.tsx b/app/App.tsx index 3733cd1..5940207 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -7,7 +7,6 @@ import { useEffect, useState } from "react"; import { Button, Modal, ModalBody, ModalFooter, ModalHeader } from "flowbite-react"; import { Spinner } from "./components/Spinner/Spinner"; import { ChangelogModal } from "#/components/ChangelogModal/ChangelogModal"; -import PlausibleProvider from "next-plausible"; import { Bounce, ToastContainer } from "react-toastify"; const inter = Inter({ subsets: ["latin"] }); @@ -104,14 +103,6 @@ export const App = (props) => { - {preferencesStore.flags.enableAnalytics && ( - - )} { checked={preferenceStore.flags.saveWatchHistory} /> -
-
-

Отправка аналитики

-

- Требуется перезагрузка для применения -

-
- - preferenceStore.setFlags({ - enableAnalytics: !preferenceStore.flags.enableAnalytics, - }) - } - checked={preferenceStore.flags.enableAnalytics} - /> -

diff --git a/app/store/preferences.ts b/app/store/preferences.ts index c1e4e74..1225c2d 100644 --- a/app/store/preferences.ts +++ b/app/store/preferences.ts @@ -9,7 +9,6 @@ interface preferencesState { // saveSearchHistory: boolean; saveWatchHistory?: boolean; showChangelog?: boolean; - enableAnalytics?: boolean; showNavbarTitles?: "always" | "links" | "selected" | "never"; showFifthButton?: null | 3 | 4 | 5; }; @@ -43,7 +42,6 @@ export const usePreferencesStore = create()( // saveSearchHistory: true, saveWatchHistory: true, showChangelog: true, - enableAnalytics: true, showNavbarTitles: "always", showFifthButton: null, }, diff --git a/next.config.js b/next.config.js index bdba023..bd4aa44 100644 --- a/next.config.js +++ b/next.config.js @@ -1,4 +1,3 @@ -const { withPlausibleProxy } = require("next-plausible"); const withFlowbiteReact = require("flowbite-react/plugin/nextjs"); /** @type {import('next').NextConfig} */ const NextConfig = { @@ -75,8 +74,6 @@ const NextConfig = { }, }; -const config = withPlausibleProxy({ - customDomain: "https://analytics.wah.su", -})(withFlowbiteReact(NextConfig)); +const config = withFlowbiteReact(NextConfig); module.exports = config; diff --git a/package-lock.json b/package-lock.json index 42763d4..1e17799 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "markdown-to-jsx": "^7.4.7", "media-chrome": "^4.9.0", "next": "^14.2.26", - "next-plausible": "^3.12.1", "prettier": "^3.5.3", "react": "^18", "react-cropper": "^2.3.3", @@ -4956,20 +4955,6 @@ } } }, - "node_modules/next-plausible": { - "version": "3.12.4", - "resolved": "https://registry.npmjs.org/next-plausible/-/next-plausible-3.12.4.tgz", - "integrity": "sha512-cD3+ixJxf8yBYvsideTxqli3fvrB7R4BXcvsNJz8Sm2X1QN039WfiXjCyNWkub4h5++rRs6fHhchUMnOuJokcg==", - "license": "MIT", - "funding": { - "url": "https://github.com/4lejandrito/next-plausible?sponsor=1" - }, - "peerDependencies": { - "next": "^11.1.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 ", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", diff --git a/package.json b/package.json index cd174cc..786c656 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "markdown-to-jsx": "^7.4.7", "media-chrome": "^4.9.0", "next": "^14.2.26", - "next-plausible": "^3.12.1", "prettier": "^3.5.3", "react": "^18", "react-cropper": "^2.3.3", From f5caefdc490b121d355baa77b5f336f7df13f3ed Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 15:20:54 +0500 Subject: [PATCH 69/92] chore: update about page --- app/pages/About.tsx | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/app/pages/About.tsx b/app/pages/About.tsx index 7f6ce53..62e8486 100644 --- a/app/pages/About.tsx +++ b/app/pages/About.tsx @@ -45,8 +45,8 @@ export const AboutPage = () => { }); return ( -
- +
+
{

AniX - это неофициальный веб-клиент для Android-приложения Anixart. Он позволяет вам получать доступ к своей учетной записи - Anixart и управлять ею из веб-браузера. Так-же можно - синхронизировать и управлять списками и избранным. И самое главное - смотреть все доступные аниме из базы Anixart. + Anixart и управлять ею из веб-браузера компьютера или телефона. + В клиенте доступна синхронизация с аккаунтом и управление его списками и избранным. + А самое главное - это возможность смотреть все доступные аниме из базы Anixart даже недоступные на территории РФ.

- - -
- developer image -
-

Radiquum

-

- Разработчик -

-
-
-
-
@@ -114,7 +95,7 @@ export const AboutPage = () => {
- +

Список изменений

{current.changelog} From 743f756920b28bbe800a4e52f1e4c1037011d413 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 15:45:07 +0500 Subject: [PATCH 70/92] refactor: move parser domains to environment --- .env.sample | 5 +++ .gitignore | 3 +- app/components/ReleasePlayer/PlayerParsing.ts | 33 +++++++++++++++---- 3 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 .env.sample diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..c2f5243 --- /dev/null +++ b/.env.sample @@ -0,0 +1,5 @@ +# пример заполнения: example.com +NEXT_PUBLIC_KODIK_PARSER_DOMAIN= # Домен парсера кодика, требуется для просмотра с данного источника +NEXT_PUBLIC_ANILIBRIA_PARSER_DOMAIN= # Домен парсера анилибрии, если не заполнено, используется официальное апи +NEXT_PUBLIC_SIBNET_PARSER_DOMAIN= # Домен парсера сибнет, требуется для просмотра с данного источника +# --- \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8595241..1775543 100644 --- a/.gitignore +++ b/.gitignore @@ -60,4 +60,5 @@ videos/* !videos/*.ts public/_next-video -API-Trace/* \ No newline at end of file +API-Trace/* +.env \ No newline at end of file diff --git a/app/components/ReleasePlayer/PlayerParsing.ts b/app/components/ReleasePlayer/PlayerParsing.ts index bb87f33..3d40092 100644 --- a/app/components/ReleasePlayer/PlayerParsing.ts +++ b/app/components/ReleasePlayer/PlayerParsing.ts @@ -75,8 +75,16 @@ export const _fetchKodikManifest = async ( setPlayerError: (state) => void ) => { // Fetch episode links via edge function + if (!process.env.NEXT_PUBLIC_KODIK_PARSER_DOMAIN) { + setPlayerError({ + message: "Источник не настроен", + detail: "переменная 'NEXT_PUBLIC_KODIK_PARSER_DOMAIN' не обнаружена", + }); + return { manifest: null, poster: null }; + } + const data = await _fetchPlayer( - `https://anix-player.wah.su/?url=${url}&player=kodik`, + `https://${process.env.NEXT_PUBLIC_KODIK_PARSER_DOMAIN}/?url=${url}&player=kodik`, setPlayerError ); if (data) { @@ -204,10 +212,16 @@ export const _fetchAnilibriaManifest = async ( const id = url.split("?id=")[1].split("&ep=")[0]; const epid = url.split("?id=")[1].split("&ep=")[1]; const _url = `https://api.anilibria.tv/v3/title?id=${id}`; - const data = await _fetchPlayer( - `https://anix-player.wah.su/?url=${_url}&player=libria`, - setPlayerError - ); + let data = null; + if (process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_DOMAIN) { + data = await _fetchPlayer( + `https://${process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_DOMAIN}/?url=${_url}&player=libria`, + setPlayerError + ); + } else { + data = await _fetchPlayer(_url, setPlayerError); + } + if (data) { const host = `https://${data.player.host}`; const ep = data.player.list[epid]; @@ -229,8 +243,15 @@ export const _fetchSibnetManifest = async ( setPlayerError: (state) => void ) => { // Fetch data via cloud endpoint + if (!process.env.NEXT_PUBLIC_SIBNET_PARSER_DOMAIN) { + setPlayerError({ + message: "Источник не настроен", + detail: "переменная 'NEXT_PUBLIC_SIBNET_PARSER_DOMAIN' не обнаружена", + }); + return { manifest: null, poster: null }; + } const data = await _fetchPlayer( - `https://sibnet.anix-player.wah.su/?url=${url}`, + `https://${process.env.NEXT_PUBLIC_SIBNET_PARSER_DOMAIN}/?url=${url}`, setPlayerError ); if (data) { From 990b3c1736a1fc2cbde92625e49b6632b1bde5b0 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 22:36:44 +0500 Subject: [PATCH 71/92] feat: rewrite player parsing to js and add it them to repo --- .env.sample | 8 +- app/components/ReleasePlayer/PlayerParsing.ts | 16 +- package-lock.json | 1034 ++++++++++++++++- package.json | 2 + player-parsers/index.ts | 45 + player-parsers/kodik.ts | 95 ++ player-parsers/libria.ts | 17 + player-parsers/shared.ts | 33 + player-parsers/sibnet.ts | 59 + 9 files changed, 1275 insertions(+), 34 deletions(-) create mode 100644 player-parsers/index.ts create mode 100644 player-parsers/kodik.ts create mode 100644 player-parsers/libria.ts create mode 100644 player-parsers/shared.ts create mode 100644 player-parsers/sibnet.ts diff --git a/.env.sample b/.env.sample index c2f5243..dcb7e8b 100644 --- a/.env.sample +++ b/.env.sample @@ -1,5 +1,5 @@ -# пример заполнения: example.com -NEXT_PUBLIC_KODIK_PARSER_DOMAIN= # Домен парсера кодика, требуется для просмотра с данного источника -NEXT_PUBLIC_ANILIBRIA_PARSER_DOMAIN= # Домен парсера анилибрии, если не заполнено, используется официальное апи -NEXT_PUBLIC_SIBNET_PARSER_DOMAIN= # Домен парсера сибнет, требуется для просмотра с данного источника +# пример заполнения: https://example.com, http://0.0.0.0:80 +NEXT_PUBLIC_KODIK_PARSER_URL= # Домен парсера кодика, требуется для просмотра с данного источника +NEXT_PUBLIC_ANILIBRIA_PARSER_URL= # Домен парсера анилибрии, если не заполнено, используется официальное апи +NEXT_PUBLIC_SIBNET_PARSER_URL= # Домен парсера сибнет, требуется для просмотра с данного источника # --- \ No newline at end of file diff --git a/app/components/ReleasePlayer/PlayerParsing.ts b/app/components/ReleasePlayer/PlayerParsing.ts index 3d40092..a9e711e 100644 --- a/app/components/ReleasePlayer/PlayerParsing.ts +++ b/app/components/ReleasePlayer/PlayerParsing.ts @@ -75,16 +75,16 @@ export const _fetchKodikManifest = async ( setPlayerError: (state) => void ) => { // Fetch episode links via edge function - if (!process.env.NEXT_PUBLIC_KODIK_PARSER_DOMAIN) { + if (!process.env.NEXT_PUBLIC_KODIK_PARSER_URL) { setPlayerError({ message: "Источник не настроен", - detail: "переменная 'NEXT_PUBLIC_KODIK_PARSER_DOMAIN' не обнаружена", + detail: "переменная 'NEXT_PUBLIC_KODIK_PARSER_URL' не обнаружена", }); return { manifest: null, poster: null }; } const data = await _fetchPlayer( - `https://${process.env.NEXT_PUBLIC_KODIK_PARSER_DOMAIN}/?url=${url}&player=kodik`, + `${process.env.NEXT_PUBLIC_KODIK_PARSER_URL}/?url=${url}&player=kodik`, setPlayerError ); if (data) { @@ -213,9 +213,9 @@ export const _fetchAnilibriaManifest = async ( const epid = url.split("?id=")[1].split("&ep=")[1]; const _url = `https://api.anilibria.tv/v3/title?id=${id}`; let data = null; - if (process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_DOMAIN) { + if (process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_URL) { data = await _fetchPlayer( - `https://${process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_DOMAIN}/?url=${_url}&player=libria`, + `${process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_URL}/?url=${_url}&player=libria`, setPlayerError ); } else { @@ -243,15 +243,15 @@ export const _fetchSibnetManifest = async ( setPlayerError: (state) => void ) => { // Fetch data via cloud endpoint - if (!process.env.NEXT_PUBLIC_SIBNET_PARSER_DOMAIN) { + if (!process.env.NEXT_PUBLIC_SIBNET_PARSER_URL) { setPlayerError({ message: "Источник не настроен", - detail: "переменная 'NEXT_PUBLIC_SIBNET_PARSER_DOMAIN' не обнаружена", + detail: "переменная 'NEXT_PUBLIC_SIBNET_PARSER_URL' не обнаружена", }); return { manifest: null, poster: null }; } const data = await _fetchPlayer( - `https://${process.env.NEXT_PUBLIC_SIBNET_PARSER_DOMAIN}/?url=${url}`, + `${process.env.NEXT_PUBLIC_SIBNET_PARSER_URL}/?url=${url}&player=sibnet`, setPlayerError ); if (data) { diff --git a/package-lock.json b/package-lock.json index 1e17799..97dc195 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "apexcharts": "^3.52.0", "deepmerge-ts": "^7.1.0", + "express": "^5.1.0", "flowbite": "^2.4.1", "flowbite-react": "^0.11.7", "hls-video-element": "^1.5.0", @@ -24,6 +25,7 @@ "react-toastify": "^11.0.5", "swiper": "^11.1.4", "swr": "^2.2.5", + "tsx": "^4.19.4", "videojs-video-element": "^1.4.1", "zustand": "^4.5.4" }, @@ -91,6 +93,406 @@ "tslib": "^2.4.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", @@ -1424,6 +1826,40 @@ "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", "license": "MIT" }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", @@ -1856,6 +2292,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1932,6 +2388,15 @@ "node": ">=10.16.0" } }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -1955,7 +2420,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -1969,7 +2433,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -2144,6 +2607,45 @@ "dev": true, "license": "MIT" }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, "node_modules/copy-webpack-plugin": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", @@ -2371,6 +2873,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -2432,7 +2943,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -2449,6 +2959,12 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "license": "MIT" }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, "node_modules/electron-to-chromium": { "version": "1.5.131", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.131.tgz", @@ -2463,6 +2979,15 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", @@ -2548,7 +3073,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2558,7 +3082,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2604,7 +3127,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -2660,6 +3182,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -2671,6 +3233,12 @@ "node": ">=6" } }, + "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==", + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3160,6 +3728,15 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -3171,6 +3748,69 @@ "node": ">=0.8.x" } }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3286,6 +3926,23 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -3521,6 +4178,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3586,7 +4261,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -3611,7 +4285,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -3643,7 +4316,6 @@ "version": "4.10.0", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", - "dev": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -3786,7 +4458,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3873,7 +4544,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3927,6 +4597,34 @@ "integrity": "sha512-AlW8ymcDKZuKtzXCUmEy4nOcHRkebnShH6t6hC2+QJQP0WXlTUSSO9Kp22uSEYdCgpwkXEJsfOhqxrgO2tDctQ==", "license": "Apache-2.0" }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3980,7 +4678,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, "license": "ISC" }, "node_modules/internal-slot": { @@ -3998,6 +4695,15 @@ "node": ">= 0.4" } }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -4274,6 +4980,12 @@ "node": ">=8" } }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -4726,7 +5438,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4747,6 +5458,27 @@ "integrity": "sha512-9P2FuUHnZZ3iji+2RQk7Zkh5AmZTnOG5fODACnjhCVveX1McY3jmCRHofIEI+yTBqplz7LXy48c7fQ3Uigp88w==", "license": "MIT" }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -4897,6 +5629,15 @@ "dev": true, "license": "MIT" }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -5022,7 +5763,6 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5131,11 +5871,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -5228,6 +5979,15 @@ "node": ">=6" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5279,6 +6039,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, "node_modules/path-type": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", @@ -5518,6 +6287,19 @@ "react-is": "^16.13.1" } }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5528,6 +6310,21 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -5558,6 +6355,30 @@ "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -5750,7 +6571,6 @@ "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, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" @@ -5805,6 +6625,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5852,7 +6688,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -5904,6 +6739,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -5982,6 +6823,49 @@ "node": ">=10" } }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -5992,6 +6876,21 @@ "randombytes": "^2.1.0" } }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -6041,6 +6940,12 @@ "node": ">= 0.4" } }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6066,7 +6971,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -6086,7 +6990,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -6103,7 +7006,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -6122,7 +7024,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -6200,6 +7101,15 @@ "dev": true, "license": "MIT" }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -6909,6 +7819,15 @@ "node": ">=8.0" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, "node_modules/ts-api-utils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", @@ -6947,6 +7866,25 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tsx": { + "version": "4.19.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.4.tgz", + "integrity": "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==", + "license": "MIT", + "dependencies": { + "esbuild": "~0.25.0", + "get-tsconfig": "^4.7.5" + }, + "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", @@ -6973,6 +7911,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -7104,6 +8077,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/unrs-resolver": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.3.tgz", @@ -7188,6 +8170,15 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/videojs-video-element": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/videojs-video-element/-/videojs-video-element-1.4.1.tgz", @@ -7510,7 +8501,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, "license": "ISC" }, "node_modules/yaml": { diff --git a/package.json b/package.json index 786c656..9532e1d 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "apexcharts": "^3.52.0", "deepmerge-ts": "^7.1.0", + "express": "^5.1.0", "flowbite": "^2.4.1", "flowbite-react": "^0.11.7", "hls-video-element": "^1.5.0", @@ -25,6 +26,7 @@ "react-toastify": "^11.0.5", "swiper": "^11.1.4", "swr": "^2.2.5", + "tsx": "^4.19.4", "videojs-video-element": "^1.4.1", "zustand": "^4.5.4" }, diff --git a/player-parsers/index.ts b/player-parsers/index.ts new file mode 100644 index 0000000..d66c34a --- /dev/null +++ b/player-parsers/index.ts @@ -0,0 +1,45 @@ +import { asJSON } from "./shared"; +import { getAnilibriaURL } from "./libria"; +import { getSibnetURL } from "./sibnet"; +import { getKodikURL } from "./kodik"; + +import express from "express"; +const app = express(); + +const host = "0.0.0.0"; +const port = 7000; +const allowedPlayers = ["kodik", "libria", "sibnet"]; + +app.get("/", (req, res) => { + const url = req.query.url; + const player = req.query.player; + + if (!url) { + asJSON(res, { message: "no 'url' query provided" }, 400) + return + } + + if (!player) { + asJSON(res, { message: "no 'player' query provided" }, 400) + return + } + + switch (player) { + case "libria": + getAnilibriaURL(res, url) + return + case "sibnet": + getSibnetURL(res, url) + return + case "kodik": + getKodikURL(res, url) + return + default: + asJSON(res, { message: `player '${player}' is not supported. choose one of: ${allowedPlayers.join(", ")}` }, 400) + return + } +}); + +app.listen(port, host, function () { + console.log(`Server listens http://${host}:${port}`); +}); diff --git a/player-parsers/kodik.ts b/player-parsers/kodik.ts new file mode 100644 index 0000000..19b0ebd --- /dev/null +++ b/player-parsers/kodik.ts @@ -0,0 +1,95 @@ +import { asJSON, randomUA } from "./shared"; +const altDomains = ["kodik.info", "aniqit.com", "kodik.cc", "kodik.biz"]; + +export async function getKodikURL(res, url: string) { + const origDomain = url.replace("https://", "").split("/")[0]; + let domain = url.replace("https://", "").split("/")[0]; + + if (!altDomains.includes(domain)) { + asJSON(res, { message: "Wrong url provided for player kodik" }, 400); + return; + } + + let user_agent = randomUA(); + + let pageRes = await fetch(url, { + headers: { + "User-Agent": user_agent, + }, + }); + + if (!pageRes.ok) { + for (let i = 0; i < altDomains.length - 1; i++) { + if (url.includes(altDomains[i])) { + continue; + } + + user_agent = randomUA(); + const altDomain = altDomains[i]; + const altUrl = url.replace( + `https://${origDomain}/`, + `https://${altDomain}/` + ); + + domain = altDomain; + pageRes = await fetch(altUrl, { + headers: { + "User-Agent": user_agent, + }, + }); + + if (pageRes.ok) { + break; + } + } + } + + if (!pageRes.ok) { + asJSON(res, { message: "KODIK: failed to load page" }, 500); + return; + } + + const pageData = await pageRes.text(); + const urlParamsRe = /var urlParams = .*;$/m; + const urlParamsMatch = urlParamsRe.exec(pageData); + + if (!urlParamsMatch || urlParamsMatch.length == 0) { + asJSON(res, { message: `KODIK: failed to find data to parse` }, 500); + return; + } + + const urlParamsStr = urlParamsMatch[0] + .replace("var urlParams = '", "") + .replace("';", ""); + + const urlStr = url.replace(`https://${origDomain}/`, ""); + const type = urlStr.split("/")[0]; + const id = urlStr.split("/")[1]; + const hash = urlStr.split("/")[2]; + + const urlParams = JSON.parse(urlParamsStr); + urlParams["type"] = type; + urlParams["id"] = id; + urlParams["hash"] = hash; + + const formData = new FormData(); + for (const [key, value] of Object.entries(urlParams)) { + formData.append(key, value as any); + } + + const linksRes = await fetch(`https://${domain}/ftor`, { + method: "POST", + body: formData, + headers: { + "User-Agent": user_agent, + }, + }); + + if (!linksRes.ok) { + asJSON(res, { message: `KODIK: failed to get links` }, 500); + return; + } + + asJSON(res, await linksRes.json(), 200); + return; +} diff --git a/player-parsers/libria.ts b/player-parsers/libria.ts new file mode 100644 index 0000000..a907074 --- /dev/null +++ b/player-parsers/libria.ts @@ -0,0 +1,17 @@ +import { asJSON } from "./shared"; + +export async function getAnilibriaURL(res, url: string) { + + if (!url.includes("anilibria")) { + asJSON(res, { message: "Wrong url provided for player libria" }, 400); + return + } + + let apiRes = await fetch(url); + if (!apiRes.ok) { + asJSON(res, { message: "LIBRIA: failed to get api response" }, 500); + return + } + asJSON(res, await apiRes.json(), 200); + return +} diff --git a/player-parsers/shared.ts b/player-parsers/shared.ts new file mode 100644 index 0000000..3ce9203 --- /dev/null +++ b/player-parsers/shared.ts @@ -0,0 +1,33 @@ +export const corsHeaders = { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET,HEAD,POST,OPTIONS", + "Cache-Control": "no-cache", +}; + +export const resHeaders = { + ...corsHeaders, + "Content-Type": "application/json", +}; + +export const USERAGENTS = [ + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8", + "Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15", + "Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", +]; + +export function asJSON(res, object: any, status: number) { + res.status(status).type('application/json'); + res.set(corsHeaders) + res.send(JSON.stringify(object)); +} + +export function randomUA() { + return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length - 1)] +} \ No newline at end of file diff --git a/player-parsers/sibnet.ts b/player-parsers/sibnet.ts new file mode 100644 index 0000000..5df85b8 --- /dev/null +++ b/player-parsers/sibnet.ts @@ -0,0 +1,59 @@ +import { asJSON, randomUA } from "./shared"; + +export async function getSibnetURL(res, url: string) { + + if (!url.includes("sibnet")) { + asJSON(res, { message: "Wrong url provided for player sibnet" }, 400); + return + } + + const user_agent = randomUA(); + + let pageRes = await fetch(url, { + headers: { + "User-Agent": user_agent, + }, + }); + if (!pageRes.ok) { + asJSON(res, { message: `SIBNET:${pageRes.status}: failed to load page` }, 500) + return + } + const pageData = await pageRes.text(); + const videoRe = /\/v\/.*?\.mp4/; + const videoMatch = videoRe.exec(pageData); + + if (!videoMatch || videoMatch.length == 0) { + asJSON(res, { message: `SIBNET: failed to find data to parse` }, 500) + return + } + + const posterRe = /\/upload\/cover\/.*?\.jpg/; + const posterMatch = posterRe.exec(pageData); + + const actualVideoRes = await fetch( + `https://video.sibnet.ru${videoMatch[0]}`, + { + headers: { + "User-Agent": user_agent, + Referer: url, + }, + redirect: "manual", + } + ); + + if (!actualVideoRes.headers.get("location")) { + asJSON(res, { message: `SIBNET: failed to get video link` }, 500) + return + } + + const video = actualVideoRes.headers.get("location"); + const poster = + posterMatch ? + posterMatch.length > 0 ? + `https://st.sibnet.ru${posterMatch[0]}` + : null + : null; + + asJSON(res, { video, poster }, 200) + return +} From 51a919e2b292bfeda454d54d5c0dcff0673abadf Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 22:42:13 +0500 Subject: [PATCH 72/92] chore: move player-parsing deps to subfolder --- package-lock.json | 1034 +---------------------- package.json | 2 - player-parsers/package-lock.json | 1311 ++++++++++++++++++++++++++++++ player-parsers/package.json | 14 + 4 files changed, 1347 insertions(+), 1014 deletions(-) create mode 100644 player-parsers/package-lock.json create mode 100644 player-parsers/package.json diff --git a/package-lock.json b/package-lock.json index 97dc195..1e17799 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,6 @@ "dependencies": { "apexcharts": "^3.52.0", "deepmerge-ts": "^7.1.0", - "express": "^5.1.0", "flowbite": "^2.4.1", "flowbite-react": "^0.11.7", "hls-video-element": "^1.5.0", @@ -25,7 +24,6 @@ "react-toastify": "^11.0.5", "swiper": "^11.1.4", "swr": "^2.2.5", - "tsx": "^4.19.4", "videojs-video-element": "^1.4.1", "zustand": "^4.5.4" }, @@ -93,406 +91,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", @@ -1826,40 +1424,6 @@ "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", "license": "MIT" }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", @@ -2292,26 +1856,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/body-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", - "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.6.3", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2388,15 +1932,6 @@ "node": ">=10.16.0" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -2420,6 +1955,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2433,6 +1969,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -2607,45 +2144,6 @@ "dev": true, "license": "MIT" }, - "node_modules/content-disposition": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", - "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, "node_modules/copy-webpack-plugin": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", @@ -2873,15 +2371,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -2943,6 +2432,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -2959,12 +2449,6 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "license": "MIT" }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, "node_modules/electron-to-chromium": { "version": "1.5.131", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.131.tgz", @@ -2979,15 +2463,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", @@ -3073,6 +2548,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3082,6 +2558,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3127,6 +2604,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -3182,46 +2660,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esbuild": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.5", - "@esbuild/android-arm": "0.25.5", - "@esbuild/android-arm64": "0.25.5", - "@esbuild/android-x64": "0.25.5", - "@esbuild/darwin-arm64": "0.25.5", - "@esbuild/darwin-x64": "0.25.5", - "@esbuild/freebsd-arm64": "0.25.5", - "@esbuild/freebsd-x64": "0.25.5", - "@esbuild/linux-arm": "0.25.5", - "@esbuild/linux-arm64": "0.25.5", - "@esbuild/linux-ia32": "0.25.5", - "@esbuild/linux-loong64": "0.25.5", - "@esbuild/linux-mips64el": "0.25.5", - "@esbuild/linux-ppc64": "0.25.5", - "@esbuild/linux-riscv64": "0.25.5", - "@esbuild/linux-s390x": "0.25.5", - "@esbuild/linux-x64": "0.25.5", - "@esbuild/netbsd-arm64": "0.25.5", - "@esbuild/netbsd-x64": "0.25.5", - "@esbuild/openbsd-arm64": "0.25.5", - "@esbuild/openbsd-x64": "0.25.5", - "@esbuild/sunos-x64": "0.25.5", - "@esbuild/win32-arm64": "0.25.5", - "@esbuild/win32-ia32": "0.25.5", - "@esbuild/win32-x64": "0.25.5" - } - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -3233,12 +2671,6 @@ "node": ">=6" } }, - "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==", - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3728,15 +3160,6 @@ "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -3748,69 +3171,6 @@ "node": ">=0.8.x" } }, - "node_modules/express": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", - "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.0", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3926,23 +3286,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", - "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4178,24 +3521,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4261,6 +3586,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -4285,6 +3611,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -4316,6 +3643,7 @@ "version": "4.10.0", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -4458,6 +3786,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4544,6 +3873,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4597,34 +3927,6 @@ "integrity": "sha512-AlW8ymcDKZuKtzXCUmEy4nOcHRkebnShH6t6hC2+QJQP0WXlTUSSO9Kp22uSEYdCgpwkXEJsfOhqxrgO2tDctQ==", "license": "Apache-2.0" }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4678,6 +3980,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, "node_modules/internal-slot": { @@ -4695,15 +3998,6 @@ "node": ">= 0.4" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -4980,12 +4274,6 @@ "node": ">=8" } }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -5438,6 +4726,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5458,27 +4747,6 @@ "integrity": "sha512-9P2FuUHnZZ3iji+2RQk7Zkh5AmZTnOG5fODACnjhCVveX1McY3jmCRHofIEI+yTBqplz7LXy48c7fQ3Uigp88w==", "license": "MIT" }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5629,15 +4897,6 @@ "dev": true, "license": "MIT" }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -5763,6 +5022,7 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5871,22 +5131,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -5979,15 +5228,6 @@ "node": ">=6" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6039,15 +5279,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", - "license": "MIT", - "engines": { - "node": ">=16" - } - }, "node_modules/path-type": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", @@ -6287,19 +5518,6 @@ "react-is": "^16.13.1" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -6310,21 +5528,6 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6355,30 +5558,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==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.6.3", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -6571,6 +5750,7 @@ "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, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" @@ -6625,22 +5805,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6688,6 +5852,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -6739,12 +5904,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -6823,49 +5982,6 @@ "node": ">=10" } }, - "node_modules/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.5", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -6876,21 +5992,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/serve-static": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", - "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -6940,12 +6041,6 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6971,6 +6066,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -6990,6 +6086,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -7006,6 +6103,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -7024,6 +6122,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -7101,15 +6200,6 @@ "dev": true, "license": "MIT" }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -7819,15 +6909,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/ts-api-utils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", @@ -7866,25 +6947,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tsx": { - "version": "4.19.4", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.4.tgz", - "integrity": "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==", - "license": "MIT", - "dependencies": { - "esbuild": "~0.25.0", - "get-tsconfig": "^4.7.5" - }, - "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", @@ -7911,41 +6973,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -8077,15 +7104,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/unrs-resolver": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.3.tgz", @@ -8170,15 +7188,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/videojs-video-element": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/videojs-video-element/-/videojs-video-element-1.4.1.tgz", @@ -8501,6 +7510,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "license": "ISC" }, "node_modules/yaml": { diff --git a/package.json b/package.json index 9532e1d..786c656 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,6 @@ "dependencies": { "apexcharts": "^3.52.0", "deepmerge-ts": "^7.1.0", - "express": "^5.1.0", "flowbite": "^2.4.1", "flowbite-react": "^0.11.7", "hls-video-element": "^1.5.0", @@ -26,7 +25,6 @@ "react-toastify": "^11.0.5", "swiper": "^11.1.4", "swr": "^2.2.5", - "tsx": "^4.19.4", "videojs-video-element": "^1.4.1", "zustand": "^4.5.4" }, diff --git a/player-parsers/package-lock.json b/player-parsers/package-lock.json new file mode 100644 index 0000000..d628dca --- /dev/null +++ b/player-parsers/package-lock.json @@ -0,0 +1,1311 @@ +{ + "name": "player-parsers", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "player-parsers", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "express": "^5.1.0", + "tsx": "^4.19.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsx": { + "version": "4.19.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.4.tgz", + "integrity": "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==", + "license": "MIT", + "dependencies": { + "esbuild": "~0.25.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + } + } +} diff --git a/player-parsers/package.json b/player-parsers/package.json new file mode 100644 index 0000000..d0fb9e2 --- /dev/null +++ b/player-parsers/package.json @@ -0,0 +1,14 @@ +{ + "name": "player-parsers", + "version": "1.0.0", + "description": "Player Parsing for AniX", + "scripts": { + "serve": "npx tsx ./index.ts" + }, + "author": "", + "license": "MIT", + "dependencies": { + "express": "^5.1.0", + "tsx": "^4.19.4" + } +} From 9a2a5472177456b3bc7500d8bbc5de79c7814c72 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 23:03:35 +0500 Subject: [PATCH 73/92] feat: add docker files for player-parsers --- player-parsers/.dockerignore | 2 ++ player-parsers/Dockerfile | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 player-parsers/.dockerignore create mode 100644 player-parsers/Dockerfile diff --git a/player-parsers/.dockerignore b/player-parsers/.dockerignore new file mode 100644 index 0000000..4400aea --- /dev/null +++ b/player-parsers/.dockerignore @@ -0,0 +1,2 @@ +node_modules +README.md \ No newline at end of file diff --git a/player-parsers/Dockerfile b/player-parsers/Dockerfile new file mode 100644 index 0000000..0466a41 --- /dev/null +++ b/player-parsers/Dockerfile @@ -0,0 +1,10 @@ +FROM node:23-alpine + +WORKDIR /app + +COPY package.json package-lock.json ./ +RUN npm ci + +COPY *.ts ./ + +CMD ["npm", "run", "serve"] \ No newline at end of file From 8486e9eb82e5bf04c7021e4924ce1d3ffc7a2fc0 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Thu, 29 May 2025 23:23:14 +0500 Subject: [PATCH 74/92] chore/player-parsers: Label docker image to github repo --- player-parsers/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/player-parsers/Dockerfile b/player-parsers/Dockerfile index 0466a41..871f0b2 100644 --- a/player-parsers/Dockerfile +++ b/player-parsers/Dockerfile @@ -1,5 +1,7 @@ FROM node:23-alpine +LABEL org.opencontainers.image.source=https://github.com/radiquum/anix + WORKDIR /app COPY package.json package-lock.json ./ From a55a6c93dc9983a99ea1afdfe786613d49c4d9d4 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 01:15:37 +0500 Subject: [PATCH 75/92] feat/player-parsers: add README --- player-parsers/README.RU.md | 115 ++++++++++++++++++++++++++++++++++++ player-parsers/README.md | 115 ++++++++++++++++++++++++++++++++++++ 2 files changed, 230 insertions(+) create mode 100644 player-parsers/README.RU.md create mode 100644 player-parsers/README.md diff --git a/player-parsers/README.RU.md b/player-parsers/README.RU.md new file mode 100644 index 0000000..e107277 --- /dev/null +++ b/player-parsers/README.RU.md @@ -0,0 +1,115 @@ +# AniX - Player Parsers + +Данный под-проект позволяет получить прямые ссылки на видеофайлы с источников Sibnet, Kodik, Libria + +Он может использоваться как для основного проекта AniX, так и как отдельный сервис. + +В основном проекте, парсеры используются для работы своего плеере, если вам не важна данная функция, вы можете не развёртывать данный суб-сервис. + +Лицензия: [MIT](../LICENSE) + +## Использование + +В строке веб-браузера необходимо ввести: + +`://<:port>/?url=&player=` + +где: + +- http|https - схема по которой будет осуществляться подключение к сервису +- ip|domain - IP адрес или домен на котором находится сервис +- :port - порт сервиса, опционально +- VIDEO_URL - ссылка на видео от источника +- PLAYER_SOURCE - источник, один из: kodik, sibnet, libria + +Ответ: + +- 500|400: произошла ошибка, подробнее в строке `message` в теле ответа +- 200: запрос прошёл успешно + +## Развёртывание + +> В связи с спецификой источников, рекомендуется использовать виртуальный сервер в россии или нидерландах, т.к. они могут быть недоступны из других стран. +> +> Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как CloudFlare Workers или Deno, а только на отдельном сервере. + +
+С помощью docker + +Требования: + +- [docker](https://docs.docker.com/engine/install/) + +### Пре-билд + +1. выполните комманду: + +`docker run -d --name anix-player -p 7000:7000 ghcr.io/radiquum/anix-player-parser:29-05-2025` + +### Ручной билд + +Доп. Требования: + +- [git](https://git-scm.com/) + +1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX` +2. Переместитесь в директорию репозитория `cd AniX` +3. Переместитесь в директорию парсеров `cd player-parsers` +4. Выполните команду `docker build -t anix-player-parser .` +5. После окончания, выполните команду: `docker run -d --restart always --name anix-player -p 7000:7000 anix-player-parser` + +### Обозначения + +- -d - запустить контейнер в фоне +- --restart always - всегда запускать после перезагрузки сервера +- --name - название контейнера +- -p - порт контейнера который будет доступен из вне. ПОРТ:7000 + +### После развёртывания + +Сервис будет доступен по адресу: `http://<ВАШ IP><:ВАШ ПОРТ>/` + +### Примечание + +Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL. + +Полезные ссылки: + +- [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter) +- [Как настроить traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) + +
+ +
+С помощью pm2 + +Требования: + +- [git](https://git-scm.com/) +- [nodejs 23+ с npm](http://nodejs.org/) +- [pm2](https://pm2.keymetrics.io/) + +Инструкция: + +1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX` +2. Переместитесь в директорию репозитория `cd AniX` +3. Переместитесь в директорию парсеров `cd player-parsers` +4. Выполните команду `pm2 start index.ts -n anix-player-parser` + +### Обозначения + +- -n - название сервиса в pm2 + +### После развёртывания + +Сервис будет доступен по адресу: `http://<ВАШ IP>:7000/` + +### Примечание + +Для автоматического запуска приложения, рекомендуется настроить pm2 на автозапуск, с помощью команды: `pm2 startup` + +Полезные ссылки: + +- [PM2: подходим к вопросу процесс-менеджмента с умом @ Habr](https://habr.com/ru/articles/480670/) + +
\ No newline at end of file diff --git a/player-parsers/README.md b/player-parsers/README.md new file mode 100644 index 0000000..16b78d1 --- /dev/null +++ b/player-parsers/README.md @@ -0,0 +1,115 @@ +# AniX - Player Parsers + +This sub-project allows obtaining direct video file links from sources Sibnet, Kodik, Libria + +It can be used both for the main AniX project and as a standalone service. + +In the main project, the parsers are used to operate the internal player. If this function is not important to you, you may choose not to deploy this sub-service. + +License: [MIT](../LICENSE) + +## Usage + +In the web browser address bar, enter: + +`://<:port>/?url=&player=` + +where: + +- http|https - the scheme used to connect to the service +- ip|domain - IP address or domain where the service is hosted +- :port - service port, optional +- VIDEO_URL - the link to the video from the source +- PLAYER_SOURCE - the source, one of: kodik, sibnet, libria + +Response: + +- 500|400: an error occurred, see the `message` field in the response body for details +- 200: request was successful + +## Deployment + +> Due to the nature of the sources, it is recommended to use a virtual server in Russia or the Netherlands, as they may be inaccessible from other countries. +> +> Because of this specificity, the parsers cannot be deployed on edge services like CloudFlare Workers or Deno, only on a dedicated server. + +
+Using docker + +Requirements: + +- [docker](https://docs.docker.com/engine/install/) + +### Pre-built + +1. Run the command: + +`docker run -d --name anix-player -p 7000:7000 ghcr.io/radiquum/anix-player-parser:29-05-2025` + +### Manual build + +Additional Requirements: + +- [git](https://git-scm.com/) + +1. Clone the repository `git clone https://github.com/Radiquum/AniX` +2. Navigate to the repository directory `cd AniX` +3. Navigate to the parsers directory `cd player-parsers` +4. Run the command `docker build -t anix-player-parser .` +5. Once finished, run the command: `docker run -d --restart always --name anix-player -p 7000:7000 anix-player-parser` + +### Legend + +- -d - run the container in background +- --restart always - always restart after server reboot +- --name - container name +- -p - container port accessible externally. PORT:7000 + +### After deployment + +The service will be available at: `http://<:YOUR PORT>/` + +### Note + +To use your own domain and support the https protocol, you can use traefik or another reverse-proxy with an SSL certificate. + +Useful links: + +- [Docker run to docker compose syntax converter](https://it-tools.tech/docker-run-to-docker-compose-converter) +- [How to setup traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) + +
+ +
+Using pm2 + +Requirements: + +- [git](https://git-scm.com/) +- [nodejs 23+ with npm](http://nodejs.org/) +- [pm2](https://pm2.keymetrics.io/) + +Instructions: + +1. Clone the repository `git clone https://github.com/Radiquum/AniX` +2. Navigate to the repository directory `cd AniX` +3. Navigate to the parsers directory `cd player-parsers` +4. Run the command `pm2 start index.ts -n anix-player-parser` + +### Legend + +- -n - service name in pm2 + +### After deployment + +The service will be available at: `http://:7000/` + +### Note + +To enable automatic application start, it is recommended to configure pm2 to start on boot with the command: `pm2 startup` + +Useful links: + +- [PM2: smart approach to process management @ Habr](https://habr.com/ru/articles/480670/) + +
From 631936b02206ac2f94aa4f1cae78d7614e941149 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 01:23:26 +0500 Subject: [PATCH 76/92] fix: build - exclude player-parsers directory from next build --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index f8a929b..8fdb696 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -33,5 +33,5 @@ "**/*.tsx", "next.config.js" ], - "exclude": ["node_modules"] + "exclude": ["node_modules", "player-parsers"] } From 23da153e65564d9b976dbb0a96d173102cfc6303 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 01:25:12 +0500 Subject: [PATCH 77/92] chore/player-parsers: add missing step for pm2 --- player-parsers/README.RU.md | 3 ++- player-parsers/README.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/player-parsers/README.RU.md b/player-parsers/README.RU.md index e107277..0ee08cf 100644 --- a/player-parsers/README.RU.md +++ b/player-parsers/README.RU.md @@ -94,7 +94,8 @@ 1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX` 2. Переместитесь в директорию репозитория `cd AniX` 3. Переместитесь в директорию парсеров `cd player-parsers` -4. Выполните команду `pm2 start index.ts -n anix-player-parser` +4. Выполните команду `npm install` +5. После окончания, Выполните команду `pm2 start index.ts -n anix-player-parser` ### Обозначения diff --git a/player-parsers/README.md b/player-parsers/README.md index 16b78d1..e78d539 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -94,7 +94,8 @@ Instructions: 1. Clone the repository `git clone https://github.com/Radiquum/AniX` 2. Navigate to the repository directory `cd AniX` 3. Navigate to the parsers directory `cd player-parsers` -4. Run the command `pm2 start index.ts -n anix-player-parser` +4. Run the command `npm install` +5. Once finished, Run the command `pm2 start index.ts -n anix-player-parser` ### Legend From 767121c77be657eb22296dedb06a34a1de38c779 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 01:32:57 +0500 Subject: [PATCH 78/92] delete/extension: extension is no longer compatible with self-hosted version --- extension/README.md | 20 ---- extension/chrome/icon-16x16.png | Bin 875 -> 0 bytes extension/chrome/icon-32x32.png | Bin 2628 -> 0 bytes extension/chrome/icon-48x48.png | Bin 5287 -> 0 bytes extension/chrome/icon-72x72.png | Bin 10291 -> 0 bytes extension/chrome/icon-96x96.png | Bin 16225 -> 0 bytes extension/chrome/main.js | 116 -------------------- extension/chrome/manifest.json | 27 ----- extension/chrome/watch-on-anix-chrome.zip | Bin 40519 -> 0 bytes extension/firefox/icon-16x16.png | Bin 875 -> 0 bytes extension/firefox/icon-32x32.png | Bin 2628 -> 0 bytes extension/firefox/icon-48x48.png | Bin 5287 -> 0 bytes extension/firefox/icon-72x72.png | Bin 10291 -> 0 bytes extension/firefox/icon-96x96.png | Bin 16225 -> 0 bytes extension/firefox/main.js | 116 -------------------- extension/firefox/manifest.json | 32 ------ extension/firefox/watch-on-anix-firefox.zip | Bin 40636 -> 0 bytes 17 files changed, 311 deletions(-) delete mode 100644 extension/README.md delete mode 100644 extension/chrome/icon-16x16.png delete mode 100644 extension/chrome/icon-32x32.png delete mode 100644 extension/chrome/icon-48x48.png delete mode 100644 extension/chrome/icon-72x72.png delete mode 100644 extension/chrome/icon-96x96.png delete mode 100644 extension/chrome/main.js delete mode 100644 extension/chrome/manifest.json delete mode 100644 extension/chrome/watch-on-anix-chrome.zip delete mode 100644 extension/firefox/icon-16x16.png delete mode 100644 extension/firefox/icon-32x32.png delete mode 100644 extension/firefox/icon-48x48.png delete mode 100644 extension/firefox/icon-72x72.png delete mode 100644 extension/firefox/icon-96x96.png delete mode 100644 extension/firefox/main.js delete mode 100644 extension/firefox/manifest.json delete mode 100644 extension/firefox/watch-on-anix-firefox.zip diff --git a/extension/README.md b/extension/README.md deleted file mode 100644 index e016101..0000000 --- a/extension/README.md +++ /dev/null @@ -1,20 +0,0 @@ -Это расширение для firefox и chrome для добавления кнопки Смотреть в Anix на сайт anixart.tv, а так-же найти в Anix на сайт кинопоиск, если обнаружен жанр аниме - -## Скачать - -Firefox: https://addons.mozilla.org/en-US/firefox/addon/watch-on-anix/ - -Chrome: https://github.com/Radiquum/anix/raw/V3/extension/chrome/watch-on-anix-chrome.zip - -## Установка - -Firefox: - -- Загрузите расширение из AMO - -Chrome: - -1. скачайте и распакуйте архив -2. зайдите в расширения браузера chrome://extensions/ -3. включите режим разработчика -4. нажмите "загрузить распакованное расширение" и выберите директорию куда вы распаковали архив diff --git a/extension/chrome/icon-16x16.png b/extension/chrome/icon-16x16.png deleted file mode 100644 index 7f26af42845d9a6e701b5d1c0f92336a5fb26a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 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 FV1g`!(Juf1 diff --git a/extension/chrome/icon-96x96.png b/extension/chrome/icon-96x96.png deleted file mode 100644 index 6d16c650e5b8ef80f08e0c7ae95dfb677ab17236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16225 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 LNkvXXu0mjfVT1KW diff --git a/extension/chrome/main.js b/extension/chrome/main.js deleted file mode 100644 index 8929809..0000000 --- a/extension/chrome/main.js +++ /dev/null @@ -1,116 +0,0 @@ -function determineHost() { - const url = new URL(window.location.href); - return { - host: url.host, - pathname: url.pathname, - }; -} - -function addButtonToAnixart(pathname) { - // find a container and an open in app link with button - const container = document.querySelector('div[style="text-align: center;"]'); - const openInAppLink = document.querySelector('a[href^="anixart"'); - const openInAppLinkButton = openInAppLink.querySelector("button"); - openInAppLinkButton.style = "margin-top: 0px !important;"; // disable default button margin - openInAppLinkButton.classList = "btn btn-secondary"; // change default button from primary to secondary - - // create a custom footer - const footer = document.createElement("div"); - footer.style = - "display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; margin-top: 20px;"; - - // create and set custom link - const link = document.createElement("a"); - const button = document.createElement("button"); - button.style = "margin-top: 0px !important;"; - button.classList = "btn btn-primary"; - button.textContent = "Открыть в Anix"; - - const url = new URL(window.location.href); - link.href = `https://anix.wah.su${pathname}?ref=anixart.tv&source=extension`; - link.appendChild(button); - - // append link and open in app link to footer - footer.appendChild(link); - footer.appendChild(openInAppLink); - - // append footer to container - container.appendChild(footer); -} - -function kinopoiskIsAnimeGenrePresent() { - const genre = document.querySelector('a[href^="/lists/movies/genre--anime"]'); - - if (genre) { - return true; - } - return false; -} - -function addButtonToKinopoisk() { - let isAnime = kinopoiskIsAnimeGenrePresent(); - if (!isAnime) { - console.log("genre not found"); - return; - } - let title = document.querySelector('h1[itemprop="name"]'); - if (!title) { - console.log("title not found"); - return; - } - title = title.textContent.split(" (")[0]; - - const buttonStyle = ` - display: inline-block; - font-weight: 400; - text-align: center; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - font-size: 1.5rem; - line-height: 1.5; - border-radius: .25rem; - transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; - padding: 1rem 2rem; - color: #fff; - background-color: #F04E4E; - border-color: #F04E4E; - `; - - const buttonHoverStyle = ` - color: #fff !important; - background-color: #E23D3D !important; - border-color: #E23D3D !important; - ` - - const link = document.createElement("a"); - const button = document.createElement("button"); - - link.style = - "text-decoration: none; position: fixed; bottom: 0; right: 0; margin: 1.5rem; z-index: 1000;"; - link.href = "https://anix.wah.su/search?q=" + title + "&ref=kinopoisk.ru&source=extension"; - link.appendChild(button); - button.style = buttonStyle; - button.onmouseover = function () { - button.style = buttonStyle + buttonHoverStyle - } - button.onmouseout = function () { - button.style = buttonStyle; - } - button.textContent = "Найти в Anix"; - - document.body.appendChild(link); -} - -const { host, pathname } = determineHost(); - -if (host == "anixart.tv") { - addButtonToAnixart(pathname); -} else if (host == "www.kinopoisk.ru") { - addButtonToKinopoisk(); -} diff --git a/extension/chrome/manifest.json b/extension/chrome/manifest.json deleted file mode 100644 index 9c33721..0000000 --- a/extension/chrome/manifest.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "manifest_version": 3, - "version": "1.2", - "name": "Watch on Anix", - "description": "Adds a button to watch on Anix.", - "content_scripts": [ - { - "matches": [ - "https://anixart.tv/release/*", - "https://anixart.tv/collection/*", - "https://anixart.tv/profile/*", - "https://www.kinopoisk.ru/film/*", - "https://www.kinopoisk.ru/series/*" - ], - "js": [ - "main.js" - ] - } - ], - "icons": { - "16": "icon-16x16.png", - "32": "icon-32x32.png", - "48": "icon-48x48.png", - "72": "icon-72x72.png", - "96": "icon-96x96.png" - } -} \ No newline at end of file diff --git a/extension/chrome/watch-on-anix-chrome.zip b/extension/chrome/watch-on-anix-chrome.zip deleted file mode 100644 index 72a3f70d3a5d0a7bdfab5176081f93fee77abdd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40519 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%0A?hKAf8FV``>J6lX&tE>L{ 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 diff --git a/extension/firefox/icon-16x16.png b/extension/firefox/icon-16x16.png deleted file mode 100644 index 7f26af42845d9a6e701b5d1c0f92336a5fb26a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 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 FV1g`!(Juf1 diff --git a/extension/firefox/icon-96x96.png b/extension/firefox/icon-96x96.png deleted file mode 100644 index 6d16c650e5b8ef80f08e0c7ae95dfb677ab17236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16225 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 LNkvXXu0mjfVT1KW diff --git a/extension/firefox/main.js b/extension/firefox/main.js deleted file mode 100644 index 8929809..0000000 --- a/extension/firefox/main.js +++ /dev/null @@ -1,116 +0,0 @@ -function determineHost() { - const url = new URL(window.location.href); - return { - host: url.host, - pathname: url.pathname, - }; -} - -function addButtonToAnixart(pathname) { - // find a container and an open in app link with button - const container = document.querySelector('div[style="text-align: center;"]'); - const openInAppLink = document.querySelector('a[href^="anixart"'); - const openInAppLinkButton = openInAppLink.querySelector("button"); - openInAppLinkButton.style = "margin-top: 0px !important;"; // disable default button margin - openInAppLinkButton.classList = "btn btn-secondary"; // change default button from primary to secondary - - // create a custom footer - const footer = document.createElement("div"); - footer.style = - "display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; margin-top: 20px;"; - - // create and set custom link - const link = document.createElement("a"); - const button = document.createElement("button"); - button.style = "margin-top: 0px !important;"; - button.classList = "btn btn-primary"; - button.textContent = "Открыть в Anix"; - - const url = new URL(window.location.href); - link.href = `https://anix.wah.su${pathname}?ref=anixart.tv&source=extension`; - link.appendChild(button); - - // append link and open in app link to footer - footer.appendChild(link); - footer.appendChild(openInAppLink); - - // append footer to container - container.appendChild(footer); -} - -function kinopoiskIsAnimeGenrePresent() { - const genre = document.querySelector('a[href^="/lists/movies/genre--anime"]'); - - if (genre) { - return true; - } - return false; -} - -function addButtonToKinopoisk() { - let isAnime = kinopoiskIsAnimeGenrePresent(); - if (!isAnime) { - console.log("genre not found"); - return; - } - let title = document.querySelector('h1[itemprop="name"]'); - if (!title) { - console.log("title not found"); - return; - } - title = title.textContent.split(" (")[0]; - - const buttonStyle = ` - display: inline-block; - font-weight: 400; - text-align: center; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - font-size: 1.5rem; - line-height: 1.5; - border-radius: .25rem; - transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; - padding: 1rem 2rem; - color: #fff; - background-color: #F04E4E; - border-color: #F04E4E; - `; - - const buttonHoverStyle = ` - color: #fff !important; - background-color: #E23D3D !important; - border-color: #E23D3D !important; - ` - - const link = document.createElement("a"); - const button = document.createElement("button"); - - link.style = - "text-decoration: none; position: fixed; bottom: 0; right: 0; margin: 1.5rem; z-index: 1000;"; - link.href = "https://anix.wah.su/search?q=" + title + "&ref=kinopoisk.ru&source=extension"; - link.appendChild(button); - button.style = buttonStyle; - button.onmouseover = function () { - button.style = buttonStyle + buttonHoverStyle - } - button.onmouseout = function () { - button.style = buttonStyle; - } - button.textContent = "Найти в Anix"; - - document.body.appendChild(link); -} - -const { host, pathname } = determineHost(); - -if (host == "anixart.tv") { - addButtonToAnixart(pathname); -} else if (host == "www.kinopoisk.ru") { - addButtonToKinopoisk(); -} diff --git a/extension/firefox/manifest.json b/extension/firefox/manifest.json deleted file mode 100644 index 5a7cbb3..0000000 --- a/extension/firefox/manifest.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "manifest_version": 2, - "version": "1.2", - "name": "Watch on Anix", - "description": "Adds a button to watch on Anix.", - "browser_specific_settings": { - "gecko": { - "id": "{8c53d0c2-43ad-4498-b700-290bd2e1030f}" - } - }, - "content_scripts": [ - { - "matches": [ - "https://anixart.tv/release/*", - "https://anixart.tv/collection/*", - "https://anixart.tv/profile/*", - "https://www.kinopoisk.ru/film/*", - "https://www.kinopoisk.ru/series/*" - ], - "js": [ - "main.js" - ] - } - ], - "icons": { - "16": "icon-16x16.png", - "32": "icon-32x32.png", - "48": "icon-48x48.png", - "72": "icon-72x72.png", - "96": "icon-96x96.png" - } -} \ No newline at end of file diff --git a/extension/firefox/watch-on-anix-firefox.zip b/extension/firefox/watch-on-anix-firefox.zip deleted file mode 100644 index 1f286a2c0a141f1e269b5e01652eded12777ec0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40636 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%0A?hKAf8FV``>J6lX&tE>L{ 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 Date: Fri, 30 May 2025 13:35:46 +0500 Subject: [PATCH 79/92] feat: add Dockerfile --- .dockerignore | 68 +++++++++++++++++++ Dockerfile | 32 +++++++++ app/App.tsx | 8 ++- app/components/ReleasePlayer/PlayerParsing.ts | 16 +++-- app/layout.tsx | 2 + next.config.js | 6 ++ package-lock.json | 15 ++++ package.json | 1 + player-parsers/Dockerfile | 3 + 9 files changed, 144 insertions(+), 7 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2eff99b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,68 @@ +# Python +__pycache__ +venv +.mypy_cache + +# VSCode +.VSCode +*.code-workspace + +# DetaSpace +.space + +# NextJS +## dependencies +standalone +node_modules +.pnp +.pnp.js +.yarn/install-state.gz + +## testing +coverage + +## next.js +.next +out + +## production +build + +## misc +.DS_Store +*.pem + +## debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +## local env files +.env*.local + +## vercel +.vercel + +## typescript +*.tsbuildinfo +next-env.d.ts + +# traefik +traefik/traefik + +old/ +#Trigger Vercel Prod Build + +# next-video +videos/* +!videos/*.json +!videos/*.js +!videos/*.ts +public/_next-video + +API-Trace/* +.env + +player-parsers +docs +.git \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..87783ac --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM node:23-alpine AS base + + +FROM base AS deps +RUN apk add --no-cache libc6-compat +WORKDIR /app +COPY package.json package-lock.json ./ +RUN npm ci + + +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN npm run build + + +FROM base AS runner +LABEL org.opencontainers.image.source=https://github.com/radiquum/anix +WORKDIR /app +ENV NODE_ENV=production +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs +COPY --from=builder --chown=nextjs:nodejs /app/public ./public +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +USER nextjs + +EXPOSE 3000 +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" +CMD ["node", "server.js"] diff --git a/app/App.tsx b/app/App.tsx index 5940207..8cccbd0 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -4,7 +4,13 @@ import { usePreferencesStore } from "./store/preferences"; import { Navbar } from "./components/Navbar/NavbarUpdate"; import { Inter } from "next/font/google"; import { useEffect, useState } from "react"; -import { Button, Modal, ModalBody, ModalFooter, ModalHeader } from "flowbite-react"; +import { + Button, + Modal, + ModalBody, + ModalFooter, + ModalHeader, +} from "flowbite-react"; import { Spinner } from "./components/Spinner/Spinner"; import { ChangelogModal } from "#/components/ChangelogModal/ChangelogModal"; import { Bounce, ToastContainer } from "react-toastify"; diff --git a/app/components/ReleasePlayer/PlayerParsing.ts b/app/components/ReleasePlayer/PlayerParsing.ts index a9e711e..bd85ff4 100644 --- a/app/components/ReleasePlayer/PlayerParsing.ts +++ b/app/components/ReleasePlayer/PlayerParsing.ts @@ -1,4 +1,5 @@ import { tryCatchPlayer, tryCatchAPI } from "#/api/utils"; +import { env } from 'next-runtime-env'; export async function _fetchAPI( url: string, @@ -75,7 +76,8 @@ export const _fetchKodikManifest = async ( setPlayerError: (state) => void ) => { // Fetch episode links via edge function - if (!process.env.NEXT_PUBLIC_KODIK_PARSER_URL) { + const NEXT_PUBLIC_KODIK_PARSER_URL = env("NEXT_PUBLIC_KODIK_PARSER_URL") + if (!NEXT_PUBLIC_KODIK_PARSER_URL) { setPlayerError({ message: "Источник не настроен", detail: "переменная 'NEXT_PUBLIC_KODIK_PARSER_URL' не обнаружена", @@ -84,7 +86,7 @@ export const _fetchKodikManifest = async ( } const data = await _fetchPlayer( - `${process.env.NEXT_PUBLIC_KODIK_PARSER_URL}/?url=${url}&player=kodik`, + `${NEXT_PUBLIC_KODIK_PARSER_URL}/?url=${url}&player=kodik`, setPlayerError ); if (data) { @@ -213,9 +215,10 @@ export const _fetchAnilibriaManifest = async ( const epid = url.split("?id=")[1].split("&ep=")[1]; const _url = `https://api.anilibria.tv/v3/title?id=${id}`; let data = null; - if (process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_URL) { + const NEXT_PUBLIC_ANILIBRIA_PARSER_URL = env("NEXT_PUBLIC_ANILIBRIA_PARSER_URL") + if (NEXT_PUBLIC_ANILIBRIA_PARSER_URL) { data = await _fetchPlayer( - `${process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_URL}/?url=${_url}&player=libria`, + `${NEXT_PUBLIC_ANILIBRIA_PARSER_URL}/?url=${_url}&player=libria`, setPlayerError ); } else { @@ -243,7 +246,8 @@ export const _fetchSibnetManifest = async ( setPlayerError: (state) => void ) => { // Fetch data via cloud endpoint - if (!process.env.NEXT_PUBLIC_SIBNET_PARSER_URL) { + const NEXT_PUBLIC_SIBNET_PARSER_URL = env("NEXT_PUBLIC_SIBNET_PARSER_URL") + if (!NEXT_PUBLIC_SIBNET_PARSER_URL) { setPlayerError({ message: "Источник не настроен", detail: "переменная 'NEXT_PUBLIC_SIBNET_PARSER_URL' не обнаружена", @@ -251,7 +255,7 @@ export const _fetchSibnetManifest = async ( return { manifest: null, poster: null }; } const data = await _fetchPlayer( - `${process.env.NEXT_PUBLIC_SIBNET_PARSER_URL}/?url=${url}&player=sibnet`, + `${NEXT_PUBLIC_SIBNET_PARSER_URL}/?url=${url}&player=sibnet`, setPlayerError ); if (data) { diff --git a/app/layout.tsx b/app/layout.tsx index 7fe42a7..0c0415f 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,7 @@ import "./globals.css"; import { App } from "./App"; import { ThemeModeScript } from "flowbite-react"; +import { PublicEnvScript } from 'next-runtime-env'; export const metadata = { metadataBase: new URL("https://anix.wah.su"), @@ -33,6 +34,7 @@ export default function RootLayout({ children }) { return ( + {children} diff --git a/next.config.js b/next.config.js index bd4aa44..24aa345 100644 --- a/next.config.js +++ b/next.config.js @@ -1,10 +1,16 @@ const withFlowbiteReact = require("flowbite-react/plugin/nextjs"); /** @type {import('next').NextConfig} */ const NextConfig = { + output: "standalone", reactStrictMode: false, images: { unoptimized: true, }, + env: { + NEXT_PUBLIC_KODIK_PARSER_URL: process.env.NEXT_PUBLIC_KODIK_PARSER_URL, + NEXT_PUBLIC_ANILIBRIA_PARSER_URL: process.env.NEXT_PUBLIC_ANILIBRIA_PARSER_URL, + NEXT_PUBLIC_SIBNET_PARSER_URL: process.env.NEXT_PUBLIC_SIBNET_PARSER_URL, + }, async headers() { return [ { diff --git a/package-lock.json b/package-lock.json index 1e17799..6309d00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "markdown-to-jsx": "^7.4.7", "media-chrome": "^4.9.0", "next": "^14.2.26", + "next-runtime-env": "^3.3.0", "prettier": "^3.5.3", "react": "^18", "react-cropper": "^2.3.3", @@ -4955,6 +4956,20 @@ } } }, + "node_modules/next-runtime-env": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/next-runtime-env/-/next-runtime-env-3.3.0.tgz", + "integrity": "sha512-JgKVnog9mNbjbjH9csVpMnz2tB2cT5sLF+7O47i6Ze/s/GoiKdV7dHhJHk1gwXpo6h5qPj5PTzryldtSjvrHuQ==", + "license": "MIT", + "dependencies": { + "next": "^14", + "react": "^18" + }, + "peerDependencies": { + "next": "^14", + "react": "^18" + } + }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", diff --git a/package.json b/package.json index 786c656..ec1be21 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "markdown-to-jsx": "^7.4.7", "media-chrome": "^4.9.0", "next": "^14.2.26", + "next-runtime-env": "^3.3.0", "prettier": "^3.5.3", "react": "^18", "react-cropper": "^2.3.3", diff --git a/player-parsers/Dockerfile b/player-parsers/Dockerfile index 871f0b2..0963569 100644 --- a/player-parsers/Dockerfile +++ b/player-parsers/Dockerfile @@ -9,4 +9,7 @@ RUN npm ci COPY *.ts ./ +EXPOSE 7000 +ENV PORT=7000 +ENV HOSTNAME="0.0.0.0" CMD ["npm", "run", "serve"] \ No newline at end of file From 9f7a7b8fd243c30a6e0b0c1a80d88fac3c625303 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 13:45:12 +0500 Subject: [PATCH 80/92] chore/player-parsers: update docker tag --- player-parsers/README.RU.md | 2 +- player-parsers/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/player-parsers/README.RU.md b/player-parsers/README.RU.md index 0ee08cf..9928930 100644 --- a/player-parsers/README.RU.md +++ b/player-parsers/README.RU.md @@ -44,7 +44,7 @@ 1. выполните комманду: -`docker run -d --name anix-player -p 7000:7000 ghcr.io/radiquum/anix-player-parser:29-05-2025` +`docker run -d --name anix-player -p 7000:7000 radiquum/anix-player-parser:latest` ### Ручной билд diff --git a/player-parsers/README.md b/player-parsers/README.md index e78d539..b575497 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -44,7 +44,7 @@ Requirements: 1. Run the command: -`docker run -d --name anix-player -p 7000:7000 ghcr.io/radiquum/anix-player-parser:29-05-2025` +`docker run -d --name anix-player -p 7000:7000 radiquum/anix-player-parser:latest` ### Manual build From a73c01e5bc84447e288bab7a23c68d9823b87fb9 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 14:42:33 +0500 Subject: [PATCH 81/92] chore/player-parsers: update readme --- player-parsers/README.RU.md | 2 +- player-parsers/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/player-parsers/README.RU.md b/player-parsers/README.RU.md index 9928930..d695c06 100644 --- a/player-parsers/README.RU.md +++ b/player-parsers/README.RU.md @@ -29,7 +29,7 @@ ## Развёртывание -> В связи с спецификой источников, рекомендуется использовать виртуальный сервер в россии или нидерландах, т.к. они могут быть недоступны из других стран. +> В связи с спецификой источников, рекомендуется использовать виртуальный сервер в россии, т.к. они могут быть недоступны из других стран. > > Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как CloudFlare Workers или Deno, а только на отдельном сервере. diff --git a/player-parsers/README.md b/player-parsers/README.md index b575497..7f3f9ec 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -29,7 +29,7 @@ Response: ## Deployment -> Due to the nature of the sources, it is recommended to use a virtual server in Russia or the Netherlands, as they may be inaccessible from other countries. +> Due to the nature of the sources, it is recommended to use a virtual server in Russia, as they may be inaccessible from other countries. > > Because of this specificity, the parsers cannot be deployed on edge services like CloudFlare Workers or Deno, only on a dedicated server. From 79fb473998b8c6db64071237f9f50a00b02f4405 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 14:46:40 +0500 Subject: [PATCH 82/92] chore/player-parsers: update readme --- player-parsers/README.RU.md | 3 +++ player-parsers/README.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/player-parsers/README.RU.md b/player-parsers/README.RU.md index d695c06..99174b5 100644 --- a/player-parsers/README.RU.md +++ b/player-parsers/README.RU.md @@ -22,6 +22,9 @@ - VIDEO_URL - ссылка на видео от источника - PLAYER_SOURCE - источник, один из: kodik, sibnet, libria +>[!NOTE] +> Если используется источник libria, ссылка должна быть ссылкой на API anilibria, а не на плеер + Ответ: - 500|400: произошла ошибка, подробнее в строке `message` в теле ответа diff --git a/player-parsers/README.md b/player-parsers/README.md index 7f3f9ec..4e23446 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -22,6 +22,9 @@ where: - VIDEO_URL - the link to the video from the source - PLAYER_SOURCE - the source, one of: kodik, sibnet, libria +>[!NOTE] +> When using libria source, url should be the url to the anilibria api, not player directly + Response: - 500|400: an error occurred, see the `message` field in the response body for details From 97a70690bb81d87a08ebaac6e31db4c1854fc257 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 15:59:58 +0500 Subject: [PATCH 83/92] feat: add deploy instructions --- DEPLOYMENT.RU.md | 180 +++++++++++++++++++++++++++ DEPLOYMENT.md | 180 +++++++++++++++++++++++++++ docs/deploy/fork.png | Bin 0 -> 1499 bytes docs/deploy/netlify_env_1.png | Bin 0 -> 11417 bytes docs/deploy/netlify_env_2.png | Bin 0 -> 19382 bytes docs/deploy/netlify_import.png | Bin 0 -> 5963 bytes docs/deploy/netlify_new_project.png | Bin 0 -> 7184 bytes docs/deploy/netlify_project_name.png | Bin 0 -> 7154 bytes docs/deploy/netlify_provider.png | Bin 0 -> 19307 bytes docs/deploy/netlify_url.png | Bin 0 -> 40039 bytes docs/deploy/vercel_import.png | Bin 0 -> 13447 bytes docs/deploy/vercel_new_project.png | Bin 0 -> 9394 bytes docs/deploy/vercel_project.png | Bin 0 -> 49938 bytes docs/deploy/vercel_url.png | Bin 0 -> 72206 bytes player-parsers/README.RU.md | 20 ++- player-parsers/README.md | 20 ++- 16 files changed, 376 insertions(+), 24 deletions(-) create mode 100644 DEPLOYMENT.RU.md create mode 100644 DEPLOYMENT.md create mode 100644 docs/deploy/fork.png create mode 100644 docs/deploy/netlify_env_1.png create mode 100644 docs/deploy/netlify_env_2.png create mode 100644 docs/deploy/netlify_import.png create mode 100644 docs/deploy/netlify_new_project.png create mode 100644 docs/deploy/netlify_project_name.png create mode 100644 docs/deploy/netlify_provider.png create mode 100644 docs/deploy/netlify_url.png create mode 100644 docs/deploy/vercel_import.png create mode 100644 docs/deploy/vercel_new_project.png create mode 100644 docs/deploy/vercel_project.png create mode 100644 docs/deploy/vercel_url.png diff --git a/DEPLOYMENT.RU.md b/DEPLOYMENT.RU.md new file mode 100644 index 0000000..076a2f5 --- /dev/null +++ b/DEPLOYMENT.RU.md @@ -0,0 +1,180 @@ +# Развёртывание приложения AniX + +## Vercel + +Требования: + +- аккаунт GitHub +- аккаунт Vercel + +1. сделайте форк репозитория + + ![fork button](./docs/deploy/fork.png) + +2. Войдите в аккаунт vercel + + > [!IMPORTANT] + >Аккаунт Vercel должен быть связан с аккаунтом Github. + > + >Если у вас нет аккаунта vercel, то создайте его через вход с помощью Github. + +3. Нажмите кнопку создать новый проект + + ![vercel new project button](./docs/deploy/vercel_new_project.png) + +4. Нажмите кнопку импортировать напротив названия репозитория + + ![vercel import button](./docs/deploy/vercel_import.png) + +5. (опционально) добавьте переменные для использования своего плеере: + + - NEXT_PUBLIC_KODIK_PARSER_URL + - NEXT_PUBLIC_ANILIBRIA_PARSER_URL + - NEXT_PUBLIC_SIBNET_PARSER_URL + + на те которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md) + + ![vercel project settings](./docs/deploy/vercel_project.png) + +6. нажмите кнопку "Deploy" и ожидайте пока не появиться подтверждение +7. нажмите кнопку "Continue to Dashboard" +8. клиент будет доступен по ссылке такого вида, нажмите на неё что-бы его открыть + ![vercel project url](./docs/deploy/vercel_url.png) + +## Netlify + +Требования: + +- аккаунт GitHub +- аккаунт Netlify + +1. сделайте форк репозитория + + ![fork button](./docs/deploy/fork.png) + +2. Войдите в аккаунт netlify + + > [!IMPORTANT] + >Аккаунт Netlify должен быть связан с аккаунтом Github. + > + >Если у вас нет аккаунта Netlify, то создайте его через вход с помощью Github. + +3. Нажмите кнопку создать новый проект + + ![netlify new project button](./docs/deploy/netlify_new_project.png) + +4. Нажмите кнопку GitHub + + ![netlify provider choice](./docs/deploy/netlify_provider.png) + +5. Нажмите на название репозитория + + ![netlify import button](./docs/deploy/netlify_import.png) + +6. (опционально) заполните название проекта + + ![netlify project name](./docs/deploy/netlify_project_name.png) + +7. (опционально) добавьте переменные для использования своего плеере: + + - NEXT_PUBLIC_KODIK_PARSER_URL + - NEXT_PUBLIC_ANILIBRIA_PARSER_URL + - NEXT_PUBLIC_SIBNET_PARSER_URL + + на те которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md) + + 1. ![alt text](./docs/deploy/netlify_env_1.png) + + 2. ![alt text](./docs/deploy/netlify_env_2.png) + +8. нажмите кнопку "Deploy" и ожидайте пока не появиться подтверждение + +9. клиент будет доступен по ссылке такого вида, нажмите на неё что-бы его открыть + + ![netlify project url](./docs/deploy/netlify_url.png) + +## Docker + +Требования: + +- [docker](https://docs.docker.com/engine/install/) + +### Пре-билд + +1. выполните комманду: + +`docker run -d --name anix -p 3000:3000 radiquum/anix:latest` + +### Ручной билд + +Доп. Требования: + +- [git](https://git-scm.com/) + +1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX` +2. Переместитесь в директорию репозитория `cd AniX` +3. Выполните команду `docker build -t anix .` +4. После окончания, выполните команду: `docker run -d --restart always --name anix -p 3000:3000 anix` + +### docker/Обозначения + +- -d - запустить контейнер в фоне +- --restart always - всегда запускать после перезагрузки сервера +- --name - название контейнера +- -p - порт контейнера который будет доступен из вне. ПОРТ:3000 + +>[!NOTE] +> для переменных которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md), необходимо использовать `-e ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ` до слова anix + +[команда docker run](https://docs.docker.com/reference/cli/docker/container/run/) + +### docker/После развёртывания + +Сервис будет доступен по адресу: `http://<ВАШ IP><:ВАШ ПОРТ>/` + +### docker/Примечание + +Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL. + +Полезные ссылки: + +- [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter) +- [Как настроить traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) + +## pm2 + +Требования: + +- [git](https://git-scm.com/) +- [nodejs 23+ с npm](http://nodejs.org/) +- [pm2](https://pm2.keymetrics.io/) + +Инструкция: + +1. Клонируйте репозиторий `git clone https://github.com/Radiquum/AniX` +2. Переместитесь в директорию репозитория `cd AniX` +3. Выполните команду `npm install` +4. (опционально) скопируйте .env.sample как .env и заполните его переменными которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md) +5. Выполните команду `npm run build` +6. создайте новую директорию +7. переместите в созданную директорию + - директорию `public` в `./новая/public` + - директорию `.next/static` в `./новая/.next/static` + - файлы из `.next/standalone` в `./новая` +8. Переместитесь в созданную директорию и выполните команду `pm2 start server.js -n anix` + +### pm2/Обозначения + +- -n - название сервиса в pm2 + +### pm2/После развёртывания + +Сервис будет доступен по адресу: `http://<ВАШ IP>:3000/` + +### pm2/Примечание + +Для автоматического запуска приложения, рекомендуется настроить pm2 на автозапуск, с помощью команды: `pm2 startup` + +Полезные ссылки: + +- [PM2: подходим к вопросу процесс-менеджмента с умом @ Habr](https://habr.com/ru/articles/480670/) diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..4b2cbac --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,180 @@ +# AniX Application Deployment + +## Vercel + +Requirements: + +- GitHub account +- Vercel account + +1. Fork the repository + + ![fork button](./docs/deploy/fork.png) + +2. Log in to your Vercel account + + > [!IMPORTANT] + >Your Vercel account must be linked with your GitHub account. + > + >If you don't have a Vercel account, create one by signing in with GitHub. + +3. Click the button to create a new project + + ![vercel new project button](./docs/deploy/vercel_new_project.png) + +4. Click the import button next to the repository name + + ![vercel import button](./docs/deploy/vercel_import.png) + +5. (optional) Add variables to use your own player: + + - NEXT_PUBLIC_KODIK_PARSER_URL + - NEXT_PUBLIC_ANILIBRIA_PARSER_URL + - NEXT_PUBLIC_SIBNET_PARSER_URL + + Use the ones you received if you deployed [anix-player-parsers](./player-parsers/README.md) + + ![vercel project settings](./docs/deploy/vercel_project.png) + +6. Click the "Deploy" button and wait until you see a confirmation +7. Click the "Continue to Dashboard" button +8. The client will be available at a link of this form, click it to open + ![vercel project url](./docs/deploy/vercel_url.png) + +## Netlify + +Requirements: + +- GitHub account +- Netlify account + +1. Fork the repository + + ![fork button](./docs/deploy/fork.png) + +2. Log in to your Netlify account + + > [!IMPORTANT] + >Your Netlify account must be linked with your GitHub account. + > + >If you don't have a Netlify account, create one by signing in with GitHub. + +3. Click the button to create a new project + + ![netlify new project button](./docs/deploy/netlify_new_project.png) + +4. Click the GitHub button + + ![netlify provider choice](./docs/deploy/netlify_provider.png) + +5. Click the repository name + + ![netlify import button](./docs/deploy/netlify_import.png) + +6. (optional) Fill in the project name + + ![netlify project name](./docs/deploy/netlify_project_name.png) + +7. (optional) Add variables to use your own player: + + - NEXT_PUBLIC_KODIK_PARSER_URL + - NEXT_PUBLIC_ANILIBRIA_PARSER_URL + - NEXT_PUBLIC_SIBNET_PARSER_URL + + Use the ones you received if you deployed [anix-player-parsers](./player-parsers/README.md) + + 1. ![alt text](./docs/deploy/netlify_env_1.png) + + 2. ![alt text](./docs/deploy/netlify_env_2.png) + +8. Click the "Deploy" button and wait until you see a confirmation + +9. The client will be available at a link of this form, click it to open + + ![netlify project url](./docs/deploy/netlify_url.png) + +## Docker + +Requirements: + +- [docker](https://docs.docker.com/engine/install/) + +### Pre-built + +1. Run the command: + +`docker run -d --name anix -p 3000:3000 radiquum/anix:latest` + +### Manual build + +Additional Requirements: + +- [git](https://git-scm.com/) + +1. Clone the repository `git clone https://github.com/Radiquum/AniX` +2. Navigate to the repository directory `cd AniX` +3. Run the command `docker build -t anix .` +4. Once finished, run the command: `docker run -d --restart always --name anix -p 3000:3000 anix` + +### docker/Flags + +- -d - run container in background +- --restart always - always restart after server reboot +- --name - container name +- -p - container port to be exposed externally. PORT:3000 + +>[!NOTE] +> For variables you received if you deployed [anix-player-parsers](./player-parsers/README.md), you need to use `-e VARIABLE=VALUE` before the word anix + +[docker run command](https://docs.docker.com/reference/cli/docker/container/run/) + +### docker/After deployment + +The service will be available at: `http://<:YOUR PORT>/` + +### docker/Note + +To use your own domain and support HTTPS protocol, you can use traefik or another reverse proxy with SSL certificate. + +Useful links: + +- [Converter from docker run command to docker compose syntax](https://it-tools.tech/docker-run-to-docker-compose-converter) +- [How to setup traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) + +## pm2 + +Requirements: + +- [git](https://git-scm.com/) +- [nodejs 23+ with npm](http://nodejs.org/) +- [pm2](https://pm2.keymetrics.io/) + +Instructions: + +1. Clone the repository `git clone https://github.com/Radiquum/AniX` +2. Navigate to the repository directory `cd AniX` +3. Run the command `npm install` +4. (optional) copy `.env.sample` as `.env` and fill it with variables you received if you deployed [anix-player-parsers](./player-parsers/README.md) +5. Run the command `npm run build` +6. Create a new directory +7. Move into the new directory: + - move `public` directory to `./new/public` + - move `.next/static` directory to `./new/.next/static` + - move files from `.next/standalone` to `./new` +8. Move into the created directory and run the command `pm2 start server.js -n anix` + +### pm2/Flags + +- -n - service name in pm2 + +### pm2/After deployment + +The service will be available at: `http://:3000/` + +### pm2/Note + +To enable automatic application startup, it is recommended to configure pm2 to start on boot using the command: `pm2 startup` + +Useful links: + +- [PM2: managing processes smartly @ Habr](https://habr.com/ru/articles/480670/) diff --git a/docs/deploy/fork.png b/docs/deploy/fork.png new file mode 100644 index 0000000000000000000000000000000000000000..c1d2c68aa8a97b14310cbef1ef00c93d45743abb GIT binary patch literal 1499 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 a=g21BqfU=-SR$t!0P4y*O2rB=)c*m&^R_Jj literal 0 HcmV?d00001 diff --git a/docs/deploy/netlify_env_2.png b/docs/deploy/netlify_env_2.png new file mode 100644 index 0000000000000000000000000000000000000000..30e4cc6378fb40c76314824fa07fa665f7ca841a GIT binary patch literal 19382 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 RW)HNF!PC{xWt~$(69A<}gBJh* literal 0 HcmV?d00001 diff --git a/docs/deploy/netlify_import.png b/docs/deploy/netlify_import.png new file mode 100644 index 0000000000000000000000000000000000000000..e3b65e5bce3c1fbd29a6a6e7d87b2c11ae15564e GIT binary patch literal 5963 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 literal 0 HcmV?d00001 diff --git a/docs/deploy/netlify_project_name.png b/docs/deploy/netlify_project_name.png new file mode 100644 index 0000000000000000000000000000000000000000..516169fd3df9923a54dc40025e98f30de09e5831 GIT binary patch literal 7154 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 literal 0 HcmV?d00001 diff --git a/docs/deploy/netlify_url.png b/docs/deploy/netlify_url.png new file mode 100644 index 0000000000000000000000000000000000000000..659f3afdff8cd2ed4a755fbf0073a0dfd4b8e90b GIT binary patch literal 40039 zcmd43byQnj*DnebcP&!fiWPT?OK~SafI`s}iU)TnP#g*rDDE1hKyh~uF2#xzr?|`A z&-xL5MEFtARuy~BLOXP zzXKH!5NHvU+dolop~;C^{0>-k!e2B#Mbguot1(urw?QjKJQSP`g9d=tP{ilQIM*V+rbkp28qm^Qafq>bjX2|D-+q9ZU7ms>xP8>n{HB8K$~`25)E0Tv+KVYT#}1K2IB^Q z_%~@Z(||Tz=0b{KzGK3FZIs3UF&ab$``1jJm?f$}8(ZSp3t1iq+mj1DSEiNbQ|9fk;=;Mtl|JhoO z9}54wX!85Cr-CYLwJcGask&IsJDr_%6n6MDNvb8c-Kfo7k3#InXQ8Rkw*S5Vp!Sl$ zus^Ri`w!w?Nm`YBdmn&v6z9btIknC~V;B99D)fT}?;-iuES|$aKn;>OIOvIDNjCf- z=JwNY>coWrzvLd0OuZYrLV5d*qWytG=dT(hgP`{O&V|#vrF@BJ19B0%co}2)U+S9L zA;!Bgp1^9bh~ddSkB7n-`y(g>@SHz zN^Ji=YbtxsfWySe?oH{0AjgiZ_xEr8U8<0btn0wHK6Ti0*;kJuc!mVpkZ$jm3*QBoK_05FeVm|w& zAcZI(bTDhAzrQm#+g0MhkMsuDMU*3x`g*Pf3YOh5qASv@3F*5+yL=X-|TEg zghlw#lp?w#GS&!fSr!MS3=^iX8=HNeIhn^~=YR8Y@v{;iD)wX$G?emH&;4oLx(s*` zF+`!7)Y2Ob5)FSP`Em4Shz4(FCY{@A9iOUK11=D}Pxt)w7aGoAw3Me8^#)Pa&(hx? zleoZ-s9jdHUbLc==5t^CU!2lcNj*z503-qSjlp8OeiB5n)Dw2_F^24ypgARHXl04JtoKP751(&Fpd z8@n}G_FAmlOU!BpmZ$}~0Vcb*yzIoo0?XnY`l@^LSCh)|e@7_=>`X1m`y5nV<%34u z4k6)bqG=XuelOPZtC8Adf|REJzC+IB9um{D0qa3=W7yJs?aI)O{y&Vflp&N&;jnd~VA+3Nv@C1vk z<2;AQ$jSZe+R!qoaw^he2@X4aT`0Dg=qaVCzc6phu3N~ubNn!V7krZrDeZg9mE^<* zIcGzMY;%=z&$n7|O|!`h>37ST#O8K_rYXfDc9Yb_C0k$osP>*8+|qv@#hX(8Aec&4 zsLX!_-ZBktW?*UY`7q()r)IMH;0AhH)Z(0ZGdYQ?vn@6yZj8zfKOokWV;615jDGCO zxs3bJm|O<8{o0k`CCNd3-_$jK?hiI=g?8c}MI;t4X1QWVMMi&#i1-o{^CdPmIuiI4 zs-kMCt7^&r@QUOW0Tn3$32?olCh=lt61nq!fX&RD?50-l?pCLkIE6CNGyegrezJsq zg6aa7F;v%A7r3Cnr3ze@(8K!OM!U&Vr-+u9L_Ro4albzyqnLLgxyx@Bs-fiNGvry6 zFo}vvNbs<-@(NxlXuB9#S{iKCI~7Sm<)BbcsII3jzp;5Yg9UK)RQ4@pIj4Q%cFpNO ziAc1GrWRW4JZa%78oe_guF$f09Wa;!_+rl)Cb}r#+k{gv+dKC1U+6x{x?!O7N_`pg zGSvlnJBO^mRvnTC$Uw58B{|2O(|u}Lf0>QRV7Q*3&9CW@xG?p!F|+&}#=#04o%t@@ z>54FYz`*Mu7DD>2^e;DK9?Y)7-seI4xrb(8v{j(C1r#Xl* zF%mTC36($7%cy=~A|x>AWRw2FNKYW$DNj$&D8ti5it+g~{x{MnMsv-0FuJWg2b~;Y zaA4HucsLedI`-@@Fl|~4=!39yL{^kNDsn2P0@fChO$cERwcEe-q~?(xNR;J#Wd>h= zh9PHb1V*t3nocT6&=Ci|fe>J!%Sb6ABX^NTOxL=+^XFA??cK#l#3`P5nvi=;vtTBJ zKw=%(GmgdoDinrW)a8vmpqcI&LF(UP(&_ZQaUYy%x0G|T(y~?zAlySH|H)RX-Qtk& z;J%Vksgq6I!SVT%{^`C)bx$PP#v8!y6$Vm*6SP1T_!dd5bu=DP+95MtF(LH|F=PTC z*6~f=WS)YXH<@3Jdfzq&$14|VN60DQ^VY~QCo5a=MyN8QU@g!kDq3nss46H9$#XEF zYZ}N579cM$CFf0@R3$BSFX29i_un!kC%mbSmBZ2g#Z*mN{Sp3o1Ic^-xBRJ7(;FAP zp(DMACD`^h+qNrUaj$b`&sb&`@W3A)3k}|( zz7gGEGmFDOm*uCQ>_Z<^utc$JQ+4~Yw%eU)qE!-CYPh%LBRIc!{J6PIa2d(8&Wp$q zhQIvB6n%^^?ark(*kyAzlr)<3e=puFhdTSjMphd;vt@TPcG*hM zuL>k?xzV~g@Kq9ai)ez4jhOt;?eljdd?JZ3c7CmbqFuu?cXTUDNBE*xLXTWl%nBSU zfP0y<4>9)-Q3ROi&`7lfpd~%JAMX4+*$sjuilvMo@_e9c7#woBv28T0f&8euyz^dc z4Px*Cf{hqTeACK!M7daFax|@EGa2ciQwjENS&lU3xv0-n(9?cjiFa6~d|*RrRyCax z=ED9}U+yE*VT|7F>>cX#9S+4(b}`DNvQ4KMcQ~=S2SV!XTweF9deS@+f&Q6zukZYc zcalc(D-p8NaN-0g+>R*`gU!*D8*M!6_7CX~MFx(+ODRFUHF25^?H*a0DcAgGBV;5o z>2|a{oHF_NZnngu^;}PNW}>8i@EhKlZE{XYN|iA~pO=$AWkbE(*<fA-MibO_6}K=+Gd0awEl7bxUrOMy>Miju|`Q#*2W{pi0~~m zoUNYLz86Eq%bnf&SexD9&7Lc+ZdRC2v*ge4 z3p@7nCx!I=SkR1uNHcXId*&`n8I3c;+vrOC!`uc}yMmEw{pR|&i~iyF)9PMLDzb`& zRqs38&o6|%A5!}g7{cGY!84-#S<}G&#;1!Eec`nM4&2tZLpo#;B4EaiP$4ZVNzQ*k z6b%}VzG%rZO!BIXHuqIg6`xs+&C}DO^*LK=E}1_;bsYbRwnE$EjNHU1PbaG)NXNW$ ztMg`fVR~9hDe@DGKGFUb$BuEY6!eB*+Dl%x5*s#{z+q@e`C2L+bNSokq`EE|vY|Sr z#A_>v8}qBHX!Z)ay_aQ;?XopKqu*i^FkvK}nu>J@QQJ8u{QIa*ldMo9b#^1-a?ZpZ zT|!u(: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�^zXK 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 literal 0 HcmV?d00001 diff --git a/docs/deploy/vercel_new_project.png b/docs/deploy/vercel_new_project.png new file mode 100644 index 0000000000000000000000000000000000000000..ecfe0f143fcfbf80b6f5a2845f57cf10c9ad510c GIT binary patch literal 9394 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 THH(40NI3s#=&9GL+D82^jGJ7w literal 0 HcmV?d00001 diff --git a/docs/deploy/vercel_project.png b/docs/deploy/vercel_project.png new file mode 100644 index 0000000000000000000000000000000000000000..28bfde43f71780e87e092c0cbe503898cdbb9b74 GIT binary patch literal 49938 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

?6ahy3!InB@a9;QE^4%6LO0a7k*W=ahxonbOkNu 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

EOMZaTKRcLE-4`dX5)LZL(B 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 > Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как CloudFlare Workers или Deno, а только на отдельном сервере. -
-С помощью docker +### Docker Требования: @@ -61,18 +60,18 @@ 4. Выполните команду `docker build -t anix-player-parser .` 5. После окончания, выполните команду: `docker run -d --restart always --name anix-player -p 7000:7000 anix-player-parser` -### Обозначения +### docker/Обозначения - -d - запустить контейнер в фоне - --restart always - всегда запускать после перезагрузки сервера - --name - название контейнера - -p - порт контейнера который будет доступен из вне. ПОРТ:7000 -### После развёртывания +### docker/После развёртывания Сервис будет доступен по адресу: `http://<ВАШ IP><:ВАШ ПОРТ>/` -### Примечание +### docker/Примечание Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL. @@ -83,8 +82,7 @@
-
-С помощью pm2 +### pm2 Требования: @@ -100,20 +98,18 @@ 4. Выполните команду `npm install` 5. После окончания, Выполните команду `pm2 start index.ts -n anix-player-parser` -### Обозначения +### pm2/Обозначения - -n - название сервиса в pm2 -### После развёртывания +### pm2/После развёртывания Сервис будет доступен по адресу: `http://<ВАШ IP>:7000/` -### Примечание +### pm2/Примечание Для автоматического запуска приложения, рекомендуется настроить pm2 на автозапуск, с помощью команды: `pm2 startup` Полезные ссылки: - [PM2: подходим к вопросу процесс-менеджмента с умом @ Habr](https://habr.com/ru/articles/480670/) - -
\ No newline at end of file diff --git a/player-parsers/README.md b/player-parsers/README.md index 4e23446..ab6d023 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -36,8 +36,7 @@ Response: > > Because of this specificity, the parsers cannot be deployed on edge services like CloudFlare Workers or Deno, only on a dedicated server. -
-Using docker +### Docker Requirements: @@ -61,18 +60,18 @@ Additional Requirements: 4. Run the command `docker build -t anix-player-parser .` 5. Once finished, run the command: `docker run -d --restart always --name anix-player -p 7000:7000 anix-player-parser` -### Legend +### docker/Legend - -d - run the container in background - --restart always - always restart after server reboot - --name - container name - -p - container port accessible externally. PORT:7000 -### After deployment +### docker/After deployment The service will be available at: `http://<:YOUR PORT>/` -### Note +### docker/Note To use your own domain and support the https protocol, you can use traefik or another reverse-proxy with an SSL certificate. @@ -83,8 +82,7 @@ Useful links:
-
-Using pm2 +### pm2 Requirements: @@ -100,20 +98,18 @@ Instructions: 4. Run the command `npm install` 5. Once finished, Run the command `pm2 start index.ts -n anix-player-parser` -### Legend +### pm2/Legend - -n - service name in pm2 -### After deployment +### pm2/After deployment The service will be available at: `http://:7000/` -### Note +### pm2/Note To enable automatic application start, it is recommended to configure pm2 to start on boot with the command: `pm2 startup` Useful links: - [PM2: smart approach to process management @ Habr](https://habr.com/ru/articles/480670/) - -
From 2cfdfcfb2800c17ca724afcf414dfbf8815bf3dc Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 30 May 2025 16:09:47 +0500 Subject: [PATCH 84/92] chore: update readme --- DEPLOYMENT.md | 6 +++--- README.md | 28 +++++++++++----------------- docs/REAME.RU.md => REAME.RU.md | 26 ++++++++++---------------- 3 files changed, 24 insertions(+), 36 deletions(-) rename docs/REAME.RU.md => REAME.RU.md (76%) diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 4b2cbac..bbc8a74 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -111,9 +111,9 @@ Additional Requirements: - [git](https://git-scm.com/) -1. Clone the repository `git clone https://github.com/Radiquum/AniX` -2. Navigate to the repository directory `cd AniX` -3. Run the command `docker build -t anix .` +1. Clone the repository `git clone https://github.com/Radiquum/AniX` +2. Navigate to the repository directory `cd AniX` +3. Run the command `docker build -t anix .` 4. Once finished, run the command: `docker run -d --restart always --name anix -p 3000:3000 anix` ### docker/Flags diff --git a/README.md b/README.md index 65f6f84..1882b28 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,20 @@ AniX is an unofficial web client for the Android application Anixart. It allows you to access and manage your Anixart account from a web browser on your desktop or laptop computer. -[Readme [RU]](./docs/REAME.RU.md) | [Browser Extension [RU]](./extension/README.md) - -## Changelog [RU] - -- [3.7.0](./public/changelog/3.7.0.md) -- [3.6.0](./public/changelog/3.6.0.md) -- [3.5.0](./public/changelog/3.5.0.md) - -[other versions](./public/changelog) - ## Disclaimer Please note that AniX is an unofficial project and is not affiliated with the developers of Anixart. It is recommended to use the official Anixart app for the most up-to-date features and functionality. +--- + +[[RU] ПРОЧТИ МЕНЯ](./REAME.RU.md) | [[EN] README](./REAME.md) + +[[RU] РАЗВЁРТЫВАНИЕ](./DEPLOYMENT.RU.md) | [[EN] DEPLOY](./DEPLOYMENT.md) + +[[RU] Changelogs](./public/changelog) + +--- + ## Screenshots
@@ -53,12 +53,6 @@ Please note that AniX is an unofficial project and is not affiliated with the de
-## Features - -1. Use your existing Anixart account -2. sync lists, watch history, collections and more -3. use almost all features of an android app - ## Contributing -We welcome contributions to this project! If you have any bug fixes, improvements, or new features, please feel free to create a pull request. \ No newline at end of file +We welcome contributions to this project! If you have any bug fixes, improvements, or new features, please feel free to create a pull request. diff --git a/docs/REAME.RU.md b/REAME.RU.md similarity index 76% rename from docs/REAME.RU.md rename to REAME.RU.md index 9859ca1..eacf219 100644 --- a/docs/REAME.RU.md +++ b/REAME.RU.md @@ -2,20 +2,20 @@ AniX - это неофициальный веб-клиент для Android-приложения Anixart. Он позволяет вам получать доступ к своей учетной записи Anixart и управлять ею из веб-браузера на вашем настольном компьютере или ноутбуке. -[Расширение для браузера](./extension/README.md) - -## Список изменений - -- [3.7.0](/public/changelog/3.7.0.md) -- [3.6.0](/public/changelog/3.6.0.md) -- [3.5.0](/public/changelog/3.5.0.md) - -[другие версии](/public/changelog) - ## Отказ от ответственности Пожалуйста, обратите внимание, что Anix является неофициальным проектом и не связан с разработчиками Anixart. Рекомендуется использовать официальное приложение Anixart для получения наиболее актуальных функций. +--- + +[[RU] ПРОЧТИ МЕНЯ](./REAME.RU.md) | [[EN] README](./REAME.md) + +[[RU] РАЗВЁРТЫВАНИЕ](./DEPLOYMENT.RU.md) | [[EN] DEPLOY](./DEPLOYMENT.md) + +[[RU] Списки изменений](./public/changelog) + +--- + ## Скриншоты
@@ -53,12 +53,6 @@ AniX - это неофициальный веб-клиент для Android-пр
-## Возможности - -1. Используйте свой существующий аккаунт на Anixart -2. Синхронизируйте списки, историю просмотров, коллекции и многое другое -3. используйте практически все функции приложения для Android - ## Внесение вклада Мы приветствуем вклад в этот проект! Если у вас есть какие-либо исправления ошибок, улучшения или новые функции, пожалуйста, не стесняйтесь отправлять запрос на обновление. From 43da1862ca3868c0b3331cd625385df3f782e53c Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:04:28 +0500 Subject: [PATCH 85/92] fix: https://github.com/Radiquum/AniX/pull/6#discussion_r2115719901 --- player-parsers/shared.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/player-parsers/shared.ts b/player-parsers/shared.ts index 3ce9203..e42e77a 100644 --- a/player-parsers/shared.ts +++ b/player-parsers/shared.ts @@ -29,5 +29,5 @@ export function asJSON(res, object: any, status: number) { } export function randomUA() { - return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length - 1)] + return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length)] } \ No newline at end of file From 780c7b0f2717d7ce20bca4a3f38513bbf43c3afa Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:14:15 +0500 Subject: [PATCH 86/92] fix/player-parsers: https://github.com/Radiquum/AniX/pull/6#discussion_r2115719912 --- player-parsers/shared.ts | 43 +++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/player-parsers/shared.ts b/player-parsers/shared.ts index e42e77a..fd3a955 100644 --- a/player-parsers/shared.ts +++ b/player-parsers/shared.ts @@ -10,24 +10,39 @@ export const resHeaders = { }; export const USERAGENTS = [ - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8", - "Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15", - "Mozilla/5.0 (Windows NT 10.0; Windows; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", + "Mozilla/5.0 (Linux; Android 12.0; LG G8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.2.7124.71 Mobile Safari/537.36", + "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.5.1269.13 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/123.0 Firefox/123.0", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.8.4576.73 Safari/537.36", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/121.0 Firefox/121.0", + "Mozilla/5.0 (Linux; Android 11.0; OnePlus 10T Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.8.1484.76 Mobile Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.9.9841.32 Safari/537.36", + "Mozilla/5.0 (Windows NT 11.0; Win64; x64; rv:124.0) Gecko/124.0 Firefox/124.0", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.3457.25 Safari/537.36", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:124.0) Gecko/124.0 Firefox/124.0", + "Mozilla/5.0 (Linux; Android 13.0; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.3.1166.27 Mobile Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.6.4126.27 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/130.0 Firefox/130.0", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.3.4677.74 Safari/537.36", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:122.0) Gecko/122.0 Firefox/122.0", + "Mozilla/5.0 (Linux; Android 12.0; Xiaomi Redmi Note 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.6.3806.92 Mobile Safari/537.36", + "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.3.9963.85 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/122.0 Firefox/122.0", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.8.5618.48 Safari/537.36", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/126.0 Firefox/126.0", + "Mozilla/5.0 (Linux; Android 12.0; Huawei Mate 40) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6740.69 Mobile Safari/537.36", + "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.9.2666.21 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/132.0 Firefox/132.0", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.4804.4 Safari/537.36", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:128.0) Gecko/128.0 Firefox/128.0", ]; export function asJSON(res, object: any, status: number) { - res.status(status).type('application/json'); - res.set(corsHeaders) + res.status(status).type("application/json"); + res.set(corsHeaders); res.send(JSON.stringify(object)); } export function randomUA() { - return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length)] -} \ No newline at end of file + return USERAGENTS[Math.floor(Math.random() * USERAGENTS.length)]; +} From e79d1e92b881441e3b9b5fd75b6be0ec93e60aa8 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:15:28 +0500 Subject: [PATCH 87/92] fix/player-parsers: https://github.com/Radiquum/AniX/pull/6#discussion_r2115719903 --- player-parsers/kodik.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/player-parsers/kodik.ts b/player-parsers/kodik.ts index 19b0ebd..e28444d 100644 --- a/player-parsers/kodik.ts +++ b/player-parsers/kodik.ts @@ -19,7 +19,7 @@ export async function getKodikURL(res, url: string) { }); if (!pageRes.ok) { - for (let i = 0; i < altDomains.length - 1; i++) { + for (let i = 0; i < altDomains.length; i++) { if (url.includes(altDomains[i])) { continue; } From f249cb85ec4566b9accb4f8ef40a84df46a40716 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:19:24 +0500 Subject: [PATCH 88/92] fix/player-parsers: https://github.com/Radiquum/AniX/pull/6#discussion_r2115719910 --- player-parsers/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/player-parsers/index.ts b/player-parsers/index.ts index d66c34a..e3b891f 100644 --- a/player-parsers/index.ts +++ b/player-parsers/index.ts @@ -11,8 +11,9 @@ const port = 7000; const allowedPlayers = ["kodik", "libria", "sibnet"]; app.get("/", (req, res) => { - const url = req.query.url; - const player = req.query.player; + const urlParams = new URLSearchParams(req.query) + const url = urlParams.get("url"); + const player = urlParams.get("player"); if (!url) { asJSON(res, { message: "no 'url' query provided" }, 400) From 3c5ec6c39fd098dc530794d0f943800eac9f2df8 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:21:07 +0500 Subject: [PATCH 89/92] chore/docs: fix spelling of README --- REAME.RU.md => README.RU.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename REAME.RU.md => README.RU.md (96%) diff --git a/REAME.RU.md b/README.RU.md similarity index 96% rename from REAME.RU.md rename to README.RU.md index eacf219..70ca94e 100644 --- a/REAME.RU.md +++ b/README.RU.md @@ -8,7 +8,7 @@ AniX - это неофициальный веб-клиент для Android-пр --- -[[RU] ПРОЧТИ МЕНЯ](./REAME.RU.md) | [[EN] README](./REAME.md) +[[RU] ПРОЧТИ МЕНЯ](./README.RU.md) | [[EN] README](./README.md) [[RU] РАЗВЁРТЫВАНИЕ](./DEPLOYMENT.RU.md) | [[EN] DEPLOY](./DEPLOYMENT.md) diff --git a/README.md b/README.md index 1882b28..0f965ed 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Please note that AniX is an unofficial project and is not affiliated with the de --- -[[RU] ПРОЧТИ МЕНЯ](./REAME.RU.md) | [[EN] README](./REAME.md) +[[RU] ПРОЧТИ МЕНЯ](./README.RU.md) | [[EN] README](./README.md) [[RU] РАЗВЁРТЫВАНИЕ](./DEPLOYMENT.RU.md) | [[EN] DEPLOY](./DEPLOYMENT.md) From 038122fc2a38fa23e965da7e2f94e575c7b5f344 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:34:23 +0500 Subject: [PATCH 90/92] chore/docs: fix spelling in DEPLOYMENT --- DEPLOYMENT.RU.md | 48 ++++++++++++++++++++++++------------------------ DEPLOYMENT.md | 34 +++++++++++++++++----------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/DEPLOYMENT.RU.md b/DEPLOYMENT.RU.md index 076a2f5..d7114be 100644 --- a/DEPLOYMENT.RU.md +++ b/DEPLOYMENT.RU.md @@ -7,16 +7,16 @@ - аккаунт GitHub - аккаунт Vercel -1. сделайте форк репозитория +1. Создайте форк репозитория ![fork button](./docs/deploy/fork.png) -2. Войдите в аккаунт vercel +2. Войдите в аккаунт Vercel > [!IMPORTANT] - >Аккаунт Vercel должен быть связан с аккаунтом Github. + > Аккаунт Vercel должен быть связан с аккаунтом GitHub. > - >Если у вас нет аккаунта vercel, то создайте его через вход с помощью Github. + > Если у вас нет аккаунта Vercel, то создайте его через вход с помощью GitHub. 3. Нажмите кнопку создать новый проект @@ -26,7 +26,7 @@ ![vercel import button](./docs/deploy/vercel_import.png) -5. (опционально) добавьте переменные для использования своего плеере: +5. (опционально) добавьте переменные для использования своего плеера: - NEXT_PUBLIC_KODIK_PARSER_URL - NEXT_PUBLIC_ANILIBRIA_PARSER_URL @@ -36,9 +36,9 @@ ![vercel project settings](./docs/deploy/vercel_project.png) -6. нажмите кнопку "Deploy" и ожидайте пока не появиться подтверждение +6. нажмите кнопку "Deploy" и ожидайте пока не появится подтверждение 7. нажмите кнопку "Continue to Dashboard" -8. клиент будет доступен по ссылке такого вида, нажмите на неё что-бы его открыть +8. клиент будет доступен по ссылке такого вида, нажмите на неё чтобы его открыть ![vercel project url](./docs/deploy/vercel_url.png) ## Netlify @@ -48,16 +48,16 @@ - аккаунт GitHub - аккаунт Netlify -1. сделайте форк репозитория +1. Создайте форк репозитория ![fork button](./docs/deploy/fork.png) -2. Войдите в аккаунт netlify +2. Войдите в аккаунт Netlify > [!IMPORTANT] - >Аккаунт Netlify должен быть связан с аккаунтом Github. + > Аккаунт Netlify должен быть связан с аккаунтом GitHub. > - >Если у вас нет аккаунта Netlify, то создайте его через вход с помощью Github. + > Если у вас нет аккаунта Netlify, то создайте его через вход с помощью GitHub. 3. Нажмите кнопку создать новый проект @@ -75,7 +75,7 @@ ![netlify project name](./docs/deploy/netlify_project_name.png) -7. (опционально) добавьте переменные для использования своего плеере: +7. (опционально) добавьте переменные для использования своего плеера: - NEXT_PUBLIC_KODIK_PARSER_URL - NEXT_PUBLIC_ANILIBRIA_PARSER_URL @@ -87,9 +87,9 @@ 2. ![alt text](./docs/deploy/netlify_env_2.png) -8. нажмите кнопку "Deploy" и ожидайте пока не появиться подтверждение +8. нажмите кнопку "Deploy" и ожидайте пока не появится подтверждение -9. клиент будет доступен по ссылке такого вида, нажмите на неё что-бы его открыть +9. клиент будет доступен по ссылке такого вида, нажмите на неё чтобы его открыть ![netlify project url](./docs/deploy/netlify_url.png) @@ -101,7 +101,7 @@ ### Пре-билд -1. выполните комманду: +1. выполните команду: `docker run -d --name anix -p 3000:3000 radiquum/anix:latest` @@ -121,9 +121,9 @@ - -d - запустить контейнер в фоне - --restart always - всегда запускать после перезагрузки сервера - --name - название контейнера -- -p - порт контейнера который будет доступен из вне. ПОРТ:3000 +- -p - порт контейнера который будет доступен извне. ПОРТ:3000 ->[!NOTE] +> [!NOTE] > для переменных которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md), необходимо использовать `-e ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ` до слова anix [команда docker run](https://docs.docker.com/reference/cli/docker/container/run/) @@ -134,12 +134,12 @@ ### docker/Примечание -Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL. +Для использования своего домена и поддержки протокола HTTPS, вы можете использовать Traefik или другой reverse-proxy, с сертификатом SSL. Полезные ссылки: - [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter) -- [Как настроить traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) +- [Как настроить Traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) ## pm2 @@ -156,11 +156,11 @@ 3. Выполните команду `npm install` 4. (опционально) скопируйте .env.sample как .env и заполните его переменными которые вы получили, если развёртывали [anix-player-parsers](./player-parsers/README.RU.md) 5. Выполните команду `npm run build` -6. создайте новую директорию -7. переместите в созданную директорию - - директорию `public` в `./новая/public` - - директорию `.next/static` в `./новая/.next/static` - - файлы из `.next/standalone` в `./новая` +6. создайте новую директорию (далее будем использовать `<имя_новой_директории>` как её имя) +7. переместите в созданную директорию (`<имя_новой_директории>`) + - директорию `public` в `<имя_новой_директории>/public` + - директорию `.next/static` в `<имя_новой_директории>/.next/static` + - файлы из `.next/standalone` в `<имя_новой_директории>` 8. Переместитесь в созданную директорию и выполните команду `pm2 start server.js -n anix` ### pm2/Обозначения diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index bbc8a74..46f5a97 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -14,9 +14,9 @@ Requirements: 2. Log in to your Vercel account > [!IMPORTANT] - >Your Vercel account must be linked with your GitHub account. + > Your Vercel account must be linked with your GitHub account. > - >If you don't have a Vercel account, create one by signing in with GitHub. + > If you don't have a Vercel account, create one by signing in with GitHub. 3. Click the button to create a new project @@ -36,9 +36,9 @@ Requirements: ![vercel project settings](./docs/deploy/vercel_project.png) -6. Click the "Deploy" button and wait until you see a confirmation -7. Click the "Continue to Dashboard" button -8. The client will be available at a link of this form, click it to open +6. Click the "Deploy" button and wait until you see a confirmation +7. Click the "Continue to Dashboard" button +8. The client will be available at a link of this form, click it to open ![vercel project url](./docs/deploy/vercel_url.png) ## Netlify @@ -55,9 +55,9 @@ Requirements: 2. Log in to your Netlify account > [!IMPORTANT] - >Your Netlify account must be linked with your GitHub account. + > Your Netlify account must be linked with your GitHub account. > - >If you don't have a Netlify account, create one by signing in with GitHub. + > If you don't have a Netlify account, create one by signing in with GitHub. 3. Click the button to create a new project @@ -118,12 +118,12 @@ Additional Requirements: ### docker/Flags -- -d - run container in background +- -d - run container in the background - --restart always - always restart after server reboot - --name - container name - -p - container port to be exposed externally. PORT:3000 ->[!NOTE] +> [!NOTE] > For variables you received if you deployed [anix-player-parsers](./player-parsers/README.md), you need to use `-e VARIABLE=VALUE` before the word anix [docker run command](https://docs.docker.com/reference/cli/docker/container/run/) @@ -134,12 +134,12 @@ The service will be available at: `http://<:YOUR PORT>/` ### docker/Note -To use your own domain and support HTTPS protocol, you can use traefik or another reverse proxy with SSL certificate. +To use your own domain and support HTTPS protocol, you can use Traefik or another reverse proxy with SSL certificate. Useful links: - [Converter from docker run command to docker compose syntax](https://it-tools.tech/docker-run-to-docker-compose-converter) -- [How to setup traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) +- [How to setup Traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) ## pm2 @@ -156,12 +156,12 @@ Instructions: 3. Run the command `npm install` 4. (optional) copy `.env.sample` as `.env` and fill it with variables you received if you deployed [anix-player-parsers](./player-parsers/README.md) 5. Run the command `npm run build` -6. Create a new directory -7. Move into the new directory: - - move `public` directory to `./new/public` - - move `.next/static` directory to `./new/.next/static` - - move files from `.next/standalone` to `./new` -8. Move into the created directory and run the command `pm2 start server.js -n anix` +6. Create a new directory (next we will be refer to its name as ``) +7. Move the following files into the new directory (``): + - move `public` directory to `/public` + - move `.next/static` directory to `/.next/static` + - move files from `.next/standalone` to `` +8. Move into the created directory () and run the command `pm2 start server.js -n anix` ### pm2/Flags From be01230d0a1369dd463a79a528354fc23bf744cf Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:39:10 +0500 Subject: [PATCH 91/92] chore/docs/player-parsers: fix spelling in README --- player-parsers/README.RU.md | 21 ++++++++++----------- player-parsers/README.md | 13 ++++++------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/player-parsers/README.RU.md b/player-parsers/README.RU.md index d6cd9a0..d206410 100644 --- a/player-parsers/README.RU.md +++ b/player-parsers/README.RU.md @@ -1,10 +1,10 @@ # AniX - Player Parsers -Данный под-проект позволяет получить прямые ссылки на видеофайлы с источников Sibnet, Kodik, Libria +Данный под-проект позволяет получить прямые ссылки на видеофайлы с источников Sibnet, Kodik, Anilibria (источник: libria) Он может использоваться как для основного проекта AniX, так и как отдельный сервис. -В основном проекте, парсеры используются для работы своего плеере, если вам не важна данная функция, вы можете не развёртывать данный суб-сервис. +В основном проекте, парсеры используются для работы своего плеера, если вам не важна данная функция, вы можете не развёртывать данный суб-сервис. Лицензия: [MIT](../LICENSE) @@ -22,7 +22,7 @@ - VIDEO_URL - ссылка на видео от источника - PLAYER_SOURCE - источник, один из: kodik, sibnet, libria ->[!NOTE] +> [!NOTE] > Если используется источник libria, ссылка должна быть ссылкой на API anilibria, а не на плеер Ответ: @@ -32,9 +32,10 @@ ## Развёртывание +> [!IMPORTANT] > В связи с спецификой источников, рекомендуется использовать виртуальный сервер в россии, т.к. они могут быть недоступны из других стран. > -> Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как CloudFlare Workers или Deno, а только на отдельном сервере. +> Из-за данной специфики, парсеры невозможно развернуть на edge сервисах, таких как Cloudflare Workers или Deno, а только на отдельном сервере. ### Docker @@ -44,7 +45,7 @@ ### Пре-билд -1. выполните комманду: +1. выполните команду: `docker run -d --name anix-player -p 7000:7000 radiquum/anix-player-parser:latest` @@ -65,7 +66,7 @@ - -d - запустить контейнер в фоне - --restart always - всегда запускать после перезагрузки сервера - --name - название контейнера -- -p - порт контейнера который будет доступен из вне. ПОРТ:7000 +- -p - порт контейнера который будет доступен извне. ПОРТ:7000 ### docker/После развёртывания @@ -73,14 +74,12 @@ ### docker/Примечание -Для использования своего домена и поддержки протокола https, вы можете использовать traefik или другой reverse-proxy, с сертификатом SSL. +Для использования своего домена и поддержки протокола HTTPS, вы можете использовать Traefik или другой reverse-proxy, с сертификатом SSL. Полезные ссылки: - [Конвертер из команды docker run в синтакс для docker compose](https://it-tools.tech/docker-run-to-docker-compose-converter) -- [Как настроить traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) - - +- [Как настроить Traefik + свой домен + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) ### pm2 @@ -96,7 +95,7 @@ 2. Переместитесь в директорию репозитория `cd AniX` 3. Переместитесь в директорию парсеров `cd player-parsers` 4. Выполните команду `npm install` -5. После окончания, Выполните команду `pm2 start index.ts -n anix-player-parser` +5. После окончания и выполните команду `pm2 start index.ts -n anix-player-parser` ### pm2/Обозначения diff --git a/player-parsers/README.md b/player-parsers/README.md index ab6d023..c284ab0 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -32,9 +32,10 @@ Response: ## Deployment +> [!IMPORTANT] > Due to the nature of the sources, it is recommended to use a virtual server in Russia, as they may be inaccessible from other countries. > -> Because of this specificity, the parsers cannot be deployed on edge services like CloudFlare Workers or Deno, only on a dedicated server. +> Because of this specificity, the parsers cannot be deployed on edge services like Cloudflare Workers or Deno, only on a dedicated server. ### Docker @@ -62,7 +63,7 @@ Additional Requirements: ### docker/Legend -- -d - run the container in background +- -d - run container in the background - --restart always - always restart after server reboot - --name - container name - -p - container port accessible externally. PORT:7000 @@ -73,14 +74,12 @@ The service will be available at: `http://<:YOUR PORT>/` ### docker/Note -To use your own domain and support the https protocol, you can use traefik or another reverse-proxy with an SSL certificate. +To use your own domain and support the HTTPS protocol, you can use Traefik or another reverse-proxy with an SSL certificate. Useful links: - [Docker run to docker compose syntax converter](https://it-tools.tech/docker-run-to-docker-compose-converter) -- [How to setup traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) - - +- [How to setup Traefik + custom domain + SSL](https://letmegooglethat.com/?q=how+to+setup+traefik+with+custom+domain+and+ssl+certificate+from+lets+encrypt%3F) ### pm2 @@ -96,7 +95,7 @@ Instructions: 2. Navigate to the repository directory `cd AniX` 3. Navigate to the parsers directory `cd player-parsers` 4. Run the command `npm install` -5. Once finished, Run the command `pm2 start index.ts -n anix-player-parser` +5. Once finished, run the command `pm2 start index.ts -n anix-player-parser` ### pm2/Legend From 9931962a6bb8bcedadacd32b45c43eb9ecda7896 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Sat, 31 May 2025 12:46:20 +0500 Subject: [PATCH 92/92] chore/docs: update --- DEPLOYMENT.RU.md | 16 ++++++++-------- DEPLOYMENT.md | 16 ++++++++-------- player-parsers/README.md | 4 ++-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/DEPLOYMENT.RU.md b/DEPLOYMENT.RU.md index d7114be..78f43a3 100644 --- a/DEPLOYMENT.RU.md +++ b/DEPLOYMENT.RU.md @@ -13,10 +13,10 @@ 2. Войдите в аккаунт Vercel - > [!IMPORTANT] - > Аккаунт Vercel должен быть связан с аккаунтом GitHub. - > - > Если у вас нет аккаунта Vercel, то создайте его через вход с помощью GitHub. +> [!IMPORTANT] +> Аккаунт Vercel должен быть связан с аккаунтом GitHub. +> +> Если у вас нет аккаунта Vercel, то создайте его через вход с помощью GitHub. 3. Нажмите кнопку создать новый проект @@ -54,10 +54,10 @@ 2. Войдите в аккаунт Netlify - > [!IMPORTANT] - > Аккаунт Netlify должен быть связан с аккаунтом GitHub. - > - > Если у вас нет аккаунта Netlify, то создайте его через вход с помощью GitHub. +> [!IMPORTANT] +> Аккаунт Netlify должен быть связан с аккаунтом GitHub. +> +> Если у вас нет аккаунта Netlify, то создайте его через вход с помощью GitHub. 3. Нажмите кнопку создать новый проект diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 46f5a97..f7ae21b 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -13,10 +13,10 @@ Requirements: 2. Log in to your Vercel account - > [!IMPORTANT] - > Your Vercel account must be linked with your GitHub account. - > - > If you don't have a Vercel account, create one by signing in with GitHub. +> [!IMPORTANT] +> Your Vercel account must be linked with your GitHub account. +> +> If you don't have a Vercel account, create one by signing in with GitHub. 3. Click the button to create a new project @@ -54,10 +54,10 @@ Requirements: 2. Log in to your Netlify account - > [!IMPORTANT] - > Your Netlify account must be linked with your GitHub account. - > - > If you don't have a Netlify account, create one by signing in with GitHub. +> [!IMPORTANT] +> Your Netlify account must be linked with your GitHub account. +> +> If you don't have a Netlify account, create one by signing in with GitHub. 3. Click the button to create a new project diff --git a/player-parsers/README.md b/player-parsers/README.md index c284ab0..a0bc338 100644 --- a/player-parsers/README.md +++ b/player-parsers/README.md @@ -1,6 +1,6 @@ # AniX - Player Parsers -This sub-project allows obtaining direct video file links from sources Sibnet, Kodik, Libria +This sub-project allows obtaining direct video file links from sources Sibnet, Kodik, Anilibria (source: libria) It can be used both for the main AniX project and as a standalone service. @@ -22,7 +22,7 @@ where: - VIDEO_URL - the link to the video from the source - PLAYER_SOURCE - the source, one of: kodik, sibnet, libria ->[!NOTE] +> [!NOTE] > When using libria source, url should be the url to the anilibria api, not player directly Response: