From 6525a00d4b3f7d384278866a8f1006332bee3f73 Mon Sep 17 00:00:00 2001 From: Shiv-kumar-behera <143790387+Shiv-kumar-behera@users.noreply.github.com> Date: Mon, 9 Jun 2025 12:09:51 +0530 Subject: [PATCH 1/8] Initial commit --- README.md | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index c126e93e3..013eaf528 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,2 @@ -# personalized-learning-path -Project repo for Problem Statement 2 - Personalized Learning Path Recommendation -## Our Team - -We’re a collaborative team working together on this project: - -| Name | Email | Role | -|-----------------------|-----------------------------|-----------------| -| B Bhavitha | bhavitha9052004@gmail.com | T3 Team Lead | -| Anurag Kumar | anurag2003ias@gmail.com | T3 Contributor | -| Nishant | nishantthakurs7519@gmail.com| T3 Contributor | -| Tamalampudi Sameer Reddy| sameerreddy213@gmail.com | T3 Contributor | - -Everyone’s contributions are highly valued! -## Contribution Guidelines - -We welcome contributions from all team members! Here’s how you can get started: - -1. **Fork the repository** to your own GitHub account. -2. **Clone** your fork to your local machine. -3. **Create a new branch** for your work. -4. Make your changes, ensuring they follow good coding practices. -5. **Commit** your changes with a clear message. -6. **Push** your branch to your fork. -7. **Open a Pull Request (PR)** to the main repository. - -Please make sure to: -- Check if an issue already exists before starting new features or fixes. -- Follow the folder structure (`client/`, `server/`, `scraper/`, `graph/`, `docs/`). -- Add meaningful commit messages. -- Be respectful of others’ work — collaboration is key! - -Refer to [`CONTRIBUTING.md`](CONTRIBUTING.md) for more detailed guidelines. - -Happy contributing! +# Personalized-learning-path-visualization +Project based on recommendation system From 10e4fa57ebb7e6d8c953e973e40b99d6bded9ce9 Mon Sep 17 00:00:00 2001 From: Devansh Srivastava Date: Mon, 9 Jun 2025 12:04:09 +0530 Subject: [PATCH 2/8] init: initial commit --- server/.gitignore | 2 + server/index.ts | 13 + server/package-lock.json | 943 +++++++++++++++++++++++++++++++++++++++ server/package.json | 20 + server/tsconfig.json | 100 +++++ 5 files changed, 1078 insertions(+) create mode 100644 server/.gitignore create mode 100644 server/index.ts create mode 100644 server/package-lock.json create mode 100644 server/package.json create mode 100644 server/tsconfig.json diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 000000000..b94707787 --- /dev/null +++ b/server/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ diff --git a/server/index.ts b/server/index.ts new file mode 100644 index 000000000..c11cb61f0 --- /dev/null +++ b/server/index.ts @@ -0,0 +1,13 @@ +import express, { Request, Response } from 'express'; + +const app = express(); +const PORT = 3000; +app.use(express.json()) + +app.get('/', (req: Request, res: Response) => { + res.status(200).json({ message: "home route" }) +}) + +app.listen(PORT, () => { + console.log(`Server is running over port: ${PORT}`); +}) diff --git a/server/package-lock.json b/server/package-lock.json new file mode 100644 index 000000000..0f1b7992b --- /dev/null +++ b/server/package-lock.json @@ -0,0 +1,943 @@ +{ + "name": "recommendation", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "recommendation", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "express": "^5.1.0" + }, + "devDependencies": { + "@types/express": "^5.0.3", + "@types/node": "^22.15.30" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", + "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz", + "integrity": "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "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/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/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/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/http-errors/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/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/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.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "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/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/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "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/server/package.json b/server/package.json new file mode 100644 index 000000000..057b80a26 --- /dev/null +++ b/server/package.json @@ -0,0 +1,20 @@ +{ + "name": "server", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "module", + "dependencies": { + "express": "^5.1.0" + }, + "devDependencies": { + "@types/express": "^5.0.3", + "@types/node": "^22.15.30" + } +} diff --git a/server/tsconfig.json b/server/tsconfig.json new file mode 100644 index 000000000..2ead4ef46 --- /dev/null +++ b/server/tsconfig.json @@ -0,0 +1,100 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + /* Language and Environment */ + "target": "ES2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + /* Modules */ + "module": "NodeNext", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + "outDir": "./dist", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} From b30d672a525997f26243b888832df44a8df9fe26 Mon Sep 17 00:00:00 2001 From: Devansh Srivastava <102247720+devansh-srv@users.noreply.github.com> Date: Mon, 9 Jun 2025 12:17:39 +0530 Subject: [PATCH 3/8] Update server/index.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- server/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/index.ts b/server/index.ts index c11cb61f0..53dc3f997 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1,7 +1,7 @@ import express, { Request, Response } from 'express'; const app = express(); -const PORT = 3000; +const PORT = process.env.PORT || 3000; app.use(express.json()) app.get('/', (req: Request, res: Response) => { From ad5cd72b800461d1184567828b2842cbf4ee546b Mon Sep 17 00:00:00 2001 From: Devansh Srivastava Date: Mon, 9 Jun 2025 16:14:52 +0530 Subject: [PATCH 4/8] feat: add login routes with jwt support --- server/.gitignore | 1 + server/index.ts | 46 ++- server/middleware/errorHandler.ts | 12 + server/middleware/jwt.ts | 33 +++ server/models/user.ts | 8 + server/package-lock.json | 473 +++++++++++++++++++++++++++++- server/package.json | 14 +- server/routes/auth.ts | 55 ++++ 8 files changed, 636 insertions(+), 6 deletions(-) create mode 100644 server/middleware/errorHandler.ts create mode 100644 server/middleware/jwt.ts create mode 100644 server/models/user.ts create mode 100644 server/routes/auth.ts diff --git a/server/.gitignore b/server/.gitignore index b94707787..deed335be 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1,2 +1,3 @@ node_modules/ dist/ +.env diff --git a/server/index.ts b/server/index.ts index 53dc3f997..f2912c7b1 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1,13 +1,55 @@ import express, { Request, Response } from 'express'; +import cors from 'cors' +import helmet from 'helmet' +import { errorHandler } from './middleware/errorHandler.js' +import mongoose from 'mongoose'; +import { authRouter } from './routes/auth.js' const app = express(); const PORT = process.env.PORT || 3000; +app.use(helmet({ + crossOriginResourcePolicy: false +})) +app.use(cors({ + origin: '*', + methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], + allowedHeaders: ['Authorization'] +})) app.use(express.json()) +const env = process.env.NODE_ENV || 'development'; +const uri = process.env.MONGO_DB_URI || 'mongodb://127.0.0.1:27017/recommendation_app'; +if (uri === undefined) { + throw new Error('Database not connected'); +} +mongoose.connect(uri, {}).then(() => console.log('connected to MongoDB')).catch((err) => console.log('MongoDB connection Error', err)); +process.on('SIGTERM', gracefulShutdown); +process.on('SIGINT', gracefulShutdown); + app.get('/', (req: Request, res: Response) => { res.status(200).json({ message: "home route" }) }) +app.use('/api', authRouter) +app.use(errorHandler) + +const server = app.listen(PORT, () => { + console.log(`Server is running over port: ${PORT} in ${env}`); +}) -app.listen(PORT, () => { - console.log(`Server is running over port: ${PORT}`); +app.use((req: Request, res: Response) => { + res.status(404).json({ error: '404 Route not found' }); }) + +function gracefulShutdown() { + console.log('Received kill signal, closing gracefully'); + server.close(async () => { + console.log('closing connections') + await mongoose.connection.close(); + process.exit(0); + }) + + setTimeout(() => { + console.error('closing connections forcefully'); + process.exit(1); + }, 10000); +} diff --git a/server/middleware/errorHandler.ts b/server/middleware/errorHandler.ts new file mode 100644 index 000000000..1ccb67729 --- /dev/null +++ b/server/middleware/errorHandler.ts @@ -0,0 +1,12 @@ +import 'dotenv/config' +import { Request, Response, NextFunction } from 'express'; +export function errorHandler(err: Error, req: Request, res: Response, next: NextFunction) { + console.log({ + message: err.message, + stack: process.env.NODE_ENV === 'development' ? err.stack : undefined + }) + res.status(500).json({ + message: err.message, + stack: process.env.NODE_ENV === 'development' ? err.stack : undefined + }) +} diff --git a/server/middleware/jwt.ts b/server/middleware/jwt.ts new file mode 100644 index 000000000..55eda76ef --- /dev/null +++ b/server/middleware/jwt.ts @@ -0,0 +1,33 @@ +import { Request, Response, NextFunction } from 'express'; +import 'dotenv/config' +import jwt from 'jsonwebtoken'; + +const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key'; +const JWT_EXPIRY = 1; +export interface JWTPayload extends Request { + id: string; + username: string; +} + +export function jwtMiddleware(req: JWTPayload, res: Response, next: NextFunction) { + const authHeader = req.header('Authorization'); + if (!authHeader) { + res.status(401).json({ message: 'Authorization header missing' }) + return; + } + const token = authHeader.split(' ')[1]; + if (!token) { + res.status(401).json({ message: 'Authorization header missing' }) + return; + } + try { + const decoded = jwt.verify(token, JWT_SECRET); + next(); + } catch (err) { + res.status(403).json({ message: 'Invalid or expired token' }); + return; + } +} +export function tokenGeneration(payload: Object) { + return jwt.sign(payload, JWT_SECRET, { expiresIn: JWT_EXPIRY }) +} diff --git a/server/models/user.ts b/server/models/user.ts new file mode 100644 index 000000000..8567bc814 --- /dev/null +++ b/server/models/user.ts @@ -0,0 +1,8 @@ +import mongoose from 'mongoose'; + +const userSchema = new mongoose.Schema({ + username: { type: String, required: true }, + password: { type: String, required: true } +}) + +export const User = mongoose.model('User', userSchema); diff --git a/server/package-lock.json b/server/package-lock.json index 0f1b7992b..5d5935a8d 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,21 +1,52 @@ { - "name": "recommendation", + "name": "server", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "recommendation", + "name": "server", "version": "1.0.0", "license": "ISC", "dependencies": { - "express": "^5.1.0" + "bcryptjs": "^3.0.2", + "cors": "^2.8.5", + "dotenv": "^16.5.0", + "express": "^5.1.0", + "express-validator": "^7.2.1", + "helmet": "^8.1.0", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.15.1" }, "devDependencies": { + "@types/bcrypt": "^5.0.2", + "@types/cors": "^2.8.19", "@types/express": "^5.0.3", + "@types/helmet": "^0.0.48", + "@types/jsonwebtoken": "^9.0.9", + "@types/mongoose": "^5.11.96", "@types/node": "^22.15.30" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", + "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@types/bcrypt": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.2.tgz", + "integrity": "sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -37,6 +68,16 @@ "@types/node": "*" } }, + "node_modules/@types/cors": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/express": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", @@ -62,6 +103,16 @@ "@types/send": "*" } }, + "node_modules/@types/helmet": { + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.48.tgz", + "integrity": "sha512-C7MpnvSDrunS1q2Oy1VWCY7CDWHozqSnM8P4tFeRTuzwqni+PYOjEredwcqWG+kLpYcgLsgcY3orHB54gbx2Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, "node_modules/@types/http-errors": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", @@ -69,6 +120,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz", + "integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -76,6 +138,23 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mongoose": { + "version": "5.11.96", + "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.11.96.tgz", + "integrity": "sha512-keiY22ljJtXyM7osgScmZOHV6eL5VFUD5tQumlu+hjS++HND5nM8jNEdj5CSWfKIJpVwQfPuwQ2SfBqUnCAVRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mongoose": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "22.15.30", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz", @@ -123,6 +202,21 @@ "@types/send": "*" } }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, "node_modules/accepts": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", @@ -136,6 +230,15 @@ "node": ">= 0.6" } }, + "node_modules/bcryptjs": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", + "integrity": "sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==", + "license": "BSD-3-Clause", + "bin": { + "bcrypt": "bin/bcrypt" + } + }, "node_modules/body-parser": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", @@ -156,6 +259,21 @@ "node": ">=18" } }, + "node_modules/bson": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", + "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -233,6 +351,19 @@ "node": ">=6.6.0" } }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/debug": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", @@ -259,6 +390,18 @@ "node": ">= 0.8" } }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -273,6 +416,15 @@ "node": ">= 0.4" } }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -375,6 +527,19 @@ "url": "https://opencollective.com/express" } }, + "node_modules/express-validator": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-7.2.1.tgz", + "integrity": "sha512-CjNE6aakfpuwGaHQZ3m8ltCG2Qvivd7RHtVMS/6nVxOM7xVGqr4bhflsm4+N5FP5zI7Zxp+Hae+9RE+o8e3ZOQ==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "validator": "~13.12.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/finalhandler": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", @@ -492,6 +657,15 @@ "node": ">= 0.4" } }, + "node_modules/helmet": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-8.1.0.tgz", + "integrity": "sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -550,6 +724,106 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "license": "MIT" }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kareem": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", + "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -568,6 +842,12 @@ "node": ">= 0.8" } }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT" + }, "node_modules/merge-descriptors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", @@ -601,6 +881,105 @@ "node": ">= 0.6" } }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", + "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", + "license": "Apache-2.0", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^14.1.0 || ^13.0.0" + } + }, + "node_modules/mongoose": { + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.15.1.tgz", + "integrity": "sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==", + "license": "MIT", + "dependencies": { + "bson": "^6.10.3", + "kareem": "2.6.3", + "mongodb": "~6.16.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "17.1.3" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/mongodb": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.16.0.tgz", + "integrity": "sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.9", + "bson": "^6.10.3", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "license": "MIT", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -616,6 +995,15 @@ "node": ">= 0.6" } }, + "node_modules/object-assign": { + "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" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -680,6 +1068,15 @@ "node": ">= 0.10" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", @@ -761,6 +1158,18 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/send": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", @@ -876,6 +1285,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sift": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", + "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", + "license": "MIT" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", @@ -894,6 +1318,18 @@ "node": ">=0.6" } }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/type-is": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", @@ -924,6 +1360,15 @@ "node": ">= 0.8" } }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -933,6 +1378,28 @@ "node": ">= 0.8" } }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/server/package.json b/server/package.json index 057b80a26..6d81650c4 100644 --- a/server/package.json +++ b/server/package.json @@ -11,10 +11,22 @@ "license": "ISC", "type": "module", "dependencies": { - "express": "^5.1.0" + "bcryptjs": "^3.0.2", + "cors": "^2.8.5", + "dotenv": "^16.5.0", + "express": "^5.1.0", + "express-validator": "^7.2.1", + "helmet": "^8.1.0", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.15.1" }, "devDependencies": { + "@types/bcrypt": "^5.0.2", + "@types/cors": "^2.8.19", "@types/express": "^5.0.3", + "@types/helmet": "^0.0.48", + "@types/jsonwebtoken": "^9.0.9", + "@types/mongoose": "^5.11.96", "@types/node": "^22.15.30" } } diff --git a/server/routes/auth.ts b/server/routes/auth.ts new file mode 100644 index 000000000..c79eca7c2 --- /dev/null +++ b/server/routes/auth.ts @@ -0,0 +1,55 @@ +import { Router, Request, Response } from 'express' +import { User } from '../models/user.js'; +import { JWTPayload, tokenGeneration } from '../middleware/jwt.js' +import * as bcrypt from 'bcryptjs' +const SALT = 10; +export const authRouter = Router(); + + +authRouter.post('/register', async (req: Request, res: Response) => { + const { username, password } = req.body; + const user = await User.findOne({ username }); + if (user) { + res.status(400).json({ + message: 'User already exists' + }) + return; + } + const hashedPassword = await bcrypt.hash(password, SALT); + const newUser = await User.create({ + username: username, + password: hashedPassword + }); + const token = tokenGeneration({ id: newUser._id, username: newUser.username }); + res.status(201).json({ + message: `${username} registered successfully`, + token, + }); + return; +}) + + +authRouter.post('/login', async (req: Request, res: Response) => { + const { username, password } = req.body; + const user = await User.findOne({ username }); + if (!user || !user.password) { + res.status(404).json({ + message: 'User not found' + }) + return; + } + console.log(user); + const passwdTest = await bcrypt.compare(password, user.password); + if (!passwdTest) { + res.status(401).json({ + message: 'Invalid Credentials' + }) + return; + } + const token = tokenGeneration({ id: user._id, username: user.username }) + res.status(200).json({ + message: 'Login Successful', + token + }); + return; +}) From ee41c13afaa8b6676e022a55f271d2bbc72f6c29 Mon Sep 17 00:00:00 2001 From: Devansh Srivastava <102247720+devansh-srv@users.noreply.github.com> Date: Mon, 9 Jun 2025 16:33:07 +0530 Subject: [PATCH 5/8] Create node.js.yml --- .github/workflows/node.js.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/node.js.yml diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 000000000..ea217435e --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,34 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs + +name: Node.js CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x, 22.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - name: Install dependencies + run: npm ci + working-directory: server + - name: Build Typescript + run: npx tsc + working-directory: server From 284fc962c83fc23947bf7b0ec34d4fdbb200eae5 Mon Sep 17 00:00:00 2001 From: Devansh Srivastava Date: Thu, 12 Jun 2025 22:29:14 +0530 Subject: [PATCH 6/8] feat: signup and login pages with a TODO dashboard page --- README.md | 2 +- client/.gitignore | 24 + client/README.md | 54 + client/eslint.config.js | 28 + client/index.html | 13 + client/package-lock.json | 4314 ++++++++++++++++++++++++++++++ client/package.json | 35 + client/public/vite.svg | 1 + client/src/App.css | 42 + client/src/App.tsx | 71 + client/src/api/api.tsx | 26 + client/src/assets/react.svg | 1 + client/src/components/Home.tsx | 36 + client/src/components/Login.tsx | 103 + client/src/components/Navbar.tsx | 79 + client/src/components/Signup.tsx | 103 + client/src/index.css | 1 + client/src/main.tsx | 13 + client/src/vite-env.d.ts | 2 + client/tsconfig.app.json | 27 + client/tsconfig.json | 7 + client/tsconfig.node.json | 25 + client/vite.config.ts | 8 + server/index.ts | 9 +- server/middleware/jwt.ts | 18 +- server/models/user.ts | 10 +- server/routes/auth.ts | 8 +- 27 files changed, 5041 insertions(+), 19 deletions(-) create mode 100644 client/.gitignore create mode 100644 client/README.md create mode 100644 client/eslint.config.js create mode 100644 client/index.html create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/public/vite.svg create mode 100644 client/src/App.css create mode 100644 client/src/App.tsx create mode 100644 client/src/api/api.tsx create mode 100644 client/src/assets/react.svg create mode 100644 client/src/components/Home.tsx create mode 100644 client/src/components/Login.tsx create mode 100644 client/src/components/Navbar.tsx create mode 100644 client/src/components/Signup.tsx create mode 100644 client/src/index.css create mode 100644 client/src/main.tsx create mode 100644 client/src/vite-env.d.ts create mode 100644 client/tsconfig.app.json create mode 100644 client/tsconfig.json create mode 100644 client/tsconfig.node.json create mode 100644 client/vite.config.ts diff --git a/README.md b/README.md index 013eaf528..9f68ba0df 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # Personalized-learning-path-visualization -Project based on recommendation system +Project based on recommendation system using Lang Graph with gamified streaks diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/client/README.md b/client/README.md new file mode 100644 index 000000000..da9844432 --- /dev/null +++ b/client/README.md @@ -0,0 +1,54 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default tseslint.config({ + extends: [ + // Remove ...tseslint.configs.recommended and replace with this + ...tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + ...tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + ...tseslint.configs.stylisticTypeChecked, + ], + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default tseslint.config({ + plugins: { + // Add the react-x and react-dom plugins + 'react-x': reactX, + 'react-dom': reactDom, + }, + rules: { + // other rules... + // Enable its recommended typescript rules + ...reactX.configs['recommended-typescript'].rules, + ...reactDom.configs.recommended.rules, + }, +}) +``` diff --git a/client/eslint.config.js b/client/eslint.config.js new file mode 100644 index 000000000..092408a9f --- /dev/null +++ b/client/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/client/index.html b/client/index.html new file mode 100644 index 000000000..e4b78eae1 --- /dev/null +++ b/client/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 000000000..30aac3b5c --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,4314 @@ +{ + "name": "client", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "client", + "version": "0.0.0", + "dependencies": { + "@tailwindcss/vite": "^4.1.10", + "axios": "^1.9.0", + "jwt-decode": "^4.0.0", + "lucide-react": "^0.514.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-router-dom": "^7.6.2", + "tailwindcss": "^4.1.10" + }, + "devDependencies": { + "@eslint/js": "^9.25.0", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", + "@vitejs/plugin-react": "^4.4.1", + "eslint": "^9.25.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "typescript": "~5.8.3", + "typescript-eslint": "^8.30.1", + "vite": "^6.3.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.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.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "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" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "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" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz", + "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", + "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz", + "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", + "integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.0.tgz", + "integrity": "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "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", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "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" + } + }, + "node_modules/@jridgewell/set-array": { + "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" + } + }, + "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==", + "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/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.11", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.11.tgz", + "integrity": "sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.43.0.tgz", + "integrity": "sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.43.0.tgz", + "integrity": "sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.43.0.tgz", + "integrity": "sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.43.0.tgz", + "integrity": "sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.43.0.tgz", + "integrity": "sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.43.0.tgz", + "integrity": "sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.43.0.tgz", + "integrity": "sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.43.0.tgz", + "integrity": "sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.43.0.tgz", + "integrity": "sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.43.0.tgz", + "integrity": "sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.43.0.tgz", + "integrity": "sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.43.0.tgz", + "integrity": "sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.43.0.tgz", + "integrity": "sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.43.0.tgz", + "integrity": "sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.43.0.tgz", + "integrity": "sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.43.0.tgz", + "integrity": "sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.43.0.tgz", + "integrity": "sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.43.0.tgz", + "integrity": "sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.43.0.tgz", + "integrity": "sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.43.0.tgz", + "integrity": "sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.10.tgz", + "integrity": "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.10" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.10.tgz", + "integrity": "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.10", + "@tailwindcss/oxide-darwin-arm64": "4.1.10", + "@tailwindcss/oxide-darwin-x64": "4.1.10", + "@tailwindcss/oxide-freebsd-x64": "4.1.10", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.10", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.10", + "@tailwindcss/oxide-linux-x64-musl": "4.1.10", + "@tailwindcss/oxide-wasm32-wasi": "4.1.10", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.10" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.10.tgz", + "integrity": "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.10.tgz", + "integrity": "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.10.tgz", + "integrity": "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.10.tgz", + "integrity": "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.10.tgz", + "integrity": "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.10.tgz", + "integrity": "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.10.tgz", + "integrity": "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.10.tgz", + "integrity": "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.10.tgz", + "integrity": "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.10.tgz", + "integrity": "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.10", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.10.tgz", + "integrity": "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.10.tgz", + "integrity": "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.10.tgz", + "integrity": "sha512-QWnD5HDY2IADv+vYR82lOhqOlS1jSCUUAmfem52cXAhRTKxpDh3ARX8TTXJTCCO7Rv7cD2Nlekabv02bwP3a2A==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.10", + "@tailwindcss/oxide": "4.1.10", + "tailwindcss": "4.1.10" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "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, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz", + "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/type-utils": "8.34.0", + "@typescript-eslint/utils": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.34.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz", + "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/typescript-estree": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz", + "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.34.0", + "@typescript-eslint/types": "^8.34.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz", + "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz", + "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz", + "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.34.0", + "@typescript-eslint/utils": "8.34.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz", + "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz", + "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.34.0", + "@typescript-eslint/tsconfig-utils": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz", + "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/typescript-estree": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz", + "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.34.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.2.tgz", + "integrity": "sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.11", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "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" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "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", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "license": "Python-2.0" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001722", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", + "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "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, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=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/electron-to-chromium": { + "version": "1.5.166", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz", + "integrity": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "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/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz", + "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.14.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.28.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "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" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "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" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "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" + } + }, + "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" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "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, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "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/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "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/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "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/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", + "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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==", + "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, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "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" + } + }, + "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/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "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/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "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" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "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==", + "dev": true, + "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" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "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, + "license": "MIT" + }, + "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, + "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, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "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" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "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, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.514.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.514.0.tgz", + "integrity": "sha512-HXD0OAMd+JM2xCjlwG1EGW9Nuab64dhjO3+MvdyD+pSUeOTBaVAPhQblKIYmmX4RyBYbdzW0VWnJpjJmxWGr6w==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "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/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "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" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "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" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "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", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "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" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", + "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "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/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.2.tgz", + "integrity": "sha512-U7Nv3y+bMimgWjhlT5CRdzHPu2/KVmqPwKUCChW8en5P3znxUqwlYFlbmyj8Rgp1SF6zs5X4+77kBVknkg6a0w==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.2.tgz", + "integrity": "sha512-Q8zb6VlTbdYKK5JJBLQEN06oTUa/RAbG/oQS1auK1I0TbJOXktqm+QENEVJU6QvWynlXPRBXI3fiOQcSEA78rA==", + "license": "MIT", + "dependencies": { + "react-router": "7.6.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "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" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", + "integrity": "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.43.0", + "@rollup/rollup-android-arm64": "4.43.0", + "@rollup/rollup-darwin-arm64": "4.43.0", + "@rollup/rollup-darwin-x64": "4.43.0", + "@rollup/rollup-freebsd-arm64": "4.43.0", + "@rollup/rollup-freebsd-x64": "4.43.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.43.0", + "@rollup/rollup-linux-arm-musleabihf": "4.43.0", + "@rollup/rollup-linux-arm64-gnu": "4.43.0", + "@rollup/rollup-linux-arm64-musl": "4.43.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.43.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-musl": "4.43.0", + "@rollup/rollup-linux-s390x-gnu": "4.43.0", + "@rollup/rollup-linux-x64-gnu": "4.43.0", + "@rollup/rollup-linux-x64-musl": "4.43.0", + "@rollup/rollup-win32-arm64-msvc": "4.43.0", + "@rollup/rollup-win32-ia32-msvc": "4.43.0", + "@rollup/rollup-win32-x64-msvc": "4.43.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@types/estree": { + "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/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "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", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "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" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "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" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz", + "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/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" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.0.tgz", + "integrity": "sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", + "@typescript-eslint/utils": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/update-browserslist-db": { + "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": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "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/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/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" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "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" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 000000000..ab220277c --- /dev/null +++ b/client/package.json @@ -0,0 +1,35 @@ +{ + "name": "client", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@tailwindcss/vite": "^4.1.10", + "axios": "^1.9.0", + "jwt-decode": "^4.0.0", + "lucide-react": "^0.514.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-router-dom": "^7.6.2", + "tailwindcss": "^4.1.10" + }, + "devDependencies": { + "@eslint/js": "^9.25.0", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", + "@vitejs/plugin-react": "^4.4.1", + "eslint": "^9.25.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "typescript": "~5.8.3", + "typescript-eslint": "^8.30.1", + "vite": "^6.3.5" + } +} diff --git a/client/public/vite.svg b/client/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/client/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/src/App.css b/client/src/App.css new file mode 100644 index 000000000..b9d355df2 --- /dev/null +++ b/client/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/client/src/App.tsx b/client/src/App.tsx new file mode 100644 index 000000000..f5e503357 --- /dev/null +++ b/client/src/App.tsx @@ -0,0 +1,71 @@ +import { useState, useEffect } from 'react'; +import { Route, Routes, useNavigate } from 'react-router-dom'; +import { jwtDecode } from 'jwt-decode' +import Navbar from './components/Navbar'; +import Home from './components/Home'; +import Signup from './components/Signup'; +import Login from './components/Login'; +interface User { + username: string +} + +interface JWTPayload { + sub: string; + exp: number; +} + +function App() { + const [user, setUser] = useState(null); + const navigate = useNavigate(); + + const handleLogin = ({ username }: { username: string }) => { + setUser({ username }); + } + + const handleLogout = () => { + localStorage.removeItem('token'); + setUser(null); + navigate('/login'); + } + useEffect(() => { + document.title = 'Personal Learning Path'; + const token = localStorage.getItem('token'); + if (token) { + try { + const decodedToken = jwtDecode(token); + if (decodedToken.exp * 1000 < Date.now()) { + console.log('token is expired') + localStorage.removeItem('token'); + setUser(null); + navigate('/login'); + } else { + console.log('token is alive'); + setUser({ + username: decodedToken.sub, + }); + console.log(decodedToken.sub) + } + } catch (err) { + console.error(err); + localStorage.removeItem('token'); + setUser(null); + navigate('/login'); + } + } + }, [navigate]); + + return ( +
+ +
+ + } /> + } /> + } /> + +
+
+ ) +} + +export default App diff --git a/client/src/api/api.tsx b/client/src/api/api.tsx new file mode 100644 index 000000000..358a8856d --- /dev/null +++ b/client/src/api/api.tsx @@ -0,0 +1,26 @@ +import axios from "axios"; +const APP_URL = import.meta.env.VITE_API_URL || 'http://localhost:3000/api'; + +const api = axios.create({ + baseURL: APP_URL, + headers: { + 'Content-Type': 'application/json' + } +}) + + +api.interceptors.request.use((config) => { + const token = localStorage.getItem('token'); + if (token) { + config.headers['Authorization'] = `Bearer ${token}`; + } + return config; +}) + +export interface Credentials { + username: string, + password: string +}; +export const login = (credentials: Credentials) => api.post('/login', credentials); +export const signup = (credentials: Credentials) => api.post('/register', credentials); +export default api; diff --git a/client/src/assets/react.svg b/client/src/assets/react.svg new file mode 100644 index 000000000..6c87de9bb --- /dev/null +++ b/client/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/src/components/Home.tsx b/client/src/components/Home.tsx new file mode 100644 index 000000000..00f29eb65 --- /dev/null +++ b/client/src/components/Home.tsx @@ -0,0 +1,36 @@ +import { Globe, Lock, ShieldCheck } from 'lucide-react'; +import { Link } from 'react-router-dom'; + +const Home = () => { + + const logged = Boolean(localStorage.getItem('token')); + return ( +
+ + +
+ +
+

+ TODO +

+
+ + {/* */} + +
+
+
+ +
+

+ © 2025. +

+
+
+ ); +}; + +export default Home; diff --git a/client/src/components/Login.tsx b/client/src/components/Login.tsx new file mode 100644 index 000000000..f0c76fcf2 --- /dev/null +++ b/client/src/components/Login.tsx @@ -0,0 +1,103 @@ +import { useState, useEffect } from "react"; +import { useNavigate } from 'react-router-dom'; +import { login } from '../api/api'; +import type { Credentials as FormData } from '../api/api' + + +interface LoginProps { + onLogin: (user: { username: string }) => void; +} + +const Login = ({ onLogin }: LoginProps) => { + const [formData, setFormData] = useState({ username: "", password: "" }); + const [showPassword, setShowPassword] = useState(false); + const [status, setStatus] = useState(""); + const navigate = useNavigate(); + + const handleChange = (event: React.ChangeEvent) => { + setFormData({ ...formData, [event.target.name]: event.target.value }); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + try { + const response = await login(formData); + localStorage.setItem('token', response.data.access_token); + onLogin({ username: formData.username }); + navigate('/home'); + } catch (error) { + console.error(error); + setStatus("Login failed. Please check your credentials."); + } + }; + + useEffect(() => { + document.title = 'Login'; + }, []); + + return ( +
+ {status && ( +
+ {status} +
+ )} + +
+
+
Welcome back
+

Login to your account

+
+
+ + +
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ ); +}; + +export default Login; diff --git a/client/src/components/Navbar.tsx b/client/src/components/Navbar.tsx new file mode 100644 index 000000000..7b75bd8ed --- /dev/null +++ b/client/src/components/Navbar.tsx @@ -0,0 +1,79 @@ +import { Link } from 'react-router-dom'; +import { + Leaf, + LogOut, + User, + UserPlus, + LogIn, + ChartColumnIncreasing +} from 'lucide-react'; + +const Navbar = ({ user, onLogout }) => { + return ( + + ) +}; +export default Navbar; diff --git a/client/src/components/Signup.tsx b/client/src/components/Signup.tsx new file mode 100644 index 000000000..053c64e78 --- /dev/null +++ b/client/src/components/Signup.tsx @@ -0,0 +1,103 @@ +import { useState, useEffect } from "react"; +import { useNavigate } from 'react-router-dom'; +import { signup } from '../api/api'; +import type { Credentials as FormData } from '../api/api' + + +interface SignupProps { + onLogin: (user: { username: string }) => void; +} + +const Signup = ({ onLogin }: SignupProps) => { + const [formData, setFormData] = useState({ username: "", password: "" }); + const [showPassword, setShowPassword] = useState(false); + const [status, setStatus] = useState(""); + const navigate = useNavigate(); + + const handleChange = (event: React.ChangeEvent) => { + setFormData({ ...formData, [event.target.name]: event.target.value }); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + try { + const response = await signup(formData); + localStorage.setItem('token', response.data.access_token); + onLogin({ username: formData.username }); + navigate('/home'); + } catch (error) { + console.error(error); + setStatus("Signup failed. Please check your credentials."); + } + }; + + useEffect(() => { + document.title = 'Signup'; + }, []); + + return ( +
+ {status && ( +
+ {status} +
+ )} + +
+
+
Welcome back
+

Signup for an account

+
+
+ + +
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ ); +}; + +export default Signup; diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 000000000..f1d8c73cd --- /dev/null +++ b/client/src/index.css @@ -0,0 +1 @@ +@import "tailwindcss"; diff --git a/client/src/main.tsx b/client/src/main.tsx new file mode 100644 index 000000000..7603c2885 --- /dev/null +++ b/client/src/main.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import { BrowserRouter } from 'react-router-dom' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + + + , +) diff --git a/client/src/vite-env.d.ts b/client/src/vite-env.d.ts new file mode 100644 index 000000000..a08026d9c --- /dev/null +++ b/client/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/client/tsconfig.app.json b/client/tsconfig.app.json new file mode 100644 index 000000000..c9ccbd4c5 --- /dev/null +++ b/client/tsconfig.app.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 000000000..1ffef600d --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/client/tsconfig.node.json b/client/tsconfig.node.json new file mode 100644 index 000000000..9728af2d8 --- /dev/null +++ b/client/tsconfig.node.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/client/vite.config.ts b/client/vite.config.ts new file mode 100644 index 000000000..dd54e7f65 --- /dev/null +++ b/client/vite.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [tailwindcss(), react()], +}) diff --git a/server/index.ts b/server/index.ts index f2912c7b1..65d8c851c 100644 --- a/server/index.ts +++ b/server/index.ts @@ -13,7 +13,7 @@ app.use(helmet({ app.use(cors({ origin: '*', methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], - allowedHeaders: ['Authorization'] + allowedHeaders: ['Authorization', 'Content-Type'] })) app.use(express.json()) @@ -32,13 +32,14 @@ app.get('/', (req: Request, res: Response) => { app.use('/api', authRouter) app.use(errorHandler) +app.use((req: Request, res: Response) => { + res.status(404).json({ error: '404 Route not found' }); +}) + const server = app.listen(PORT, () => { console.log(`Server is running over port: ${PORT} in ${env}`); }) -app.use((req: Request, res: Response) => { - res.status(404).json({ error: '404 Route not found' }); -}) function gracefulShutdown() { console.log('Received kill signal, closing gracefully'); diff --git a/server/middleware/jwt.ts b/server/middleware/jwt.ts index 55eda76ef..14e015709 100644 --- a/server/middleware/jwt.ts +++ b/server/middleware/jwt.ts @@ -3,13 +3,16 @@ import 'dotenv/config' import jwt from 'jsonwebtoken'; const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key'; -const JWT_EXPIRY = 1; -export interface JWTPayload extends Request { +const JWT_EXPIRY = '1h'; +export interface JWTPayload { id: string; username: string; + sub: string; } - -export function jwtMiddleware(req: JWTPayload, res: Response, next: NextFunction) { +interface AuthenticatedRequest extends Request { + user?: JWTPayload; +}; +export function jwtMiddleware(req: AuthenticatedRequest, res: Response, next: NextFunction) { const authHeader = req.header('Authorization'); if (!authHeader) { res.status(401).json({ message: 'Authorization header missing' }) @@ -21,13 +24,14 @@ export function jwtMiddleware(req: JWTPayload, res: Response, next: NextFunction return; } try { - const decoded = jwt.verify(token, JWT_SECRET); + const decoded = jwt.verify(token, JWT_SECRET) as JWTPayload; + req.user = decoded; next(); } catch (err) { res.status(403).json({ message: 'Invalid or expired token' }); return; } } -export function tokenGeneration(payload: Object) { - return jwt.sign(payload, JWT_SECRET, { expiresIn: JWT_EXPIRY }) +export function tokenGeneration(payload: { id: string, username: string }) { + return jwt.sign({ id: payload.id, username: payload.username, sub: payload.username }, JWT_SECRET, { expiresIn: JWT_EXPIRY }) } diff --git a/server/models/user.ts b/server/models/user.ts index 8567bc814..bfddabaa4 100644 --- a/server/models/user.ts +++ b/server/models/user.ts @@ -1,7 +1,11 @@ -import mongoose from 'mongoose'; +import mongoose, { Document } from 'mongoose'; +interface IUser extends Document { + username: string; + password: string; +}; -const userSchema = new mongoose.Schema({ - username: { type: String, required: true }, +const userSchema = new mongoose.Schema({ + username: { type: String, required: true, unique: true }, password: { type: String, required: true } }) diff --git a/server/routes/auth.ts b/server/routes/auth.ts index c79eca7c2..45b4a78cd 100644 --- a/server/routes/auth.ts +++ b/server/routes/auth.ts @@ -20,10 +20,10 @@ authRouter.post('/register', async (req: Request, res: Response) => { username: username, password: hashedPassword }); - const token = tokenGeneration({ id: newUser._id, username: newUser.username }); + const token = tokenGeneration({ id: newUser._id as string, username: newUser.username }); res.status(201).json({ message: `${username} registered successfully`, - token, + access_token: token, }); return; }) @@ -46,10 +46,10 @@ authRouter.post('/login', async (req: Request, res: Response) => { }) return; } - const token = tokenGeneration({ id: user._id, username: user.username }) + const token = tokenGeneration({ id: user._id as string, username: user.username }) res.status(200).json({ message: 'Login Successful', - token + access_token: token }); return; }) From a6c178084b49d62336eb5192e7fc90bbe3946111 Mon Sep 17 00:00:00 2001 From: Devansh Srivastava <102247720+devansh-srv@users.noreply.github.com> Date: Mon, 9 Jun 2025 16:37:37 +0530 Subject: [PATCH 7/8] Update node.js.yml --- .github/workflows/node.js.yml | 3 ++- server/package-lock.json | 17 ++++++++++++++++- server/package.json | 4 +++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index ea217435e..d256269d4 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -26,9 +26,10 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' + cache-dependency-path: server/package-lock.json - name: Install dependencies run: npm ci working-directory: server - name: Build Typescript - run: npx tsc + run: npm run build working-directory: server diff --git a/server/package-lock.json b/server/package-lock.json index 5d5935a8d..7bfebc7e1 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -25,7 +25,8 @@ "@types/helmet": "^0.0.48", "@types/jsonwebtoken": "^9.0.9", "@types/mongoose": "^5.11.96", - "@types/node": "^22.15.30" + "@types/node": "^22.15.30", + "typescript": "^5.8.3" } }, "node_modules/@mongodb-js/saslprep": { @@ -1344,6 +1345,20 @@ "node": ">= 0.6" } }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", diff --git a/server/package.json b/server/package.json index 6d81650c4..b033089c4 100644 --- a/server/package.json +++ b/server/package.json @@ -4,6 +4,7 @@ "description": "", "main": "index.js", "scripts": { + "build": "tsc", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], @@ -27,6 +28,7 @@ "@types/helmet": "^0.0.48", "@types/jsonwebtoken": "^9.0.9", "@types/mongoose": "^5.11.96", - "@types/node": "^22.15.30" + "@types/node": "^22.15.30", + "typescript": "^5.8.3" } } From d248338fb4861b552c65e4d4b8e1d9b6e264c0c6 Mon Sep 17 00:00:00 2001 From: Devansh Srivastava Date: Thu, 12 Jun 2025 22:29:14 +0530 Subject: [PATCH 8/8] feat: signup and login pages with a TODO dashboard page --- CONTRIBUTING.md | 11 - LICENSE | 21 - README.md | 2 +- Unconfirmed 16035.crdownload | 18 - Unconfirmed 518044.crdownload | 90 - Unconfirmed 558829.crdownload | 18 - cg_visualization.py | 56 - {project-alpha/frontend => client}/.gitignore | 0 {project-alpha/frontend => client}/README.md | 0 .../frontend => client}/eslint.config.js | 0 {project-alpha/frontend => client}/index.html | 0 .../frontend => client}/package-lock.json | 883 +- .../frontend => client}/package.json | 8 +- .../frontend => client}/public/vite.svg | 0 .../frontend => client}/src/App.css | 0 client/src/App.tsx | 71 + client/src/api/api.tsx | 26 + .../frontend => client}/src/assets/react.svg | 0 client/src/components/Home.tsx | 36 + client/src/components/Login.tsx | 103 + client/src/components/Navbar.tsx | 79 + client/src/components/Signup.tsx | 103 + client/src/index.css | 1 + .../frontend => client}/src/main.tsx | 5 +- client/src/vite-env.d.ts | 2 + .../frontend => client}/tsconfig.app.json | 0 .../frontend => client}/tsconfig.json | 0 .../frontend => client}/tsconfig.node.json | 0 .../frontend => client}/vite.config.ts | 3 +- concept-graph.py | 64 - concept_graph.html | 127 - concept_graph.json | 14 - concept_graph_full.json | 338 - fetch_lectures.py | 44 - index.html | 46 - learner_profiles.json | 12 - lecture_prerequisites_graph (1).png | Bin 382219 -> 0 bytes lecture_slides_code.html | 2695 --- lecture_titles.json | 14 - lecture_titles.txt | 12 - lectures.json | 8 - package-lock.json | 1224 -- package.json | 20 - project-alpha/.gitignore | 4 - project-alpha/LICENSE | 21 - project-alpha/README.md | 99 - project-alpha/backend/package-lock.json | 2066 -- project-alpha/backend/package.json | 29 - project-alpha/backend/src/index.ts | 20 - project-alpha/backend/src/models/Prereq.ts | 8 - .../backend/src/routes/prerequisites.ts | 19 - .../backend/src/services/prereqGenerator.ts | 40 - project-alpha/backend/tsconfig.json | 11 - project-alpha/frontend/src/App.tsx | 124 - .../frontend/src/components/Graph.tsx | 103 - .../frontend/src/components/PrereqList.tsx | 16 - project-alpha/frontend/src/index.css | 68 - project-alpha/frontend/src/vite-env.d.ts | 1 - project-beta/.gitignore | 13 - .../Documentation/Activity_Diagram.png | Bin 45143 -> 0 bytes project-beta/Documentation/README.md | 1 - .../Documentation/Sequence_Diagram.png | Bin 85109 -> 0 bytes .../Documentation/Use_Case_Diagram.png | Bin 61843 -> 0 bytes project-beta/README.md | 88 - project-beta/backend/package-lock.json | 1954 -- project-beta/backend/package.json | 30 - project-beta/backend/src/conceptGraph.json | 993 - project-beta/backend/src/index.ts | 20 - project-beta/backend/src/models/Assessment.ts | 39 - .../backend/src/models/UserResponse.ts | 21 - project-beta/backend/src/routes/assessment.ts | 117 - project-beta/backend/src/routes/response.ts | 88 - .../backend/src/services/apiService.ts | 65 - .../backend/src/services/prereqService.ts | 32 - .../backend/src/services/promptService.ts | 42 - project-beta/backend/src/types/global.d.ts | 5 - project-beta/backend/tsconfig.json | 15 - project-beta/frontend/README.md | 46 - project-beta/frontend/package-lock.json | 17618 ---------------- project-beta/frontend/package.json | 45 - project-beta/frontend/public/favicon.ico | Bin 3870 -> 0 bytes project-beta/frontend/public/index.html | 43 - project-beta/frontend/public/logo192.png | Bin 5347 -> 0 bytes project-beta/frontend/public/logo512.png | Bin 9664 -> 0 bytes project-beta/frontend/public/manifest.json | 25 - project-beta/frontend/public/robots.txt | 3 - project-beta/frontend/src/App.css | 38 - project-beta/frontend/src/App.test.tsx | 9 - project-beta/frontend/src/App.tsx | 40 - .../src/components/AssessmentForm.tsx | 221 - project-beta/frontend/src/index.css | 13 - project-beta/frontend/src/index.tsx | 19 - project-beta/frontend/src/logo.svg | 1 - project-beta/frontend/src/react-app-env.d.ts | 1 - project-beta/frontend/src/reportWebVitals.ts | 15 - project-beta/frontend/src/setupTests.ts | 5 - project-beta/frontend/tsconfig.json | 26 - project-gamma/.bolt/config.json | 3 - project-gamma/.bolt/prompt | 5 - project-gamma/.gitignore | 25 - project-gamma/eslint.config.js | 28 - .../graph/.github/pull_request_template.md | 15 - project-gamma/graph/.gitignore | 5 - project-gamma/graph/.gitkeep | 0 project-gamma/graph/CONTRIBUTING.md | 11 - project-gamma/graph/LICENSE | 21 - project-gamma/graph/README.md | 35 - .../graph/Unconfirmed 16035.crdownload | 18 - .../graph/Unconfirmed 518044.crdownload | 90 - .../graph/Unconfirmed 558829.crdownload | 18 - project-gamma/graph/cg_visualization.py | 56 - project-gamma/graph/client/.gitkeep | 0 project-gamma/graph/concept-graph.py | 64 - project-gamma/graph/concept_graph.html | 127 - project-gamma/graph/concept_graph.json | 14 - project-gamma/graph/concept_graph_full.json | 338 - project-gamma/graph/data/concept-graph.py | 64 - .../graph/data/learner_profiles.json | 12 - project-gamma/graph/docs/.gitkeep | 0 project-gamma/graph/docs/README.md | 1 - project-gamma/graph/fetch_lectures.py | 44 - project-gamma/graph/frontend/index.html | 46 - project-gamma/graph/graph/.gitkeep | 0 .../graph/graph/concept_graph_full.json | 338 - .../graph/graph/learner_profiles.json | 12 - .../graph/graph/recommendation_engine.py | 50 - .../recommendations/recommendations_L001.json | 6 - .../recommendations/recommendations_L002.json | 6 - project-gamma/graph/learner_profiles.json | 12 - .../graph/lecture_prerequisites_graph (1).png | Bin 382219 -> 0 bytes project-gamma/graph/lecture_slides_code.html | 2695 --- project-gamma/graph/lecture_titles.json | 14 - project-gamma/graph/lecture_titles.txt | 12 - project-gamma/graph/lectures.json | 8 - project-gamma/graph/package-lock.json | 1224 -- project-gamma/graph/package.json | 20 - project-gamma/graph/recommendation_engine.py | 50 - project-gamma/graph/recommendations.json | 10 - .../recommendations/recommendations_L001.json | 6 - .../recommendations/recommendations_L002.json | 6 - project-gamma/graph/scraper/.gitkeep | 0 project-gamma/graph/server.js | 14 - project-gamma/graph/server/.gitkeep | 0 project-gamma/index.html | 13 - project-gamma/package-lock.json | 4051 ---- project-gamma/package.json | 33 - project-gamma/postcss.config.js | 6 - project-gamma/src/App.tsx | 1151 - project-gamma/src/components/Dashboard.tsx | 284 - project-gamma/src/components/ExamPage.tsx | 330 - project-gamma/src/components/KnownTopics.tsx | 98 - .../src/components/ProgressChart.tsx | 70 - .../src/components/RecommendedTopics.tsx | 97 - project-gamma/src/components/TopicCard.tsx | 139 - .../src/components/TopicLearning.tsx | 312 - project-gamma/src/components/UserProfile.tsx | 69 - project-gamma/src/data/mockData.ts | 218 - project-gamma/src/index.css | 3 - project-gamma/src/main.tsx | 10 - project-gamma/src/pages/Contact.tsx | 242 - project-gamma/src/pages/HelpCenter.tsx | 146 - project-gamma/src/pages/PrivacyPolicy.tsx | 199 - project-gamma/src/pages/TermsOfService.tsx | 181 - project-gamma/src/types.ts | 82 - project-gamma/src/vite-env.d.ts | 1 - project-gamma/tailwind.config.js | 8 - project-gamma/tsconfig.app.json | 24 - project-gamma/tsconfig.json | 7 - project-gamma/tsconfig.node.json | 22 - project-gamma/vite.config.ts | 10 - project-lambda/README.md | 47 - project-lambda/error-generation.ipynb | 391 - project-lambda/gsm8_concepts_retry.py | 69 - project-lambda/gsm8k_concept.py | 58 - project-lambda/gsm8k_prerequisite.py | 70 - project-lambda/gsm8k_unique_concepts.csv | 219 - recommendation_engine.py | 60 - recommendations.json | 10 - recommendations_L001.json | 6 - recommendations_L002.json | 6 - server.js | 14 - server/index.ts | 9 +- server/middleware/jwt.ts | 18 +- server/models/user.ts | 10 +- server/routes/auth.ts | 8 +- team-nishita-dashboard/.gitkeep | 1 - team-nishita-dashboard/README.md | 1 - 187 files changed, 1172 insertions(+), 43628 deletions(-) delete mode 100644 CONTRIBUTING.md delete mode 100644 LICENSE delete mode 100644 Unconfirmed 16035.crdownload delete mode 100644 Unconfirmed 518044.crdownload delete mode 100644 Unconfirmed 558829.crdownload delete mode 100644 cg_visualization.py rename {project-alpha/frontend => client}/.gitignore (100%) rename {project-alpha/frontend => client}/README.md (100%) rename {project-alpha/frontend => client}/eslint.config.js (100%) rename {project-alpha/frontend => client}/index.html (100%) rename {project-alpha/frontend => client}/package-lock.json (84%) rename {project-alpha/frontend => client}/package.json (79%) rename {project-alpha/frontend => client}/public/vite.svg (100%) rename {project-alpha/frontend => client}/src/App.css (100%) create mode 100644 client/src/App.tsx create mode 100644 client/src/api/api.tsx rename {project-alpha/frontend => client}/src/assets/react.svg (100%) create mode 100644 client/src/components/Home.tsx create mode 100644 client/src/components/Login.tsx create mode 100644 client/src/components/Navbar.tsx create mode 100644 client/src/components/Signup.tsx create mode 100644 client/src/index.css rename {project-alpha/frontend => client}/src/main.tsx (67%) create mode 100644 client/src/vite-env.d.ts rename {project-alpha/frontend => client}/tsconfig.app.json (100%) rename {project-alpha/frontend => client}/tsconfig.json (100%) rename {project-alpha/frontend => client}/tsconfig.node.json (100%) rename {project-alpha/frontend => client}/vite.config.ts (63%) delete mode 100644 concept-graph.py delete mode 100644 concept_graph.html delete mode 100644 concept_graph.json delete mode 100644 concept_graph_full.json delete mode 100644 fetch_lectures.py delete mode 100644 index.html delete mode 100644 learner_profiles.json delete mode 100644 lecture_prerequisites_graph (1).png delete mode 100644 lecture_slides_code.html delete mode 100644 lecture_titles.json delete mode 100644 lecture_titles.txt delete mode 100644 lectures.json delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 project-alpha/.gitignore delete mode 100644 project-alpha/LICENSE delete mode 100644 project-alpha/README.md delete mode 100644 project-alpha/backend/package-lock.json delete mode 100644 project-alpha/backend/package.json delete mode 100644 project-alpha/backend/src/index.ts delete mode 100644 project-alpha/backend/src/models/Prereq.ts delete mode 100644 project-alpha/backend/src/routes/prerequisites.ts delete mode 100644 project-alpha/backend/src/services/prereqGenerator.ts delete mode 100644 project-alpha/backend/tsconfig.json delete mode 100644 project-alpha/frontend/src/App.tsx delete mode 100644 project-alpha/frontend/src/components/Graph.tsx delete mode 100644 project-alpha/frontend/src/components/PrereqList.tsx delete mode 100644 project-alpha/frontend/src/index.css delete mode 100644 project-alpha/frontend/src/vite-env.d.ts delete mode 100644 project-beta/.gitignore delete mode 100644 project-beta/Documentation/Activity_Diagram.png delete mode 100644 project-beta/Documentation/README.md delete mode 100644 project-beta/Documentation/Sequence_Diagram.png delete mode 100644 project-beta/Documentation/Use_Case_Diagram.png delete mode 100644 project-beta/README.md delete mode 100644 project-beta/backend/package-lock.json delete mode 100644 project-beta/backend/package.json delete mode 100644 project-beta/backend/src/conceptGraph.json delete mode 100644 project-beta/backend/src/index.ts delete mode 100644 project-beta/backend/src/models/Assessment.ts delete mode 100644 project-beta/backend/src/models/UserResponse.ts delete mode 100644 project-beta/backend/src/routes/assessment.ts delete mode 100644 project-beta/backend/src/routes/response.ts delete mode 100644 project-beta/backend/src/services/apiService.ts delete mode 100644 project-beta/backend/src/services/prereqService.ts delete mode 100644 project-beta/backend/src/services/promptService.ts delete mode 100644 project-beta/backend/src/types/global.d.ts delete mode 100644 project-beta/backend/tsconfig.json delete mode 100644 project-beta/frontend/README.md delete mode 100644 project-beta/frontend/package-lock.json delete mode 100644 project-beta/frontend/package.json delete mode 100644 project-beta/frontend/public/favicon.ico delete mode 100644 project-beta/frontend/public/index.html delete mode 100644 project-beta/frontend/public/logo192.png delete mode 100644 project-beta/frontend/public/logo512.png delete mode 100644 project-beta/frontend/public/manifest.json delete mode 100644 project-beta/frontend/public/robots.txt delete mode 100644 project-beta/frontend/src/App.css delete mode 100644 project-beta/frontend/src/App.test.tsx delete mode 100644 project-beta/frontend/src/App.tsx delete mode 100644 project-beta/frontend/src/components/AssessmentForm.tsx delete mode 100644 project-beta/frontend/src/index.css delete mode 100644 project-beta/frontend/src/index.tsx delete mode 100644 project-beta/frontend/src/logo.svg delete mode 100644 project-beta/frontend/src/react-app-env.d.ts delete mode 100644 project-beta/frontend/src/reportWebVitals.ts delete mode 100644 project-beta/frontend/src/setupTests.ts delete mode 100644 project-beta/frontend/tsconfig.json delete mode 100644 project-gamma/.bolt/config.json delete mode 100644 project-gamma/.bolt/prompt delete mode 100644 project-gamma/.gitignore delete mode 100644 project-gamma/eslint.config.js delete mode 100644 project-gamma/graph/.github/pull_request_template.md delete mode 100644 project-gamma/graph/.gitignore delete mode 100644 project-gamma/graph/.gitkeep delete mode 100644 project-gamma/graph/CONTRIBUTING.md delete mode 100644 project-gamma/graph/LICENSE delete mode 100644 project-gamma/graph/README.md delete mode 100644 project-gamma/graph/Unconfirmed 16035.crdownload delete mode 100644 project-gamma/graph/Unconfirmed 518044.crdownload delete mode 100644 project-gamma/graph/Unconfirmed 558829.crdownload delete mode 100644 project-gamma/graph/cg_visualization.py delete mode 100644 project-gamma/graph/client/.gitkeep delete mode 100644 project-gamma/graph/concept-graph.py delete mode 100644 project-gamma/graph/concept_graph.html delete mode 100644 project-gamma/graph/concept_graph.json delete mode 100644 project-gamma/graph/concept_graph_full.json delete mode 100644 project-gamma/graph/data/concept-graph.py delete mode 100644 project-gamma/graph/data/learner_profiles.json delete mode 100644 project-gamma/graph/docs/.gitkeep delete mode 100644 project-gamma/graph/docs/README.md delete mode 100644 project-gamma/graph/fetch_lectures.py delete mode 100644 project-gamma/graph/frontend/index.html delete mode 100644 project-gamma/graph/graph/.gitkeep delete mode 100644 project-gamma/graph/graph/concept_graph_full.json delete mode 100644 project-gamma/graph/graph/learner_profiles.json delete mode 100644 project-gamma/graph/graph/recommendation_engine.py delete mode 100644 project-gamma/graph/graph/recommendations/recommendations_L001.json delete mode 100644 project-gamma/graph/graph/recommendations/recommendations_L002.json delete mode 100644 project-gamma/graph/learner_profiles.json delete mode 100644 project-gamma/graph/lecture_prerequisites_graph (1).png delete mode 100644 project-gamma/graph/lecture_slides_code.html delete mode 100644 project-gamma/graph/lecture_titles.json delete mode 100644 project-gamma/graph/lecture_titles.txt delete mode 100644 project-gamma/graph/lectures.json delete mode 100644 project-gamma/graph/package-lock.json delete mode 100644 project-gamma/graph/package.json delete mode 100644 project-gamma/graph/recommendation_engine.py delete mode 100644 project-gamma/graph/recommendations.json delete mode 100644 project-gamma/graph/recommendations/recommendations_L001.json delete mode 100644 project-gamma/graph/recommendations/recommendations_L002.json delete mode 100644 project-gamma/graph/scraper/.gitkeep delete mode 100644 project-gamma/graph/server.js delete mode 100644 project-gamma/graph/server/.gitkeep delete mode 100644 project-gamma/index.html delete mode 100644 project-gamma/package-lock.json delete mode 100644 project-gamma/package.json delete mode 100644 project-gamma/postcss.config.js delete mode 100644 project-gamma/src/App.tsx delete mode 100644 project-gamma/src/components/Dashboard.tsx delete mode 100644 project-gamma/src/components/ExamPage.tsx delete mode 100644 project-gamma/src/components/KnownTopics.tsx delete mode 100644 project-gamma/src/components/ProgressChart.tsx delete mode 100644 project-gamma/src/components/RecommendedTopics.tsx delete mode 100644 project-gamma/src/components/TopicCard.tsx delete mode 100644 project-gamma/src/components/TopicLearning.tsx delete mode 100644 project-gamma/src/components/UserProfile.tsx delete mode 100644 project-gamma/src/data/mockData.ts delete mode 100644 project-gamma/src/index.css delete mode 100644 project-gamma/src/main.tsx delete mode 100644 project-gamma/src/pages/Contact.tsx delete mode 100644 project-gamma/src/pages/HelpCenter.tsx delete mode 100644 project-gamma/src/pages/PrivacyPolicy.tsx delete mode 100644 project-gamma/src/pages/TermsOfService.tsx delete mode 100644 project-gamma/src/types.ts delete mode 100644 project-gamma/src/vite-env.d.ts delete mode 100644 project-gamma/tailwind.config.js delete mode 100644 project-gamma/tsconfig.app.json delete mode 100644 project-gamma/tsconfig.json delete mode 100644 project-gamma/tsconfig.node.json delete mode 100644 project-gamma/vite.config.ts delete mode 100644 project-lambda/README.md delete mode 100644 project-lambda/error-generation.ipynb delete mode 100644 project-lambda/gsm8_concepts_retry.py delete mode 100644 project-lambda/gsm8k_concept.py delete mode 100644 project-lambda/gsm8k_prerequisite.py delete mode 100644 project-lambda/gsm8k_unique_concepts.csv delete mode 100644 recommendation_engine.py delete mode 100644 recommendations.json delete mode 100644 recommendations_L001.json delete mode 100644 recommendations_L002.json delete mode 100644 server.js delete mode 100644 team-nishita-dashboard/.gitkeep delete mode 100644 team-nishita-dashboard/README.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 9053f7386..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,11 +0,0 @@ -# Contributing to Personalized Learning Path - -Thanks for considering contributing! Please follow these steps: - -1. Fork the repository. -2. Create your feature branch: `git checkout -b feature/your-feature-name`. -3. Commit your changes: `git commit -m "Add some feature"`. -4. Push to the branch: `git push origin feature/your-feature-name`. -5. Open a Pull Request on GitHub and describe your changes clearly. - -Please ensure your code follows existing style and you add meaningful commit messages. diff --git a/LICENSE b/LICENSE deleted file mode 100644 index ca1191330..000000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 bhavitha9052004 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 013eaf528..9f68ba0df 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # Personalized-learning-path-visualization -Project based on recommendation system +Project based on recommendation system using Lang Graph with gamified streaks diff --git a/Unconfirmed 16035.crdownload b/Unconfirmed 16035.crdownload deleted file mode 100644 index 86f5401b0..000000000 --- a/Unconfirmed 16035.crdownload +++ /dev/null @@ -1,18 +0,0 @@ -import requests -import time -#from fake_useragent import UserAgent -from bs4 import BeautifulSoup -from bs4.element import Tag -import networkx as nx -import matplotlib.pyplot as plt - -url = "https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/lecture-slides-code/" - -session = requests.Session() -# Use a fake user agent to avoid being blocked by the server -time.sleep(2) # Sleep to avoid overwhelming the server -r = session.get(url) - -with open("lecture_slides_code.html", "w", encoding='utf-8') as f: - f.write(r.text) -print("HTML content retrieved and saved to lecture_slides_code.html") diff --git a/Unconfirmed 518044.crdownload b/Unconfirmed 518044.crdownload deleted file mode 100644 index af520ed4f..000000000 --- a/Unconfirmed 518044.crdownload +++ /dev/null @@ -1,90 +0,0 @@ -from bs4 import BeautifulSoup -from bs4.element import Tag -import networkx as nx -import matplotlib.pyplot as plt - - -with open("lecture_slides_code.html", "r", encoding='utf-8') as f: - html_content = f.read() -soup = BeautifulSoup(html_content, 'html.parser') - -rows = soup.find_all("tr") - -# Extract lecture titles -lecture_titles = [] - - -for row in rows: - if isinstance(row, Tag): - cols = row.find_all("td") - if len(cols) >= 2: - title = cols[1].get_text(strip=True) - if title: # Only consider non-empty titles - lecture_titles.append(title) - -# Save the lecture titles to a text file -with open("lecture_titles.txt", "w", encoding='utf-8') as f: - for title in lecture_titles: - f.write(title + "\n") - -print(f"Extracted {len(lecture_titles)} lecture titles and saved to lecture_titles.txt") - - -''' -G = nx.DiGraph() - -# Added nodes and linear edges -for i in range(len(lecture_titles)): - G.add_node(lecture_titles[i]) - if i > 0: - G.add_edge(lecture_titles[i - 1], lecture_titles[i]) - -# TO visualize the graph -plt.figure(figsize=(16, 8)) -pos = nx.spring_layout(G, k=0.8, seed=42) -nx.draw(G, pos, with_labels=True, node_color='lightgreen', edge_color='gray',node_size=5000, font_size=4, font_weight='bold', arrows=True) - -plt.title("MIT 6.0001 Lecture Prerequisite Graph", fontsize=12) -plt.axis('off') -plt.tight_layout() -plt.show() -''' - -G = nx.DiGraph() - -# Added nodes and linear edges -for i in range(len(lecture_titles)): - G.add_node(lecture_titles[i]) - if i > 0: - G.add_edge(lecture_titles[i - 1], lecture_titles[i]) - -# TO visualize the graph -plt.figure(figsize=(20, 12)) # Increased figure size - -# Create a hierarchical layout with more vertical spacing -pos = nx.kamada_kawai_layout(G) -pos_dict = {} -import random -for i, node in enumerate(G.nodes()): - x, y = pos[node] - pos_dict[node] = (x, y + i * 0.1) # Add increasing vertical displacement - -# Draw with adjusted parameters -nx.draw(G, pos_dict, - with_labels=True, - node_color='lightgreen', - edge_color='gray', - node_size=2000, - font_size=8, # Increased font size - font_weight='bold', - arrows=True, - width=2, # Thicker edges - arrowsize=10, # Larger arrows - node_shape='o', # Circular nodes - alpha=0.9) # Slight transparency - -plt.title("MIT 6.0001 Lecture Prerequisite Graph", fontsize=14, pad=20) -plt.axis('off') -plt.margins(0.2) # Add margins around the graph -plt.tight_layout() -plt.show() \ No newline at end of file diff --git a/Unconfirmed 558829.crdownload b/Unconfirmed 558829.crdownload deleted file mode 100644 index 86f5401b0..000000000 --- a/Unconfirmed 558829.crdownload +++ /dev/null @@ -1,18 +0,0 @@ -import requests -import time -#from fake_useragent import UserAgent -from bs4 import BeautifulSoup -from bs4.element import Tag -import networkx as nx -import matplotlib.pyplot as plt - -url = "https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/lecture-slides-code/" - -session = requests.Session() -# Use a fake user agent to avoid being blocked by the server -time.sleep(2) # Sleep to avoid overwhelming the server -r = session.get(url) - -with open("lecture_slides_code.html", "w", encoding='utf-8') as f: - f.write(r.text) -print("HTML content retrieved and saved to lecture_slides_code.html") diff --git a/cg_visualization.py b/cg_visualization.py deleted file mode 100644 index 45d2c88d3..000000000 --- a/cg_visualization.py +++ /dev/null @@ -1,56 +0,0 @@ -from pyvis.network import Network -import networkx as nx -import json -from networkx.readwrite import json_graph - -with open("concept_graph_full.json", "r", encoding="utf-8") as f: - data = json.load(f) -G_loaded = json_graph.node_link_graph(data) - -# Created a pyvis network -net = Network( - height="800px", - width="100%", - bgcolor="#ffffff", - font_color=True, - directed=True -) - -# Converted from networkx -net.from_nx(G_loaded) -#node properties -for node in net.nodes: - node["size"] = 20 - node["color"] = "#97C2FC" - node["borderWidth"] = 2 - node["borderColor"] = "#2B7CE9" - node["font"] = {"size": 12} - -# edge properties -for edge in net.edges: - edge["color"] = "#848484" - edge["smooth"] = {"type": "continuous"} - edge["arrows"] = "to" - edge["arrows"] = {"to": {"enabled": True, "scaleFactor": 0.5}} - -# Configure dynamics -net.set_options(""" - var options = { - "physics": { - "enabled": true, - "stabilization": {"iterations": 100}, - "barnesHut": { - "gravitationalConstant": -2000, - "springConstant": 0.04, - "springLength": 95 - } - } - } -""") - -# Saved the graph -try: - net.write_html("concept_graph.html") - print("Graph has been saved as 'concept_graph.html'. Please open it in a web browser to view.") -except Exception as e: - print(f"Error saving graph: {str(e)}") diff --git a/project-alpha/frontend/.gitignore b/client/.gitignore similarity index 100% rename from project-alpha/frontend/.gitignore rename to client/.gitignore diff --git a/project-alpha/frontend/README.md b/client/README.md similarity index 100% rename from project-alpha/frontend/README.md rename to client/README.md diff --git a/project-alpha/frontend/eslint.config.js b/client/eslint.config.js similarity index 100% rename from project-alpha/frontend/eslint.config.js rename to client/eslint.config.js diff --git a/project-alpha/frontend/index.html b/client/index.html similarity index 100% rename from project-alpha/frontend/index.html rename to client/index.html diff --git a/project-alpha/frontend/package-lock.json b/client/package-lock.json similarity index 84% rename from project-alpha/frontend/package-lock.json rename to client/package-lock.json index 36741eab5..30aac3b5c 100644 --- a/project-alpha/frontend/package-lock.json +++ b/client/package-lock.json @@ -1,17 +1,21 @@ { - "name": "frontend", + "name": "client", "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "frontend", + "name": "client", "version": "0.0.0", "dependencies": { + "@tailwindcss/vite": "^4.1.10", "axios": "^1.9.0", + "jwt-decode": "^4.0.0", + "lucide-react": "^0.514.0", "react": "^19.1.0", "react-dom": "^19.1.0", - "vis-network": "^9.1.12" + "react-router-dom": "^7.6.2", + "tailwindcss": "^4.1.10" }, "devDependencies": { "@eslint/js": "^9.25.0", @@ -31,7 +35,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -323,19 +326,6 @@ "node": ">=6.9.0" } }, - "node_modules/@egjs/hammerjs": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", - "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/hammerjs": "^2.0.36" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", @@ -343,7 +333,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -360,7 +349,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -377,7 +365,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -394,7 +381,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -411,7 +397,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -428,7 +413,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -445,7 +429,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -462,7 +445,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -479,7 +461,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -496,7 +477,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -513,7 +493,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -530,7 +509,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -547,7 +525,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -564,7 +541,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -581,7 +557,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -598,7 +573,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -615,7 +589,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -632,7 +605,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -649,7 +621,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -666,7 +637,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -683,7 +653,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -700,7 +669,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -717,7 +685,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -734,7 +701,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -751,7 +717,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -994,11 +959,22 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -1013,7 +989,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1023,7 +998,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1033,14 +1007,12 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "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==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1099,7 +1071,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1113,7 +1084,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1127,7 +1097,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1141,7 +1110,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1155,7 +1123,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1169,7 +1136,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1183,7 +1149,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1197,7 +1162,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1211,7 +1175,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1225,7 +1188,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1239,7 +1201,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1253,7 +1214,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1267,7 +1227,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1281,7 +1240,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1295,7 +1253,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1309,7 +1266,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1323,7 +1279,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1337,7 +1292,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1351,7 +1305,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1365,13 +1318,274 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ] }, + "node_modules/@tailwindcss/node": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.10.tgz", + "integrity": "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.10" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.10.tgz", + "integrity": "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.10", + "@tailwindcss/oxide-darwin-arm64": "4.1.10", + "@tailwindcss/oxide-darwin-x64": "4.1.10", + "@tailwindcss/oxide-freebsd-x64": "4.1.10", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.10", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.10", + "@tailwindcss/oxide-linux-x64-musl": "4.1.10", + "@tailwindcss/oxide-wasm32-wasi": "4.1.10", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.10" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.10.tgz", + "integrity": "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.10.tgz", + "integrity": "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.10.tgz", + "integrity": "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.10.tgz", + "integrity": "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.10.tgz", + "integrity": "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.10.tgz", + "integrity": "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.10.tgz", + "integrity": "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.10.tgz", + "integrity": "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.10.tgz", + "integrity": "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.10.tgz", + "integrity": "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.10", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.10.tgz", + "integrity": "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.10.tgz", + "integrity": "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.10.tgz", + "integrity": "sha512-QWnD5HDY2IADv+vYR82lOhqOlS1jSCUUAmfem52cXAhRTKxpDh3ARX8TTXJTCCO7Rv7cD2Nlekabv02bwP3a2A==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.10", + "@tailwindcss/oxide": "4.1.10", + "tailwindcss": "4.1.10" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1424,13 +1638,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/hammerjs": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", - "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==", - "license": "MIT", - "peer": true - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1954,6 +2161,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1986,19 +2202,6 @@ "node": ">= 0.8" } }, - "node_modules/component-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-2.0.0.tgz", - "integrity": "sha512-4m5s3Me2xxlVKG9PkZpQqHQR7bgpnN7joDMJ4yvVkVXngjoITG76IaZmzmywSeRTeTpc6N6r3H3+KyUurV8OYw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2013,6 +2216,15 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2069,6 +2281,15 @@ "node": ">=0.4.0" } }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2090,6 +2311,19 @@ "dev": true, "license": "ISC" }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -2139,7 +2373,6 @@ "version": "0.25.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -2542,7 +2775,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2647,6 +2879,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "license": "ISC" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -2780,6 +3018,15 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2847,12 +3094,14 @@ "node": ">=6" } }, - "node_modules/keycharm": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", - "integrity": "sha512-TyQTtsabOVv3MeOpR92sIKk/br9wxS+zGj4BG7CR8YbK4jM3tyIBaF0zhzeBUMx36/Q/iQLOKKOT+3jOQtemRQ==", - "license": "(Apache-2.0 OR MIT)", - "peer": true + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/keyv": { "version": "4.5.4", @@ -2878,6 +3127,234 @@ "node": ">= 0.8.0" } }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2911,6 +3388,24 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.514.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.514.0.tgz", + "integrity": "sha512-HXD0OAMd+JM2xCjlwG1EGW9Nuab64dhjO3+MvdyD+pSUeOTBaVAPhQblKIYmmX4RyBYbdzW0VWnJpjJmxWGr6w==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -2978,6 +3473,42 @@ "node": "*" } }, + "node_modules/minipass": { + "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" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2989,7 +3520,6 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, "funding": [ { "type": "github", @@ -3105,7 +3635,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -3125,7 +3654,6 @@ "version": "8.5.5", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -3228,6 +3756,44 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.2.tgz", + "integrity": "sha512-U7Nv3y+bMimgWjhlT5CRdzHPu2/KVmqPwKUCChW8en5P3znxUqwlYFlbmyj8Rgp1SF6zs5X4+77kBVknkg6a0w==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.2.tgz", + "integrity": "sha512-Q8zb6VlTbdYKK5JJBLQEN06oTUa/RAbG/oQS1auK1I0TbJOXktqm+QENEVJU6QvWynlXPRBXI3fiOQcSEA78rA==", + "license": "MIT", + "dependencies": { + "react-router": "7.6.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -3253,7 +3819,6 @@ "version": "4.43.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", "integrity": "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.7" @@ -3293,7 +3858,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, "license": "MIT" }, "node_modules/run-parallel": { @@ -3336,6 +3900,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3363,7 +3933,6 @@ "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==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3395,11 +3964,51 @@ "node": ">=8" } }, + "node_modules/tailwindcss": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz", + "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.4.4", @@ -3416,7 +4025,6 @@ "version": "6.4.6", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -3431,7 +4039,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -3557,76 +4164,10 @@ "punycode": "^2.1.0" } }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vis-data": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.9.tgz", - "integrity": "sha512-COQsxlVrmcRIbZMMTYwD+C2bxYCFDNQ2EHESklPiInbD/Pk3JZ6qNL84Bp9wWjYjAzXfSlsNaFtRk+hO9yBPWA==", - "license": "(Apache-2.0 OR MIT)", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "vis-util": "^5.0.1" - } - }, - "node_modules/vis-network": { - "version": "9.1.12", - "resolved": "https://registry.npmjs.org/vis-network/-/vis-network-9.1.12.tgz", - "integrity": "sha512-kZ7eOwfK1hGwsnCsGm02M7c5WBjgwTQ7BzF9bX7JaRqntJINWyjRiFBPqeDCOoOdgLEmwCXNk/VXYcIoK0ndyw==", - "license": "(Apache-2.0 OR MIT)", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "@egjs/hammerjs": "^2.0.0", - "component-emitter": "^1.3.0 || ^2.0.0", - "keycharm": "^0.2.0 || ^0.3.0 || ^0.4.0", - "uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0", - "vis-data": "^6.3.0 || ^7.0.0", - "vis-util": "^5.0.1" - } - }, - "node_modules/vis-util": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.7.tgz", - "integrity": "sha512-E3L03G3+trvc/X4LXvBfih3YIHcKS2WrP0XTdZefr6W6Qi/2nNCqZfe4JFfJU6DcQLm6Gxqj2Pfl+02859oL5A==", - "license": "(Apache-2.0 OR MIT)", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "@egjs/hammerjs": "^2.0.0", - "component-emitter": "^1.3.0 || ^2.0.0" - } - }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", - "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", @@ -3701,7 +4242,6 @@ "version": "6.4.6", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -3716,7 +4256,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" diff --git a/project-alpha/frontend/package.json b/client/package.json similarity index 79% rename from project-alpha/frontend/package.json rename to client/package.json index 7a255c0e6..ab220277c 100644 --- a/project-alpha/frontend/package.json +++ b/client/package.json @@ -1,5 +1,5 @@ { - "name": "frontend", + "name": "client", "private": true, "version": "0.0.0", "type": "module", @@ -10,10 +10,14 @@ "preview": "vite preview" }, "dependencies": { + "@tailwindcss/vite": "^4.1.10", "axios": "^1.9.0", + "jwt-decode": "^4.0.0", + "lucide-react": "^0.514.0", "react": "^19.1.0", "react-dom": "^19.1.0", - "vis-network": "^9.1.12" + "react-router-dom": "^7.6.2", + "tailwindcss": "^4.1.10" }, "devDependencies": { "@eslint/js": "^9.25.0", diff --git a/project-alpha/frontend/public/vite.svg b/client/public/vite.svg similarity index 100% rename from project-alpha/frontend/public/vite.svg rename to client/public/vite.svg diff --git a/project-alpha/frontend/src/App.css b/client/src/App.css similarity index 100% rename from project-alpha/frontend/src/App.css rename to client/src/App.css diff --git a/client/src/App.tsx b/client/src/App.tsx new file mode 100644 index 000000000..f5e503357 --- /dev/null +++ b/client/src/App.tsx @@ -0,0 +1,71 @@ +import { useState, useEffect } from 'react'; +import { Route, Routes, useNavigate } from 'react-router-dom'; +import { jwtDecode } from 'jwt-decode' +import Navbar from './components/Navbar'; +import Home from './components/Home'; +import Signup from './components/Signup'; +import Login from './components/Login'; +interface User { + username: string +} + +interface JWTPayload { + sub: string; + exp: number; +} + +function App() { + const [user, setUser] = useState(null); + const navigate = useNavigate(); + + const handleLogin = ({ username }: { username: string }) => { + setUser({ username }); + } + + const handleLogout = () => { + localStorage.removeItem('token'); + setUser(null); + navigate('/login'); + } + useEffect(() => { + document.title = 'Personal Learning Path'; + const token = localStorage.getItem('token'); + if (token) { + try { + const decodedToken = jwtDecode(token); + if (decodedToken.exp * 1000 < Date.now()) { + console.log('token is expired') + localStorage.removeItem('token'); + setUser(null); + navigate('/login'); + } else { + console.log('token is alive'); + setUser({ + username: decodedToken.sub, + }); + console.log(decodedToken.sub) + } + } catch (err) { + console.error(err); + localStorage.removeItem('token'); + setUser(null); + navigate('/login'); + } + } + }, [navigate]); + + return ( +
+ +
+ + } /> + } /> + } /> + +
+
+ ) +} + +export default App diff --git a/client/src/api/api.tsx b/client/src/api/api.tsx new file mode 100644 index 000000000..358a8856d --- /dev/null +++ b/client/src/api/api.tsx @@ -0,0 +1,26 @@ +import axios from "axios"; +const APP_URL = import.meta.env.VITE_API_URL || 'http://localhost:3000/api'; + +const api = axios.create({ + baseURL: APP_URL, + headers: { + 'Content-Type': 'application/json' + } +}) + + +api.interceptors.request.use((config) => { + const token = localStorage.getItem('token'); + if (token) { + config.headers['Authorization'] = `Bearer ${token}`; + } + return config; +}) + +export interface Credentials { + username: string, + password: string +}; +export const login = (credentials: Credentials) => api.post('/login', credentials); +export const signup = (credentials: Credentials) => api.post('/register', credentials); +export default api; diff --git a/project-alpha/frontend/src/assets/react.svg b/client/src/assets/react.svg similarity index 100% rename from project-alpha/frontend/src/assets/react.svg rename to client/src/assets/react.svg diff --git a/client/src/components/Home.tsx b/client/src/components/Home.tsx new file mode 100644 index 000000000..00f29eb65 --- /dev/null +++ b/client/src/components/Home.tsx @@ -0,0 +1,36 @@ +import { Globe, Lock, ShieldCheck } from 'lucide-react'; +import { Link } from 'react-router-dom'; + +const Home = () => { + + const logged = Boolean(localStorage.getItem('token')); + return ( +
+ + +
+ +
+

+ TODO +

+
+ + {/* */} + +
+
+
+ +
+

+ © 2025. +

+
+
+ ); +}; + +export default Home; diff --git a/client/src/components/Login.tsx b/client/src/components/Login.tsx new file mode 100644 index 000000000..f0c76fcf2 --- /dev/null +++ b/client/src/components/Login.tsx @@ -0,0 +1,103 @@ +import { useState, useEffect } from "react"; +import { useNavigate } from 'react-router-dom'; +import { login } from '../api/api'; +import type { Credentials as FormData } from '../api/api' + + +interface LoginProps { + onLogin: (user: { username: string }) => void; +} + +const Login = ({ onLogin }: LoginProps) => { + const [formData, setFormData] = useState({ username: "", password: "" }); + const [showPassword, setShowPassword] = useState(false); + const [status, setStatus] = useState(""); + const navigate = useNavigate(); + + const handleChange = (event: React.ChangeEvent) => { + setFormData({ ...formData, [event.target.name]: event.target.value }); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + try { + const response = await login(formData); + localStorage.setItem('token', response.data.access_token); + onLogin({ username: formData.username }); + navigate('/home'); + } catch (error) { + console.error(error); + setStatus("Login failed. Please check your credentials."); + } + }; + + useEffect(() => { + document.title = 'Login'; + }, []); + + return ( +
+ {status && ( +
+ {status} +
+ )} + +
+
+
Welcome back
+

Login to your account

+
+
+ + +
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ ); +}; + +export default Login; diff --git a/client/src/components/Navbar.tsx b/client/src/components/Navbar.tsx new file mode 100644 index 000000000..7b75bd8ed --- /dev/null +++ b/client/src/components/Navbar.tsx @@ -0,0 +1,79 @@ +import { Link } from 'react-router-dom'; +import { + Leaf, + LogOut, + User, + UserPlus, + LogIn, + ChartColumnIncreasing +} from 'lucide-react'; + +const Navbar = ({ user, onLogout }) => { + return ( + + ) +}; +export default Navbar; diff --git a/client/src/components/Signup.tsx b/client/src/components/Signup.tsx new file mode 100644 index 000000000..053c64e78 --- /dev/null +++ b/client/src/components/Signup.tsx @@ -0,0 +1,103 @@ +import { useState, useEffect } from "react"; +import { useNavigate } from 'react-router-dom'; +import { signup } from '../api/api'; +import type { Credentials as FormData } from '../api/api' + + +interface SignupProps { + onLogin: (user: { username: string }) => void; +} + +const Signup = ({ onLogin }: SignupProps) => { + const [formData, setFormData] = useState({ username: "", password: "" }); + const [showPassword, setShowPassword] = useState(false); + const [status, setStatus] = useState(""); + const navigate = useNavigate(); + + const handleChange = (event: React.ChangeEvent) => { + setFormData({ ...formData, [event.target.name]: event.target.value }); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + try { + const response = await signup(formData); + localStorage.setItem('token', response.data.access_token); + onLogin({ username: formData.username }); + navigate('/home'); + } catch (error) { + console.error(error); + setStatus("Signup failed. Please check your credentials."); + } + }; + + useEffect(() => { + document.title = 'Signup'; + }, []); + + return ( +
+ {status && ( +
+ {status} +
+ )} + +
+
+
Welcome back
+

Signup for an account

+
+
+ + +
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ ); +}; + +export default Signup; diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 000000000..f1d8c73cd --- /dev/null +++ b/client/src/index.css @@ -0,0 +1 @@ +@import "tailwindcss"; diff --git a/project-alpha/frontend/src/main.tsx b/client/src/main.tsx similarity index 67% rename from project-alpha/frontend/src/main.tsx rename to client/src/main.tsx index bef5202a3..7603c2885 100644 --- a/project-alpha/frontend/src/main.tsx +++ b/client/src/main.tsx @@ -1,10 +1,13 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' +import { BrowserRouter } from 'react-router-dom' import App from './App.tsx' createRoot(document.getElementById('root')!).render( - + + + , ) diff --git a/client/src/vite-env.d.ts b/client/src/vite-env.d.ts new file mode 100644 index 000000000..a08026d9c --- /dev/null +++ b/client/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/project-alpha/frontend/tsconfig.app.json b/client/tsconfig.app.json similarity index 100% rename from project-alpha/frontend/tsconfig.app.json rename to client/tsconfig.app.json diff --git a/project-alpha/frontend/tsconfig.json b/client/tsconfig.json similarity index 100% rename from project-alpha/frontend/tsconfig.json rename to client/tsconfig.json diff --git a/project-alpha/frontend/tsconfig.node.json b/client/tsconfig.node.json similarity index 100% rename from project-alpha/frontend/tsconfig.node.json rename to client/tsconfig.node.json diff --git a/project-alpha/frontend/vite.config.ts b/client/vite.config.ts similarity index 63% rename from project-alpha/frontend/vite.config.ts rename to client/vite.config.ts index 8b0f57b91..dd54e7f65 100644 --- a/project-alpha/frontend/vite.config.ts +++ b/client/vite.config.ts @@ -1,7 +1,8 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite' // https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [tailwindcss(), react()], }) diff --git a/concept-graph.py b/concept-graph.py deleted file mode 100644 index 008ccac1f..000000000 --- a/concept-graph.py +++ /dev/null @@ -1,64 +0,0 @@ -import networkx as nx -import matplotlib.pyplot as plt -import json -from networkx.readwrite import json_graph -concept_map = { - "What is computation?": ["Computation", "Algorithms", "Problem Solving"], - "Branching and Iteration": ["Conditionals", "Loops", "Control Flow"], - "String Manipulation, Guess and Check, Approximations, Bisection": [ - "String Manipulation", "Guess and Check", "Approximation", "Bisection Search" - ], - "Decomposition, Abstractions, Functions": ["Decomposition", "Abstraction", "Functions"], - "Tuples, Lists, Aliasing, Mutability, Cloning": [ - "Tuples", "Lists", "Aliasing", "Mutability", "Cloning" - ], - "Recursion, Dictionaries": ["Recursion", "Dictionaries"], - "Testing, Debugging, Exceptions, Assertions": [ - "Testing", "Debugging", "Exceptions", "Assertions" - ], - "Object Oriented Programming": ["Classes", "OOP", "Encapsulation"], - "Python Classes and Inheritance": ["Inheritance", "Subclasses", "Class Hierarchies"], - "Understanding Program Efficiency, Part 1": ["Big-O Notation", "Efficiency"], - "Understanding Program Efficiency, Part 2": ["Efficiency", "Space Complexity"], - "Searching and Sorting": ["Search Algorithms", "Sorting Algorithms"], -} - -G = nx.DiGraph() - -# Converted concept_map to a list of concept lists in lecture order -concept_lists = list(concept_map.values()) - -# graph -for i, concepts in enumerate(concept_lists): - # Connected all concepts within the same lecture in sequence - for j in range(len(concepts) - 1): - G.add_edge(concepts[j], concepts[j + 1]) - - # Connected last concept of this lecture to all concepts in the next lecture - if i < len(concept_lists) - 1: - last_concept = concepts[-1] - next_concepts = concept_lists[i + 1] - for next_concept in next_concepts: - G.add_edge(last_concept, next_concept) - - -data = json_graph.node_link_data(G) - -# Saved to json file -with open("concept_graph_full.json", "w", encoding="utf-8") as f: - json.dump(data, f, indent=4) - -print("Full graph saved to concept_graph_full.json") - - -''' -plt.figure(figsize=(22, 14)) -pos = nx.spring_layout(G, k=0.5, seed=42) -nx.draw(G, pos, with_labels=True, - node_color="lightblue", node_size=2500, - edge_color="gray", arrows=True, width=2, font_size=10) -plt.title("Concept Graph from Manually Curated Lecture Concepts", fontsize=14) -plt.axis("off") -plt.tight_layout() -plt.show() -''' diff --git a/concept_graph.html b/concept_graph.html deleted file mode 100644 index a9e161654..000000000 --- a/concept_graph.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - -
-

-
- - - - - - -
-

-
- - - - - -
- - -
-
- - - - - - - \ No newline at end of file diff --git a/concept_graph.json b/concept_graph.json deleted file mode 100644 index 6dea722e7..000000000 --- a/concept_graph.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { "id": "1", "name": "What is computation?", "prerequisites": [] }, - { "id": "2", "name": "Branching and Iteration", "prerequisites": ["1"] }, - { "id": "3", "name": "String Manipulation, Guess and Check, Approximations, Bisection", "prerequisites": ["2"] }, - { "id": "4", "name": "Decomposition, Abstractions, Functions", "prerequisites": ["3"] }, - { "id": "5", "name": "Tuples, Lists, Aliasing, Mutability, Cloning", "prerequisites": ["4"] }, - { "id": "6", "name": "Recursion, Dictionaries", "prerequisites": ["5"] }, - { "id": "7", "name": "Testing, Debugging, Exceptions, Assertions", "prerequisites": ["6"] }, - { "id": "8", "name": "Object Oriented Programming", "prerequisites": ["7"] }, - { "id": "9", "name": "Python Classes and Inheritance", "prerequisites": ["8"] }, - { "id": "10", "name": "Understanding Program Efficiency, Part 1", "prerequisites": ["9"] }, - { "id": "11", "name": "Understanding Program Efficiency, Part 2", "prerequisites": ["10"] }, - { "id": "12", "name": "Searching and Sorting", "prerequisites": ["11"] } -] diff --git a/concept_graph_full.json b/concept_graph_full.json deleted file mode 100644 index f256d4bc9..000000000 --- a/concept_graph_full.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "directed": true, - "multigraph": false, - "graph": {}, - "nodes": [ - { - "id": "Computation" - }, - { - "id": "Algorithms" - }, - { - "id": "Problem Solving" - }, - { - "id": "Conditionals" - }, - { - "id": "Loops" - }, - { - "id": "Control Flow" - }, - { - "id": "String Manipulation" - }, - { - "id": "Guess and Check" - }, - { - "id": "Approximation" - }, - { - "id": "Bisection Search" - }, - { - "id": "Decomposition" - }, - { - "id": "Abstraction" - }, - { - "id": "Functions" - }, - { - "id": "Tuples" - }, - { - "id": "Lists" - }, - { - "id": "Aliasing" - }, - { - "id": "Mutability" - }, - { - "id": "Cloning" - }, - { - "id": "Recursion" - }, - { - "id": "Dictionaries" - }, - { - "id": "Testing" - }, - { - "id": "Debugging" - }, - { - "id": "Exceptions" - }, - { - "id": "Assertions" - }, - { - "id": "Classes" - }, - { - "id": "OOP" - }, - { - "id": "Encapsulation" - }, - { - "id": "Inheritance" - }, - { - "id": "Subclasses" - }, - { - "id": "Class Hierarchies" - }, - { - "id": "Big-O Notation" - }, - { - "id": "Efficiency" - }, - { - "id": "Space Complexity" - }, - { - "id": "Search Algorithms" - }, - { - "id": "Sorting Algorithms" - } - ], - "links": [ - { - "source": "Computation", - "target": "Algorithms" - }, - { - "source": "Algorithms", - "target": "Problem Solving" - }, - { - "source": "Problem Solving", - "target": "Conditionals" - }, - { - "source": "Problem Solving", - "target": "Loops" - }, - { - "source": "Problem Solving", - "target": "Control Flow" - }, - { - "source": "Conditionals", - "target": "Loops" - }, - { - "source": "Loops", - "target": "Control Flow" - }, - { - "source": "Control Flow", - "target": "String Manipulation" - }, - { - "source": "Control Flow", - "target": "Guess and Check" - }, - { - "source": "Control Flow", - "target": "Approximation" - }, - { - "source": "Control Flow", - "target": "Bisection Search" - }, - { - "source": "String Manipulation", - "target": "Guess and Check" - }, - { - "source": "Guess and Check", - "target": "Approximation" - }, - { - "source": "Approximation", - "target": "Bisection Search" - }, - { - "source": "Bisection Search", - "target": "Decomposition" - }, - { - "source": "Bisection Search", - "target": "Abstraction" - }, - { - "source": "Bisection Search", - "target": "Functions" - }, - { - "source": "Decomposition", - "target": "Abstraction" - }, - { - "source": "Abstraction", - "target": "Functions" - }, - { - "source": "Functions", - "target": "Tuples" - }, - { - "source": "Functions", - "target": "Lists" - }, - { - "source": "Functions", - "target": "Aliasing" - }, - { - "source": "Functions", - "target": "Mutability" - }, - { - "source": "Functions", - "target": "Cloning" - }, - { - "source": "Tuples", - "target": "Lists" - }, - { - "source": "Lists", - "target": "Aliasing" - }, - { - "source": "Aliasing", - "target": "Mutability" - }, - { - "source": "Mutability", - "target": "Cloning" - }, - { - "source": "Cloning", - "target": "Recursion" - }, - { - "source": "Cloning", - "target": "Dictionaries" - }, - { - "source": "Recursion", - "target": "Dictionaries" - }, - { - "source": "Dictionaries", - "target": "Testing" - }, - { - "source": "Dictionaries", - "target": "Debugging" - }, - { - "source": "Dictionaries", - "target": "Exceptions" - }, - { - "source": "Dictionaries", - "target": "Assertions" - }, - { - "source": "Testing", - "target": "Debugging" - }, - { - "source": "Debugging", - "target": "Exceptions" - }, - { - "source": "Exceptions", - "target": "Assertions" - }, - { - "source": "Assertions", - "target": "Classes" - }, - { - "source": "Assertions", - "target": "OOP" - }, - { - "source": "Assertions", - "target": "Encapsulation" - }, - { - "source": "Classes", - "target": "OOP" - }, - { - "source": "OOP", - "target": "Encapsulation" - }, - { - "source": "Encapsulation", - "target": "Inheritance" - }, - { - "source": "Encapsulation", - "target": "Subclasses" - }, - { - "source": "Encapsulation", - "target": "Class Hierarchies" - }, - { - "source": "Inheritance", - "target": "Subclasses" - }, - { - "source": "Subclasses", - "target": "Class Hierarchies" - }, - { - "source": "Class Hierarchies", - "target": "Big-O Notation" - }, - { - "source": "Class Hierarchies", - "target": "Efficiency" - }, - { - "source": "Big-O Notation", - "target": "Efficiency" - }, - { - "source": "Efficiency", - "target": "Efficiency" - }, - { - "source": "Efficiency", - "target": "Space Complexity" - }, - { - "source": "Space Complexity", - "target": "Search Algorithms" - }, - { - "source": "Space Complexity", - "target": "Sorting Algorithms" - }, - { - "source": "Search Algorithms", - "target": "Sorting Algorithms" - } - ] -} \ No newline at end of file diff --git a/fetch_lectures.py b/fetch_lectures.py deleted file mode 100644 index 742c02125..000000000 --- a/fetch_lectures.py +++ /dev/null @@ -1,44 +0,0 @@ -import requests -import time -from bs4 import BeautifulSoup -from bs4.element import Tag -import json - -url = "https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/lecture-slides-code/" - -session = requests.Session() -time.sleep(2) # Sleep to avoid overwhelming the server -r = session.get(url) - -with open("lecture_slides_code.html", "w", encoding='utf-8') as f: - f.write(r.text) -print("HTML content retrieved and saved to lecture_slides_code.html") - -with open("lecture_slides_code.html", "r", encoding='utf-8') as f: - html_content = f.read() - -soup = BeautifulSoup(html_content, 'html.parser') -rows = soup.find_all("tr") - -lecture_titles = [] - -for row in rows: - if isinstance(row, Tag): - cols = row.find_all("td") - if len(cols) >= 2: - title = cols[1].get_text(strip=True) - if title: - lecture_titles.append(title) - -# Save lecture titles to a text file (optional) -with open("lecture_titles.txt", "w", encoding='utf-8') as f: - for title in lecture_titles: - f.write(title + "\n") - -print(f"Extracted {len(lecture_titles)} lecture titles and saved to lecture_titles.txt") - -# Save lecture titles to JSON file -with open("lecture_titles.json", "w", encoding='utf-8') as f_json: - json.dump(lecture_titles, f_json, ensure_ascii=False, indent=2) - -print(f"Saved {len(lecture_titles)} lecture titles to lecture_titles.json") diff --git a/index.html b/index.html deleted file mode 100644 index 039e57648..000000000 --- a/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - MIT OCW Python Course Graph - - - - -

MIT OCW Python Course Graph

-
- - - - diff --git a/learner_profiles.json b/learner_profiles.json deleted file mode 100644 index 63f1f1f88..000000000 --- a/learner_profiles.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "learner_id": "L001", - "mastered_concepts": ["Computation", "Algorithms"], - "weak_concepts": ["Problem Solving"] - }, - { - "learner_id": "L002", - "mastered_concepts": ["Computation"], - "weak_concepts": [] - } -] \ No newline at end of file diff --git a/lecture_prerequisites_graph (1).png b/lecture_prerequisites_graph (1).png deleted file mode 100644 index b134c4ff9ad2e3915581f8b80cd51dab6b343227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382219 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

WXdUO0lXJ%hsEAWKyuK3%Bkx+k)O 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 diff --git a/lecture_slides_code.html b/lecture_slides_code.html deleted file mode 100644 index 6df87b1a0..000000000 --- a/lecture_slides_code.html +++ /dev/null @@ -1,2695 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lecture Slides and Code | Introduction to Computer Science and Programming in Python | Electrical Engineering and Computer Science | MIT OpenCourseWare - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - diff --git a/lecture_titles.json b/lecture_titles.json deleted file mode 100644 index 0944128ea..000000000 --- a/lecture_titles.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - "What is computation?", - "Branching and Iteration", - "String Manipulation, Guess and Check, Approximations, Bisection", - "Decomposition, Abstractions, Functions", - "Tuples, Lists, Aliasing, Mutability, Cloning", - "Recursion, Dictionaries", - "Testing, Debugging, Exceptions, Assertions", - "Object Oriented Programming", - "Python Classes and Inheritance", - "Understanding Program Efficiency, Part 1", - "Understanding Program Efficiency, Part 2", - "Searching and Sorting" -] \ No newline at end of file diff --git a/lecture_titles.txt b/lecture_titles.txt deleted file mode 100644 index 68f640f73..000000000 --- a/lecture_titles.txt +++ /dev/null @@ -1,12 +0,0 @@ -What is computation? -Branching and Iteration -String Manipulation, Guess and Check, Approximations, Bisection -Decomposition, Abstractions, Functions -Tuples, Lists, Aliasing, Mutability, Cloning -Recursion, Dictionaries -Testing, Debugging, Exceptions, Assertions -Object Oriented Programming -Python Classes and Inheritance -Understanding Program Efficiency, Part 1 -Understanding Program Efficiency, Part 2 -Searching and Sorting diff --git a/lectures.json b/lectures.json deleted file mode 100644 index dd78a2e78..000000000 --- a/lectures.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { "id": 1, "title": "Introduction to Python" }, - { "id": 2, "title": "Data Types and Variables" }, - { "id": 3, "title": "Control Structures" }, - { "id": 4, "title": "Functions" }, - { "id": 5, "title": "Modules and Packages" }, - { "id": 6, "title": "Object-Oriented Programming" } -] diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index ddedb5691..000000000 --- a/package-lock.json +++ /dev/null @@ -1,1224 +0,0 @@ -{ - "name": "learning_path", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "learning_path", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "bcryptjs": "^3.0.2", - "cors": "^2.8.5", - "express": "^5.1.0", - "jsonwebtoken": "^9.0.2", - "mongodb": "^6.17.0", - "mongoose": "^8.15.1" - } - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", - "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==", - "license": "MIT", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" - }, - "node_modules/@types/whatwg-url": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", - "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "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/bcryptjs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", - "integrity": "sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==", - "license": "BSD-3-Clause", - "bin": { - "bcrypt": "bin/bcrypt" - } - }, - "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/bson": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", - "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "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/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "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/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "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/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/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/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/http-errors/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/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/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jwa": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", - "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kareem": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", - "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "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/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" - }, - "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/mongodb": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.17.0.tgz", - "integrity": "sha512-neerUzg/8U26cgruLysKEjJvoNSXhyID3RvzvdcpsIi2COYM3FS3o9nlH7fxFtefTb942dX3W9i37oPfCVj4wA==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.4", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", - "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "license": "Apache-2.0", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^14.1.0 || ^13.0.0" - } - }, - "node_modules/mongoose": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.15.1.tgz", - "integrity": "sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==", - "license": "MIT", - "dependencies": { - "bson": "^6.10.3", - "kareem": "2.6.3", - "mongodb": "~6.16.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "17.1.3" - }, - "engines": { - "node": ">=16.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose/node_modules/mongodb": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.16.0.tgz", - "integrity": "sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.3", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "license": "MIT", - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "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-assign": { - "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" - } - }, - "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/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "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/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/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/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "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/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/sift": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "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/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "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/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "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/package.json b/package.json deleted file mode 100644 index 1ee29c497..000000000 --- a/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "learning_path", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "dependencies": { - "bcryptjs": "^3.0.2", - "cors": "^2.8.5", - "express": "^5.1.0", - "jsonwebtoken": "^9.0.2", - "mongodb": "^6.17.0", - "mongoose": "^8.15.1" - } -} diff --git a/project-alpha/.gitignore b/project-alpha/.gitignore deleted file mode 100644 index 3168325eb..000000000 --- a/project-alpha/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.env -dist -.DS_Store \ No newline at end of file diff --git a/project-alpha/LICENSE b/project-alpha/LICENSE deleted file mode 100644 index 1a15e1b51..000000000 --- a/project-alpha/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 sivasai - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/project-alpha/README.md b/project-alpha/README.md deleted file mode 100644 index e63ee9a43..000000000 --- a/project-alpha/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# Personalized Learning Path Recommendation - -An experimental AI-powered educational tool that recommends personalized learning paths based on a user’s target topic. The system dynamically constructs a prerequisite concept graph to identify foundational knowledge, and uses GPT-based analysis to generate diagnostic assessments — ensuring learners build a strong conceptual base before progressing. - -This project is actively being developed using the MERN stack, with plans to integrate advanced agentic reasoning and adaptive feedback for scalable and personalized learning support. - - - ---- - -## Status - -> This project is currently in early development. Features and APIs are subject to frequent changes. - ---- - -## System Workflow (4 Stages) - -### Stage 1: Prerequisite Graph Construction - -- Accepts any user-given topic (e.g., "Machine Learning"). -- Uses GPT-4o to generate 5–7 relevant prerequisite concepts -- Visualizes them as a Directed Acyclic Graph (DAG). - -### Stage 2: MCQ Exam Generator - -- Automatically generates diagnostic multiple-choice questions based on each prerequisite concept. -- Questions are AI-generated and domain-aware. - -### Stage 3: Result Display and Analysis -- Evaluates user responses to identify strengths and knowledge gaps. -- Provides clear, structured feedback - -### Stage 4: Personalized Learning Path Recommendation -- Constructs a custom learning path based on analysis of prerequisite performance -- Highlights weak areas and recommends learning order - ---- - -## How to Run the Project - -### 1. Clone the Repository - -### 2. Add Your OpenRouter API Key - -* Create a `.env` file in the **`backend/`** directory. -* Add the following lines to the `.env` file: - -```env -OPENROUTER_API_KEY=your_openrouter_key_here -MONGO_URI=mongodb://localhost:27017/cps-prerequisites -``` - -> Make sure the `.env` file is located inside the `backend/` folder. - ---- - -### 3. Start the Application - -#### In Terminal 1 (Frontend) - -```bash -cd frontend -npm install -npm start -``` - -This will start the frontend on http://localhost:5173 (Vite default) - -#### In Terminal 2 (Backend) - -```bash -cd backend -npm install -npm start -``` - ---- - -## What Happens Now - -* Enter a concept or topic in the input field (e.g., "Machine Learning"). -* The system will: - * Call OpenRouter (GPT-4o) to generate 5–7 prerequisite concepts. - * Save the topic and prerequisites in MongoDB. - * Display them as a bullet list and a directed graph (DAG) on the frontend. - ---- - -## Tech Stack - -* **Frontend**: React (TypeScript) -* **Backend**: Node.js + Express -* **Database**: MongoDB -* **AI/LLM**: GPT-4o via OpenRouter -* **Graph Rendering**: vis-network -* **Environment Management**: dotenv - - diff --git a/project-alpha/backend/package-lock.json b/project-alpha/backend/package-lock.json deleted file mode 100644 index f0afbfb8b..000000000 --- a/project-alpha/backend/package-lock.json +++ /dev/null @@ -1,2066 +0,0 @@ -{ - "name": "backend", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "backend", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "axios": "^1.9.0", - "cors": "^2.8.5", - "dotenv": "^16.5.0", - "express": "^5.1.0", - "mongoose": "^8.15.1" - }, - "devDependencies": { - "@types/cors": "^2.8.19", - "@types/dotenv": "^6.1.1", - "@types/express": "^5.0.3", - "@types/node": "^24.0.0", - "ts-node-dev": "^2.0.0", - "typescript": "^5.8.3" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", - "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==", - "license": "MIT", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.19", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", - "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/dotenv": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/dotenv/-/dotenv-6.1.1.tgz", - "integrity": "sha512-ftQl3DtBvqHl9L16tpqqzA4YzCSXZfi7g8cQceTz5rOlYtk/IZbFjAv3mLOQlNIgOaylCQWQoBdDQHPgEBJPHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", - "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.1.tgz", - "integrity": "sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.8.0" - } - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" - }, - "node_modules/@types/whatwg-url": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", - "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "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/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "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.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bson": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", - "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "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/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "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/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, - "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/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "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/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "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/dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - } - }, - "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/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "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/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/form-data/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "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==", - "dev": true, - "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/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "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", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "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/http-errors/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/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/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "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" - } - }, - "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-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "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/kareem": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", - "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "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/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" - }, - "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/minimatch": { - "version": "3.1.2", - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "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" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mongodb": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.16.0.tgz", - "integrity": "sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.3", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", - "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "license": "Apache-2.0", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^14.1.0 || ^13.0.0" - } - }, - "node_modules/mongoose": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.15.1.tgz", - "integrity": "sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==", - "license": "MIT", - "dependencies": { - "bson": "^6.10.3", - "kareem": "2.6.3", - "mongodb": "~6.16.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "17.1.3" - }, - "engines": { - "node": ">=16.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "license": "MIT", - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "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/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "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" - } - }, - "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-is-absolute": { - "version": "1.0.1", - "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" - } - }, - "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==", - "dev": true, - "license": "MIT" - }, - "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/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "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/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "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/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/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "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/sift": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "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", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "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" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "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/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", - "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.6", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^10.4.0", - "tsconfig": "^7.0.0" - }, - "bin": { - "ts-node-dev": "lib/bin.js", - "tsnd": "lib/bin.js" - }, - "engines": { - "node": ">=0.8.0" - }, - "peerDependencies": { - "node-notifier": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "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/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", - "dev": true, - "license": "MIT" - }, - "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/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "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/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "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" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - } - } -} diff --git a/project-alpha/backend/package.json b/project-alpha/backend/package.json deleted file mode 100644 index 221318db6..000000000 --- a/project-alpha/backend/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "backend", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "start": "ts-node-dev src/index.ts", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "type": "commonjs", - "dependencies": { - "axios": "^1.9.0", - "cors": "^2.8.5", - "dotenv": "^16.5.0", - "express": "^5.1.0", - "mongoose": "^8.15.1" - }, - "devDependencies": { - "@types/cors": "^2.8.19", - "@types/dotenv": "^6.1.1", - "@types/express": "^5.0.3", - "@types/node": "^24.0.0", - "ts-node-dev": "^2.0.0", - "typescript": "^5.8.3" - } -} \ No newline at end of file diff --git a/project-alpha/backend/src/index.ts b/project-alpha/backend/src/index.ts deleted file mode 100644 index c927b89f0..000000000 --- a/project-alpha/backend/src/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import express from 'express'; -import mongoose from 'mongoose'; -import cors from 'cors'; -import dotenv from 'dotenv'; -import prereqRoutes from './routes/prerequisites'; - -dotenv.config(); // Load .env - -const app = express(); -app.use(cors()); -app.use(express.json()); - -app.use('/api/prerequisites', prereqRoutes); - -mongoose.connect(process.env.MONGO_URI!) - .then(() => console.log('MongoDB connected')) - .catch(err => console.error(err)); - -const PORT = process.env.PORT || 5000; -app.listen(PORT, () => console.log(`Server running on port ${PORT}`)); \ No newline at end of file diff --git a/project-alpha/backend/src/models/Prereq.ts b/project-alpha/backend/src/models/Prereq.ts deleted file mode 100644 index 65237acf9..000000000 --- a/project-alpha/backend/src/models/Prereq.ts +++ /dev/null @@ -1,8 +0,0 @@ -import mongoose from 'mongoose'; - -const prereqSchema = new mongoose.Schema({ - topic: { type: String, required: true }, - prerequisites: { type: [String], required: true }, -}); - -export default mongoose.model('Prereq', prereqSchema); \ No newline at end of file diff --git a/project-alpha/backend/src/routes/prerequisites.ts b/project-alpha/backend/src/routes/prerequisites.ts deleted file mode 100644 index af99d5fd7..000000000 --- a/project-alpha/backend/src/routes/prerequisites.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Router, Request, Response } from 'express'; -import Prereq from '../models/Prereq'; -import { generatePrerequisites } from '../services/prereqGenerator'; - -const router = Router(); - -router.post('/', async (req: Request, res: Response) => { - const { topic } = req.body; - try { - const prereqs = await generatePrerequisites(topic); - const newEntry = new Prereq({ topic, prerequisites: prereqs }); - await newEntry.save(); - res.json({ topic, prerequisites: prereqs }); - } catch (err) { - res.status(500).json({ error: 'Error generating prerequisites' }); - } -}); - -export default router; \ No newline at end of file diff --git a/project-alpha/backend/src/services/prereqGenerator.ts b/project-alpha/backend/src/services/prereqGenerator.ts deleted file mode 100644 index 31c70fd40..000000000 --- a/project-alpha/backend/src/services/prereqGenerator.ts +++ /dev/null @@ -1,40 +0,0 @@ -import axios from 'axios'; - -export async function generatePrerequisites(topic: string): Promise { - try { - console.log('⏳ Asking GPT-4o via OpenRouter for topic:', topic); - - const response = await axios.post( - 'https://openrouter.ai/api/v1/chat/completions', - { - model: 'openai/gpt-4o', - max_tokens: 200, // ✅ Limit token usage to fit free plan - messages: [ - { - role: 'user', - content: `List 5 to 7 prerequisite concepts needed to understand "${topic}" in computer science. Only return the concepts as a plain numbered list.`, - }, - ], - }, - { - headers: { - Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`, - 'Content-Type': 'application/json', - }, - } - ); - - const content: string = response.data.choices[0]?.message?.content ?? ''; - console.log('✅ GPT Response:', content); - - const list = content - .split('\n') - .map((line: string) => line.replace(/^\d+\.?\s*/, '').trim()) - .filter(Boolean); - - return list.length > 0 ? list : ['⚠️ Could not generate prerequisites. Try another topic.']; - } catch (error: any) { - console.error('❌ GPT API error:\n', error?.response?.data || error.message); - return ['⚠️ Unable to generate prerequisites. Try another topic.']; - } -} \ No newline at end of file diff --git a/project-alpha/backend/tsconfig.json b/project-alpha/backend/tsconfig.json deleted file mode 100644 index 570128d5f..000000000 --- a/project-alpha/backend/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "es6", - "module": "commonjs", - "rootDir": "./src", - "outDir": "./dist", - "esModuleInterop": true, - "strict": true, - "skipLibCheck": true - } -} \ No newline at end of file diff --git a/project-alpha/frontend/src/App.tsx b/project-alpha/frontend/src/App.tsx deleted file mode 100644 index 2618f3ea6..000000000 --- a/project-alpha/frontend/src/App.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import { useState } from 'react'; -import axios from 'axios'; -import Graph from './components/Graph'; -//import PrereqList from './components/PrereqList'; - -type PrereqData = { - topic: string; - prerequisites: string[]; -}; - -function App() { - const [topic, setTopic] = useState(''); - const [data, setData] = useState(null); - - const handleSubmit = async () => { - if (!topic.trim()) return; - - try { - const res = await axios.post('http://localhost:5000/api/prerequisites', { topic }); - setData(res.data); - } catch (err) { - console.error('Error fetching prerequisites', err); - } - }; - - return ( -
-
- {/* LEFT SIDE */} -
-

- Concept Prerequisite Graph -

- -
- setTopic(e.target.value)} - placeholder="Enter a topic (e.g. Machine Learning)" - style={{ - padding: '12px', - fontSize: '16px', - flexGrow: 1, - border: '1px solid #ccc', - borderRadius: '6px', - }} - /> - -
- - {data && ( - <> -

Prerequisite List

-
    - {data.prerequisites.map((item, i) => ( -
  • - {item} -
  • - ))} -
- - )} -
- - {/* RIGHT SIDE */} -
- {data && ( - <> -

- Graph for {data.topic} -

- - - )} -
-
-
- ); -} - -export default App; \ No newline at end of file diff --git a/project-alpha/frontend/src/components/Graph.tsx b/project-alpha/frontend/src/components/Graph.tsx deleted file mode 100644 index 82f9f56b7..000000000 --- a/project-alpha/frontend/src/components/Graph.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import { useEffect, useRef } from 'react'; -import { DataSet, Network } from 'vis-network/standalone'; -import type { Node, Edge } from 'vis-network'; - -type GraphProps = { - topic: string; - prerequisites: string[]; -}; - -const Graph = ({ topic, prerequisites }: GraphProps) => { - const containerRef = useRef(null); - - useEffect(() => { - if (!containerRef.current) return; - - const nodes: Node[] = [ - { id: 'Start', label: 'Start', color: '#90caf9', level: 0 }, - ...prerequisites.map((p, i) => ({ - id: p, - label: p, - color: '#a5d6a7', - level: i + 1, - })), - { id: topic, label: topic, color: '#ffab91', level: prerequisites.length + 1 }, - ]; - - const edges: Edge[] = []; - - // Connect: Start → prereq1 - if (prerequisites.length > 0) { - edges.push({ from: 'Start', to: prerequisites[0], arrows: 'to' }); - - // Chain: prereq1 → prereq2 → ... - for (let i = 0; i < prerequisites.length - 1; i++) { - edges.push({ from: prerequisites[i], to: prerequisites[i + 1], arrows: 'to' }); - } - - // Final prereq → Topic - edges.push({ from: prerequisites[prerequisites.length - 1], to: topic, arrows: 'to' }); - } else { - edges.push({ from: 'Start', to: topic, arrows: 'to' }); - } - - const data = { - nodes: new DataSet(nodes), - edges: new DataSet(edges), - }; - - const options = { - layout: { - hierarchical: { - enabled: true, - levelSeparation: 150, - direction: 'UD', // Up to Down - sortMethod: 'directed', - }, - }, - physics: { - enabled: false, - }, - edges: { - smooth: true, - arrows: { - to: { enabled: true, scaleFactor: 1 }, - }, - }, - nodes: { - shape: 'box', - font: { - face: 'Arial', - size: 14, - }, - margin: { - top: 10, - bottom: 10, - left: 10, - right: 10, - }, - }, - }; - - new Network(containerRef.current, data, options); - }, [topic, prerequisites]); - - return ( -
-
-
- ); -}; - -export default Graph; \ No newline at end of file diff --git a/project-alpha/frontend/src/components/PrereqList.tsx b/project-alpha/frontend/src/components/PrereqList.tsx deleted file mode 100644 index 7b28f59ff..000000000 --- a/project-alpha/frontend/src/components/PrereqList.tsx +++ /dev/null @@ -1,16 +0,0 @@ -type Props = { - list: string[]; -}; - -const PrereqList: React.FC = ({ list }) => ( -
-

Prerequisite List

-
    - {list.map((item, index) => ( -
  • • {item}
  • - ))} -
-
-); - -export default PrereqList; \ No newline at end of file diff --git a/project-alpha/frontend/src/index.css b/project-alpha/frontend/src/index.css deleted file mode 100644 index 08a3ac9e1..000000000 --- a/project-alpha/frontend/src/index.css +++ /dev/null @@ -1,68 +0,0 @@ -:root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/project-alpha/frontend/src/vite-env.d.ts b/project-alpha/frontend/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a..000000000 --- a/project-alpha/frontend/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/project-beta/.gitignore b/project-beta/.gitignore deleted file mode 100644 index 14ee1e56c..000000000 --- a/project-beta/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Python -__pycache__/ -*.pyc - -# Node -node_modules/ - -# Environment files -.env - -# OS junk -.DS_Store -Thumbs.db diff --git a/project-beta/Documentation/Activity_Diagram.png b/project-beta/Documentation/Activity_Diagram.png deleted file mode 100644 index dbcd4d58e8dbb1182f2796bc67c44d001f403d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45143 zcmb@u1z1&W*Dbv12I($Ex>Q*+fgn;=lGj2Y&;=0) zjAC4L)GM_6Meql=$5jK5n=Y=tj@Gw45Q^5$)^0aEtgToqeOYWhJY3x+1O!|iZ#a8+ zIyv&+baC?f)X9uMpnb5@G4S~NIsy%jx~=T1;VC79wG5JtWVhEy(GG_?Feo} zyiK?p*RW|%P13OSE>3xGoo4{u&aEoHprC+bs$!J0$mxNP-I->IO@9HY2Ti59PBG$$ z2VBDsNMkY2-65DSkAKXir?jw1KxT1sN=+`cPVu(!(piN7wTvbfIZ8QyS)Ra`x}Qhg zM@CPGbn4=~7#J@%ylY@=ZKuG?rPS?w@UfJ;{zKNCSZ@k%Q}e>`o`XhGOy%WFMb#`(wt&h`BGIv=qQbe*8Giy zYJPLO)^ZWHn(jinKA(96i!mF`&IdUR4appW(qdi$gLj|LbbVCcH~!@CCV~{3Vw$Ri zEm6uf@)OVTsh3^i?u(DUtfb@bPT8 zQZXW-QJboxGvV9ByU9n~ZBhReBa(tqcG)mzCU0%5_v701+nYHLcs|=i3elg6VOz-h zm(_m#mNGUlN4W3df6z@(B3Ml5W0Z11Poyg&mSC(4eYoYjfJ|Bde#dZUj8!wvLQK=5 z-Xh5^E0K)>Vb?MO5rR;bzoO$~wl?K!LZLV<<67Av&D8d4uAOyrK05B+t(eLqk&o!attS`6;AjLiDVl(N{nWW%0Ab!vD>XENBR1 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 RG?f7eJYD@<);T3K0RZ*6%hLb= diff --git a/project-beta/Documentation/README.md b/project-beta/Documentation/README.md deleted file mode 100644 index 10a3cac0f..000000000 --- a/project-beta/Documentation/README.md +++ /dev/null @@ -1 +0,0 @@ -This folder has all the relevant documentation. All components of documentation are to be uploaded to this folder. diff --git a/project-beta/Documentation/Sequence_Diagram.png b/project-beta/Documentation/Sequence_Diagram.png deleted file mode 100644 index 66bbf86143658fa67b74cc3aea5fbe1620bc990e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85109 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 XL2@JM?+rU>2P;*@TM9*Tcc1(pzGnfd diff --git a/project-beta/Documentation/Use_Case_Diagram.png b/project-beta/Documentation/Use_Case_Diagram.png deleted file mode 100644 index 234770de5c4ddb40b604a85d548d569e699ff259..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61843 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[Fttr z9Sz$-LsN`2##yu@0l(tx;=(-;=ijDLu~t%78`*f>qtp2{)%G0WW7a z+nAeTNJ9R)lUAm)6^~8_9})*nH+5)ar^pOb?I9Vnn<^Ts^%t2P6qD1_d6>37V@UAu z+9$!pBcmX$Pm>lMO`tXOWSXfZc8_ZvmS9-Qe-oT39D%Z-)AoOa@UMJGt)XRxT5# z9Ks{5&&d?ncITzew5%GsJc&_{xO4oV-O!tIN>PSg7Qz?0g-Kke)Y6euPXIJ<-FiJp)UnebCWmV%8iNnL4^z9privYO#KRX=D z-E?yUv`+{1hNic1kEFQm4?yPt640G3W3U$`aB``57N;<=w2*IQf@d3d8&?cV4DSNC zf63ADaZ~jZH}G0yN$pUKjJX$6wIB8FK#Orid19A7C)h{PqJ;_It72@56PW%wcc#X3 z(T)bi5M9iM=}rT%8M046-ZG(7v!#}aiLe=i-7AEu=vs|TX5X)^But(_3;bQt32xqn z#`E=aH5IkC;QFDD7p6*{#CKV4w&$3(Hq6sR0IxzzT6?^zxG7FX1_4h^wb(~A#Z6{6 zXvr>%(8fU$1&a3aXIu9tOV(K>n>)GyfyPN(QjC>uf^x#^d|q#nktTRkkWovx%vl%T z9FuC)O1@U*p|dF!epshw={kMJ0@zf;^()q=>q5U@_39O2GIeEDzLznLW@?Z0)m?V{ ztt;s0I&Vo+GB-s=s{hoj+}MJj_$YDsC|gV6%6)^wX_CQFa94u6_l}Fz&qowvY4Sh9 z_6b}!&Ax6~)(My*fP#p2T%d&-udSJ`LKaeIz=#Ca5tu(1q~&CinhgwQZNRSFwi7L>uw6Ag8kE;!{(-h0m}Q0 zVMgVT^;wi30L?0afE(&zAKRx7jrzdefPlcxM|KnUYtIrUNl9AXEodH&eLT>T$ss7X zWAr5GVVV6I;h<^178#lrZr=_h8GTV;zL&a_KXea5P)Ll{fhB<+Y5R74PPAW+s2uBv z)ot6cb0=7ffq8`VXqDVQ;WV1CMO>ib59}EJCMNB}GXYOI$M;^g2DrCdxHnDB9E{#c zxCtG`uKwJkg}bHJoHhf0m+>QPQ8J{~jm6?&K!N~=|A4f#$w8Wuc6?5V=Uw6PY-(z% z{-bHffd?_5+JItPu(&2xp~(*34foG}H;IjRkcTDpT0eZ$i;2g0E2R{U-N<-wLP2(| znLX=%@Ofec&(y=RaDjB!wcTCdUqD#;ur%<8ho|S;-VQhHI$%0L0fWaU&dgSr`E%SL ztrD(X*Ww63?Ubk!*`Y7!X^H0S#zT)xW=(^Ujg-Kyu12Hc*h;wLhejIXTr4=>#+jL*Z%Tctp4teeEVlfCD4Bhpd z9pKXhYJauOS#MuZ$?QRoS9#mI~PcTv|DJ}K#@VFm6^>u%c$F;@Lcqu0T&!Pc>Hs&O zf3_Pzy6$SGuvO>Sv1~Z@s1?8hYHG^fneVLyHJ`DPn%XY0&65*8mlXVPm=qWtI3(BV z%lN#%|73J-?INh%e)h$;tYT{`4=xPvOo;iF#$84W zoz)F}jhf(RN~Rv#tGDisCBatK_zhMc0!{WeoBJB6q7OhO&;Y-&H9;8xAL5gcBPD&6 zJB4DyFKU&hedm3qun6I#oSYoR;;8{7hxI~_D|~!?cdnkxY85-MQ-{=)t8(3Kc`SW= z#}JD?UQ&y45VF82WZ6_zUpYEtcw^Qh7;IwXL+uexn>hdj1l86mk+{?z2zA}YLBuU^ z7LaJyah#-6pqc}S#4;Z~J~0c7`i)>>#w*riNbW8X@bFiiYF0A1!M@kyIIaU})qCY# zs%sn8y~wd2sYg=g+-PG0Z2cW*0_b3vyh1PbCG}9d9h|0~`&EnViLh_%1efdTay|Vu z2wmU~8Yg-o@}~#huCL_5?*OfD-!j1U@$=_v@1L!4PHVq}_I|Ck-IYze-~o?>aOBbi zM+3uWWVUy71dY2;s(s5S2%NB@R@!=4&cotF&{3a8Qklsu`IkqvNCLN?h2@#jGlcr# zrc6=4t#f`Evhq&b%zT7d>URT(T~r9#RUamce3jYGt?P?Opqr znAT7`t3{!`N;hDm2=ihy&g}`zhlV5cg8ab?<6hb0$C{jVZAAVZ?BK6JngbFt)EtAU zR!FCno*~q+^*N__GEk*PGJa_?&??YmU~_xkZk=f0N3)|06gSYFJKl(0U%J9V_5)MS z=)W)P0IGaj&DyL5X*mcHtycxc?(N-FkBV@iLg&XR7)agrR*fp^AgncTHb-uulJ8k# zlF-X?_$$-=CQ?#4Q4k`S=LIFSF=Xee8%7hDwW>#nl1s0GF<;MOt_?{jOrRWu`Zt+C zw)w(X>wwD~&kmW%;w$%<5Ela$52jz;sQeX;;~cGv@EPiryuWE9CBqQa{*WyG+OI0w+NKn#`$E98|#hmivv)I{U~#u4$Zp=eI|Tf z4$a(J-`G%cz35nP>X8+mV5;pbIDPEVV_{EnZNCCFAhrV&o#u&scb&bz_}{&2vFpU1 zO>G3Mww{lj*X@p2lEs-bb*B$e!4To5br*1_o*ufVtZZy`%c>g!LqeWl7EMMB^mFe^ zZr@H$Nl}XB-T?eIAH*2YmEg2^Dlx+_pVYlRMrp%EC~67&8)ettB0CVgjSFo|Ag7Ts zsWkwFDAsM!vbgOOb{@p>RW&vB4s%!G=L$J=Lgiv4iJ^{`mOU~K@W1Rz4Q}5Jc@-*_ z&3stl_T}@gdPPoNnNPFV4^jE(gMUcs#;ik_BQr=Uw_}3Jzq0U zyM?@!^4G(mp}|D)>y#Sg4I>#V0*(Mj0?q2&vLQs*04m|DFR>vY!dLz*znm;XTJ^T)R0( z4X#8vT5zH8^ed@wC1Fm51Zl92+CVz?3dhk%VR&tCIq&2ozFMa*#*0CskjeIT+g0 zEqAoPSJ6C`{yg#&amifWmfd-}OCfTNm(HlLyo75GL(`@Znii`}*RHLjaQmTtoId~U z+cUPUGLr`s!{-l;(Hb*9ijOCZt0=A@vGG2W^NFG(DJf~H-(CIsN3#U-B5~h5iU_mY zX+>M6-rO6DMDq)VVg$Qg?1jqnOK%_t3feez(toxR2AzInF~8n~@HvV~UStE9LvhyC zwM@H~H87=bA3wj0DI62|%ymJOPj9SxbwRd{q5bm8nupmX{<%ixmk0F+KL`Z`WKihlKNk)`tNACI3r#*OpB4C|6VD@)z;Mc-_0k&wzF0 z+Vr2~PI!q&&d z^Y|)gC0fp;R7l7zp~Kc(C-{jRaWYnVBsMmEA>Ib2wbbw@2n(x@NTHF1 zO(N2FbR|G{XFMpR)<`lbcXbI&jgrNf0Y#@M8_3F=cBLP3&3y+}X*>5}o^U8iv(Py1 zK^AiVyYq()*TY(2D_c>966SH)6hSKf>sGC*@IonmAnu7tN?vVG)7j)6#-mBGJ^TA+ z*`gm7H; z-|iEA{R|&1rd%-hVN#CAxhKKzeAtGr43Sj?t+})6xr>TwDzPavHnuNakH5Ih2{FD^ zl^;U&28TIXXigxtNt9#1p`f7sgJLbD*DUlPj-T=~ICt(-Jzb!&Pj)Al1ACH2xqn#% z9n{LH^wf3*=eEQieA1Y8zb=!*o>XADO1mn0SI8ykAI(a#^mELBXScfQ9$j5!$=nsB zPdX;o&c2%1Clruhxy5TMDe0Yn0L9aRoU5P~K%RxyTs~FL zjnZ0+DdZ4{%gpkp-yg{j=-F>{YnjJ{q}pn7DNX1<#sicdgz*vzUvJ zj;E|LbNy2M(QSEF?^lj5xS18#5ft9wraeyJqDVe}{uKmPUqLFwPm=H6{~nCf|NLYY zGD(oM?NcYct2>d;!wwOb!*f0 z5D5X?MvS@4cPQZ=&ChLFO1XmY>hQJCginMuXE&CIGiY_VCd3g1WexSjF8F;-B-~e# zXN+jc@9@n*za3{GPA(WLJ;we?4OC_X_!aa};9Gn*;orK~?Yr#HOP1n%jEds!=t>8~ zf%Zr!>3xzN_){9%buwutu=a@poygcq$xHwfQ!#DrWY!ZstUP$y{aOXTUu6eWl=M_o z>=CrV`hKwPF^6+C9tgrboDj-CV~V%;7XKT2+q3YHhHhRr1bnJH@lW`J{C{uU7cuTF zP6Ws&iYo)F%&ajv3OVM8q>BTr0J5`>{r!TdFnJcYrpzb8m9sm}X>fB$9V?y&XFZI< z{_}PA@$uQfa>_nc6F&`794d}FhdC=K&6SmXh!FngUGh%N&#$84GNKiacL^K-?7&cD z*f63o>eKt{<4~cVb4H@{^OB!B#gtJ?65^8o{OmatyP)a(`q?5o$X-bC#2_1Ba82-k ze)cNXGh|A?eipqCtR^J(?Z}Z(?fv};4cj2#Zg9+?3D@_-+yexUl3#GiU*C=w-Xo|6 zf%t6kokTHyS9uSh{uxk$-UQ{H#g!*;hZj1t9~%E&i0`quFHC})>*$En1-}bG0}mR( zJpna#OOf5_;?Q5~@Hw##1iDuni&SFe+pEQJ}s!GB+pl0BsE#$%T< zky8Rx@Zme(p`MkkXK6XQQ$va=;`i$zo|_wP;xOfBjG(2Xf*ZRm>eUfa7tDXE850xu z>os!!8dJjc^Y1|X!0sC+B?d=f#me%X`L&-fVn6Gup>9ULZ=afDDgZJ$F+VXYy91pm zbPbgMei*~a&xQSqKYlbM)_7Js0egWpM;+x{eM5uGSZeaH)~`Ue;UxlDHLPKYgJ0|P z3o}q-$1qpQ*z_?ZQP@cJiNt}9%@=^pcL%y;h`?%zOWq3#Y9T^=`ILBT6a9gXag0?)g&0*;KM*Pi9Nyc z*J~VhMdbuj$Q)xUCw)H{8f{%#tis8D@W;dxd(K}m`xat$lNbtngxC5+Pp@hx>~-oB zPO^AAU~>VBq(g~>I(3^W)A;d1n!i_XJp0V3Qw;-W>cV!_E= zPdSIlp>Csz5r4nO=*NhGsQ>I!2TTQ^ek8g{c%H5F;@{xs_Vq2Dj%wMLrjc^!_z=1ncN;4{BM+J;h=-T zE~ur$T7vvUNkaIh;aT#u{=T&>%IdH$Cay#{1;D*c2`?MPLPk>P??r=%EnxtK88qJ` z#Fa3Wm6+3!l}#OdA)S-$|BlW+t{%0$7KAs_zH-Ne+QO{nBfsRg?Sudf41!_)XJz<6PK`h zjs+NwXgnH|XUMf1QXC=1U=Y37`Z#pZF}mZ}im*6O4PXuT$!cmmG=M0qG@(D6s|ACP z05Iy-tqXg`FDgnklCu0YNum7;UM$cb2)=w}+WWWNQ2vfzUv@nH;)NNC-*;$~aN>J_ zQw!iU;?GTCxXCTUymL%bhqiyml7N+oIarxfxZE6^^`ZC8f(}WneO~_5;=}#?{2G1T z2(#6#_~&ZJfM^Vs18--dc*$S;51oir8?FzMLqpUKov66Dy=V1+ z2H{(7pz<|=C7JQjVQ~PHi2YCQ+4|Fp zkdl*!6*69;D!|+^BEnG4wW@IbK4Y}uvp!~?;r^^`-mh$ zTo;PKfCl~u4mwQ6M4Qnw?%LdaV_7jqvMAs>p`6EY>Y$VH(n_W7XFiki1$dqWbjoN? z1ziP!$f@_ejp!?DVBcu`z%i~r=kyUPt1$r~b5CH&;_kPU=@{6k-#w6`FC~0fWo6gQ z5vn2}Pgvf#-GL&aqwwmGi$agotNW~G26@CNRW`N}0E$ySn&mgQYp=9W(9@UISmW!N zF>oE%6lkY~`wwD60F9915~sAn#7h`;0|D$@0Mw0h3n_^2(1(v78^}uzGm*(}6aRMU zIPh0Xk>86$y8(E3pfN(!1%O~( z0}wxS-$~Xx;0oRG@sV}qpIMeH1)pKw_?D zvlO}5+x*cH#-{w4e}eFFZm8W386YN8Da55;D#L6r+uow>FK)D@7ZvF%QM~&Hk21;1Mcz)>G+NmE zwQwJg0FN+kmGkVN;vhouF(-^pD{dIuU~YOY0plw04$QCXANg|vdlB}AavIw&Uv+Wu z^7N$Tn7Z-+(8UD!npgqM{<0d(UYrOvrBQA_$gg=U(U`CU1#qAB<8J*lt1Z=P0%T||VEj4GA7 zglKqyF93@bd&dK0x!FJn&`mn>*KgLUBVE9TP`Kw2O_FmOtAYNMmOtUmEVwt}5PBnE z;3(Z09w;8cfH7(GrUayuqLuU@#~E>ZXa%Qmlr^t$N<)%#TOE_7E}(3Z+9I;qpc7%b z`5(j@!{3MOqcpfj%}q`M{6zRP(A5p6R|>uaM+6)LcOqmxy}TkKA{y4|zK)S`XXx_w zH8^(cn2k+V?|N+^45i?&uz3CMoir2E^UeG;hp8~m?-R-zWRw2}!7f%7mKRv0m}0Q0 z>ht%DuJ$)!)(l6Ek?2*7~d1lW5E1Zd{0OQV~COQpUJ(>f&(206{tY9yn$Ry|IY0&}+;h|` zD@Vdm^Ec3SodtOL^K3GtM9LH;ZuiL8kS4kkl(GewH_3c^wyyBq6(gX!@UI^6x6y>$ z2cN#?P=nC3;$}anSn4VkFe!n_Ho@#is1q!gpDui$D{i|fX!Pajs#{|?6k&S+mGq?) zlrMaUQgRyBqMY4O;HasSn4ElCAGP1`WC3|@Hb7e`adCa5wbUnFP5&GyGe&lHlNh`O z%w+gp6Kz!$=70pLe%4xM{gxPULN1ykLRaw`DF7uR7jm=d8`ix71Qo;w(5)J#pBV(M zF{_}YqN?Y8l9V?6YL3&?Wk-teDLhQ=t_>(frrBrxKAV_tY)pqTG)~$@m%)MVfi0ZP z$DVDAl2xGr^!B@yxrrewOqWCACCGJeO`)snzC3<%EEvclVNN;-DEp#R8oE(P<#$7@ zh<36r>7K22tePZsQcd)Z=k5IDuQ+Ep#&T+E~nka zg4EY|xeW&$(VmSwpsb|i^y70OR$eFiJ4nNh^=_xd{~`H--!SSuy}XN{%&fi(s=F;? zmw~*2NUfE`4>K|3A|Z$-NPyFyuFO78q8s{xDSoo6pqVOUo(Umo z@Xs&6Nah%LxZotmLKsDmhFK*SnXHBXdnT11nd+O*tV=gZXy2V)nuabOF@kqQvv5r= zQJJvv@Tj3U(W*zX*6_RXMTuQ}rh!T#;EgAo;HGK9z_Gzj>%Y=-0q60Ko(ID@FB!nA z+v$#`Kl6rn2)#gu2(ti`$C_E{YlGN9obc{nGcbyjjK{6xs?+7mmyx$ol<|qlfAZOn z_w)7eKeRh`5cSHtORuF>LfR6t-B23sE$ML)_|;gTNj9%fXhGaKx&VP|eZQOs>C*_~~= zuF@vGe}B;Z`#xSc_&dxm?MO*-D;oVkT`<7IaBW5t#?ohoo~|x`wJo0wpGsbv+?-(` zL~n!k1*l-K_AA8*TK2TdSAvm=$rFayDq+{ZGq}k2al->({4tOPyAWr+pSmWk?@!?I z>77t5PvIRA9)2f{kSw`nU)^*d(wuDKZ9{`$ zw)g5Mrjew)$hZ5Hny;fsVvIQSMG~GKm|i!HFE4z5FXmsL9~qE58Z7#@Ye!~v^yJLU zt`U%Uwn=?E6c&6alk?$;^P*X_nI>IpOREo#X3|) zx87OyRB!XwkO%O)FZkASz%udzNld+b_H*ba<{O1x=OKn8BYXPe-B(nm7P%6e+pglZ zT@*#*U0@vb+9DPlliHDz_NVUdQVMNp1G^a9zMInTv0KI2HV@E(`8$=419%lYlEUGU;N?%vP>j7xup{0Z z%kb$b>lEkuWm7uSY*c%Z_P4$ZZjLz^6#NV@>${|qBbiAeq&tM)1B-B*$a&fP8ilj4 z)W(3cg0wUvEW$1{2vo<%;HqoH$Y$(y6K_=gN@)<*@Z)q z=m++?{rHSrio$&?P<>4?MXTQAW*X5iB+n<|MG(;3WghTVHZ>CFAnUeCof34Hs`&~z zD!dOkbx@s9&2PD&EE6i<*}`gs3aQ=7)%XokH&{or7Ai)yFC@L;7~@=nK0;MEf{V_D zDR*m{^&yJu)Tp*~SO$-N@OLO^tgCw-O^7s9;Nq2Pe%0`N)#Yg|t(4^3SJxfTJ*s2T zfkHT_x&HJ?8gtWHYc#5`c?Ry7=hOVcq}(n!I8g3=Xi8R91%gLk`Xlpmn@$j}{EmQH zuW^4sAxbO)be-$yhlqh}rdelp5O_!xVMBrHMu~+`3T%HrCPnYLZEqja4)keAQk~vo z6e1>G3612tV6e&(E;|)?Du&PXb2_+tb(`qtH^+=WqwX2 zDLG$JEiExYgstuTs~Vm7{B)Hw78V-!1rH<9U?g*a%C3c|9X_e~mHvhpH&JXNs!g98 z^sfx2Z&Yu5u{3$teU}b=GA=YfSfhe_YTE|jo{$)#!#i--LMyU1 zp9_RqayI>a9>Z367(u&S2DZPAkh`H8JoRCB;2k41(=6Y)1+$c{Rfk)Jn@R_(B|IJ! z+Mjpj=Dr04I5NYVe%tAu&UK$3blFPLAD@cjdYI*|)Xl(UAj_H+>)@obXQSLe+{z5c zq`<>R#@x%zk~rxS9v2nuZjsVD>C7Nb_Mr}x&kIYsI~tzv$Xis1+`&H0+l9_GLZo&{wX?^Dw_=b zQ(Lo|Kj4HjDRa_fuA5_BFe~ksOgz4+i7)eZKpN1N4YT;N6 zMw-)Z-+rU_^~;wV^)@)~N?&834-ghSC`2Z>qH=&h`@6@Zor;H_p%o$T$3RbS9C32NvJ|@+xbUfp zfdst4Z^^FR+S9n#aQ>44Rok9$!^%xDnJPCMy&;&6)l$xl^_BlXY4PWXxpK%@9JbmD zAEDm_ivpM*Vy8O6Cj^^d%k9$AAE@w%*7d^@w)bVYX@Rb)`#_l6Yrf{O{y24l7qJQr zu20{9Fi3oxy}uaf;qbe4oUMm1m+59q{;O~B1An=>7)I}R;q7DF7abGBdn9yNe2{J! z@Lkn%4(gbVeWIz<(2U}d_K(1aHZYOkwV(tkQ`SF!O}=a&mfb3HVSTy-jDftm`XDOSq>D;|H>}Iii@xF=g!l$PfM%ZEvV*D>0%K zeH{Y?Ui2e~vitW(YYzmC5zHQMJ^wo-XP@6(4^T*rY!=Yl7Rx?NouY`u{9sB0409Pj zwr`%_;Fdu|XlNeXp9Mymy#{TVc2tLk?po)@y^Ql6iG^;4K9fx}vxZ{fDIH*blHYV9 z0&en5fC78u2?7@Z_UGkk|6Y&7!kZ+kmp2ZJs`yn{cM0xF0=U;Qp1Cz=6yXJ_L?E57 z6wNz9oGXCz&}NN3;HduPV6Gm%y_{SnREVKI9IZ@1OJ}YqC{%$+pW`njH>-ep20giK zZ-^1V@$i}6!9Pk8or(s&UwUs#Bonb1Aw}DRsv#zq=Cs7I&!K>uv#yX@; zeJ?DuJ$~pT@e=ZV|5=93ul=x*1{lNa92`SD7}enu`r?%us|&I#A{ACsj`=R==Fr3 z!KolmMR<$Cd9azASMZfiC%(@SnS4dAev1cugR|&CA!K0iH%3#l|1QzfqOjb({*gX- zkRkOwpgM{*zF%dI*?jO0yau;+B}OdVjIGV*zfdOQY#5}#3V6O9=9+ewA^l`?r`Q|| zA9o$}dBn+vOLT8(rZof}V`8ck>_MT8p7zCy`vv)cx1gUQ@TuN8i73OP6Dkw%T9X{NH|_e`#Ak$t=dZ1o468uvdR;kQSC+# zekDp{0>du9x(hNpcoS}(|Jhq`yA>Rq>SL~T=za1MpRGmG1Zm3xf@d`o7Q@9VL|Xdt ztrdlL#%NKT9pcYF*CNN4PaUkxdPDck*}s~a*WWZ!eM&?{QI|LecuN5dvSBTu|NKFQ z7JgigU*g*jCIkuCkRL5>^ZTno`Cd4^4K>E+&JzUP0;R+MUO??69NK`B?deekc7?;t zK9%PG8jkAEER$@}A|^&UTl16eJt(zrpAw(Q>3^v+wVTCXU9PIG273mdyEmtN2K5k1 zQoaBEqdbso6A?(z9(XEI5&=6V0tk+X{7ruV2WXfi`m7-pkN!8@<(>XLovI*&v@O)j z{^xlc(=gSUXiz35`pDpKIxXXHCpv$#g)a_dN1%Pshl;OwX2XB4 zgZUNOh;aPIMGr#7vm;QE+}d)Sul&Y;-dzZGY8Fy#xT0uNOJ+y7y1F7f4*&1Z)nUG_ z8%AxVHs2_pfq0kSs6g$1FLm74$7d8)ifA+>+Hag|MKXtWu;~BZmzt^IeH4GRd-m|^ ziRVS&%npo<F2uO|Pi@w_IP2DMrdx@iQWSxp`=mWXFej=ieFr(^n`?@Vw( z06h`XC%J0Pa$ut~0MHr|x&CuC*p^)rwQAc}JaZP80{TVhn(b3b|5{Y1zFB@4AOF#P z{;>(s1}wTCf7KF{sK0DJQ_!kAyD3IIZ%px3T+5Bo+gv zHLrlkY40I|A0?m)gpL3C(MC%GUxW)392#mVY3bWlk%M65V3?}T->YYxIw(=OfR3R1 zsiW-1pWWI(-VIH`|NQKQNOVAF_pW|_31<;Dy-)Vq{OGlC6IsfC-kYE3D}r%Az*lfY zvG?FRGTVw85L4&4BGUf;VxEy_aUk%QeX9gdeE3eictQj^a?pblqlJs*JpNjl`aH^rkX`mFnq{ROjQ*5!8BUEi`{(9TJQ*U_o@BfyX980v=xYH_`${}RmPc*{+ z^UKdOrC%Wz>cf1hW!p2^9`aW$kqM(N4*j3&Rlc!Cu7Ju+2Kc?Pro+}zHuLLfI0XIA z-=)22eEBjN+I{d@?LAEBTU7z0i~va;X^r|jh7|S*mjbp1TuJD0e^iiHa(T_P!rqMz zTPmXO@7P#WodkwSwfAg2_5`^VN*r)57722XNxsh02y|{*fqJU+{O5hrzTv^ZE%XYJ zq=s|TCoGo3UGzuWagDk}s=t=yO`}th>o;yh#d44UUoS?F&9?&PAm>5@}b*=qtB1rbg z6cqXL{|-5AZ!E)ugQsTRXn>|U55|?f33-Ye|IujimheKJzo<$ivv!flO=o;KVmEEs z63T6*HtS-ELlqsq|M_*dqfd~rt-==KD(>L?;?e8DcqX7s_d-KiBMeXd6?(>6gwf{z zj8WMfajs^9_lHYpb(c?oQ#cC{e^`s`uN5zQ?fzN7E>43!9QXvoq{%5~`2k>L!CJ^Z zRpi$n`myoy9$ik}^<6n%VXNl+v@d##e!B%8;ajS^ZB8*1ae*vn)Pwp&plast2*`uZ z50Z(9sbtA-@)A~IGCuT)0UxQ+2Exi+1;&MO!)(P(K51R5P$6JtCK_A)&c9D{f)V+y zBtLi~*NuL(;*r4mcCXr~m_J^$f3X0O5_m?c$k>Sy4IL6DB2ThWI{jE&tWSLVJ32%I zHiLWCS>|oKZh(w+63s3}e_A$M74wLzb}yh#eh5YtA#0wNSyz*0b(SE3+3D-w`}Y=J zbUk&K87yC2?q5AD9&j>n&B3|O)1WkpyDb%!aR!;7D1{fuY3CObQc}H^V$u948HgOa zZHo>jQ8|MMM-+)A-N#??WB|;7s_OsVWeSc*Fh8#1g;RWITE_Un*MI;RZ56c1k?C54 zKe6a}3FAhEY{g%Lt-&YQ^TcA?R3Z}Fw?TB*?~Iw7f_wYvGZ?h>lz$%h5eh5DdHJ@^ zXBpV=NaUv!71}ANslD14F|!zQ+gBLOghli@xFD4pbHS{b}}L9AXej1)48-fbevmv{$cR zZ`(->R4p{FWvdvTMIF6b_oXtOb%LbP=b$+ z4C`=TUH~rX>0v#TT)Ff+(9~kpy#?bG1xE4BT3Lim;-2Bmq+T?z)UJ1OKp(BIXJ1i< zejfql2ji_G3e!U-nkq?2NzwmeiLm;W?`fZm5rm}SBv>?1wY$jTXNFO|e#)bG7oTkm5nEg>~rvR(@GibLEjvqU1#80b>o@;&p z7Vf%y;1I~I-;4txqO=NQZxsjUj#@~XXEXUX_% z0e%(COJHU60tc|5Q@PM|W1=3dT&ccs1*W+}o}QkM$T2C)PDnmo;Xqhh%gdJ>jEtwS zR?acCRwKQy<4`M<9Ol5=FxJw7yx`5MfcskV)+WSPGdWCFJ(Wf9?Tk8t6 zr5LN-TO~VCdI>EiY?_Pjrr10)K0L>_BCrMpOzqh6^0M?RDVt+oC{LS*^}l;n2uc5#f&@6rY<;s~=UMDVvv+mxH1)b7Ja|u(5eAWAst&)GKsdA| z;IU$g!Ns%%j{xvdaMF>z3&IsJN~9QOdTc+XL*&`0Y&T8w zZshala)bx0UyQM-mo{2OHaifSh)S^%0rZpr#3x3}k8fkM(aX4%*;I(NSMW^S+IH}n zVc@^FAgB=ST|#jjomJ=y88f6XA8XewEq^Xv-gi&kpW;8K?W3rwfhnfV+$l2JoC}9> zMz#@o+yB?zcSc3IW?f>$>_tT-tK_JnfPe%eNrL3e=0eU6_vfqQ>fYIX6m z*;<@j_aFRlMLI@|mk}|(J)0-q9O{QhP6SV6KS*AG=MUnNJ`0y@Y|_@S_SeMT(9qnp zFMVRyr?v2L+k5W#y7N_KcH5My0N_NpRT8$3lKVuL6`7@pg5v|t1ZFfc$`oPR7XZwP zjzOUd7Ul>NL{k#vh2P)rffa`tMIE3zmnZi{=In)kd z#TjyWqe0(=42sAF!XHvWe#Hp8zb4lbdNjFS^E4&=0N4>@latXZg0Fw)vM_z$@GoI6 zV_51zx^SU@RY240GOI1>V1RrO|3Yn(bolM~zi42dFud}UAh7yW_A7~f!IkJQe9pb} zaZGK>!=G$rj@3w5N$8lZpJDkOzw@CZxaI}HBG!e~kXx1f=WT=xNa|)+@99V3fZ5=h zdfT@ebI0MUJIWurb$3(ilQTC;rUy1+qEYWXmpFVaPStq;!abTSzfYQ(MbIcf34)Cc z8tZ$?FQ3nl|3?lq91e~|1XlOe4NPEs1HtL+>;w`YrheIuG3O=bc}PeULUoRze^s1% zjyg53h>X$Vp-cM4U&&?YM~D(~zbVDSFr((rxo;WjSYHp8$gbA?buj5<%cg}XbZ+LhZ^c_8KW(`1CI2iUV zqrTF63oG(K*D81EFy?qh0vfRo7)eyTB|mJqwUq&xn;wj&^3g#h73 zneJkta5C)fU1BsK*R|2Pvr%{&xDL#RPD@Tc?!-!=-!$iZWzaw$)d991hFI^`Yrg&~ zW-y)h@R&h?j$0I_KffJk8U}$fq|&cmO?dk9C+;&R3T17U#x+?F+G^U`JW(XNq-XzP z{s5|~U}-tgv6FtnTE|Vt*ckSwVWFYBYs2okEzG$mCjlIdZabfgn3(Z^W9!zdF@a|P zy6II?C=UWX0T#r2rJPUUHT||aI4myiFc6#`tI?f$euD)`hMRjaK&u>a}!u=H2$mL_4UODB6bKfiCs@Z&8umC@#2(YVaN5u zf0cpo6T1jksg#Z6we+Q9@1>zx`UC@C4tgq#z)~v6V>%w6sT;qWiisa32QJJ1vYusI zfwei99Yo*7*zPwPWg&zQ6O;j>99{DsPEbah*bhVEsXylqQvtMCM@qb6PDXxZod@-2 z1`B(kB)tZmLj{JKizTJWifwHgMsS%@B zc8!`s_-ky=BN~KeJQB-N{1;W1F8PP_{r*1`9MF;OpT!DNe&q^yy$qHtC{lL#pmrMt zIbmCw;Q8R8!NCr&rIT;^9FT_C({RgQeVL>6otW?__~_Xc<1~~hU$>u5Q(InNUr(@HFxORJ^G62AInPuaNVVGapzWD^ zZu@daVZ%HP-hDU{LBQiER+;lR)tS6wxu{2)i4l4`54+|W)Lv$uZtNU7UV9hJ4Dz~_ z^F2bZe9#p8o^&Ngd)*rs#=puwml~h=6mVZBUDuN#;?4Kl*Bo|Ea0~ga+_Fo)Ihtvjm^1JD1+aND6vgGL5(BQyLtB zR<;jMheXvb+EaI*$KEI}KQ${d((`p~t$Nvw!S>E5`h?rJe?S+8M)RjPJIo?(WtTdq zKhhX63z`thkUle>BES!EC*B@)JUdQVw;7o}fer`ju3}h2M@QWrbA+5L-bQHWZ9{+` zA%+OvNHrC+D-5PsUZ3yh^dNSsI{2veC+BuKyRv{u}k6y&M^pmd0CjjhC-?@q?b1J=&i*WYll*8?g|qw zg?pyMmFcJaD%cm$4;R|IS8s>*pO;l}fYfN!2HK5Lz8!aNKR5}KgKc`XTf*Hh2)ZiI z&$e5nSBqIL5cY`Ft-8}saD$@$4c>F0s3esdjl-5B7VR3*2YP4w$<@|5S?w}0OG4*^}4lMfA{{gA*&?q!lyqZD8#i5;K{nx0 zi)%(0ncsL!@-=uiaTmtgTJGnh#zzizu@pEthrjXVIDApVX@jK7j9ulr)OCw?4ugSN z(d5HLPl=UZseOml8@eJX!xP7M(b1(DVIpTnS-d8bs80v7i9Fv^)|Pftg=O=qEYTdo zyb;K_G0ZMW+zWOMAIiHxJpevsA7VKwJaDJFegqZwd03jEfupRR+N3*BW#Ksx8TbMj z=(}804&x`#{{6`N0Ty*((XFYVCJLJ;J+e~zryDSdV(BNefqBM;t11M4DWGIiHgcWs zjRdX7-oE{OMttZB0%3k`gGT}w^wGpf7C0hiNJLNt^^nkOvB2~z7p(eGyBTSbq}(~MF}U~<&M7|ESGyR znDri|g8fm9+gVry=Y2fQAkAO1l8%m4l?sL!qKsO*KtGHifoRD^lV{l|KTt#J6bBl0Yp^jIfV@8Ze zc|#!3D*G}yWB0neEe?SDHHC0n`3{P-r>Og=)|j|5(+j6_qsF(+8b9=Z1Y2OM3VGk0+(&=fhK=Tj1l|TwJOu zA(5cA5JVVKYPwaft1M&2L#h}}5jeK#xQ9+@U8GgnD-bH$KtPb5vzOoa>%d}-X;xzS z>hsW|3az2VfwBc+LJLl9p0S5LRmsyh0vnbe`3S{XqeUP`Xmv*+SuNi~FA9E6%)wvFMMbdjk(pT{_h$CP zQ^ahT=ifb1M~e>R2fiR!Ybbhw=7m{*ySmP3|2}}mNad(yw`0&8XJd1;ZntnlWUO?u z_Zf?difV*FdT^klN2r3oPWH)3t7d}Xtwqk7!0}yWhae#q<3sO^;(12JHu~iIxd$P# zLhVZG+oKXzif6$dT>TJj4N&;%gck&UP!C_{q&=`LF*i^4pl}cZ)qd# z#)B=UE$>Us`zIPV&*8KQ%Wv(9Q0}M*x;I|d8*_Sra>wC2Vq-BnSH?w2qsPaU_3p;6 zL;E{CKIGOdtsU*#_xwdi*KlHsttexo+}ApRZvkl9=qy+2doXGicknWS_`&}5_6vc0K|Jse};);l)P+Ald?Nd ztZrX=_MM3Iy^rcZI>|B~0C@XJA0EXcX_U@}m;D!rqR7&vgj$K&`tP33~*; z`gq#9+k!AjV7;@$Jy2W1{-df$XE^Mx9vZ7bcGD?4CJ5z1_ETdI%XU#BPF8k#^RzW} zXn(>Me-pr9V{a)vc|E?(Nbc;~BHo0HN1d)hqSJvTfUW*vA*o@sn(xo4lcT=CdqSi) z{*u<5+@P+$qT)MrO&UJ7o%prYm3c0R+RlO-L1}5Pu?P@yE&uo5b*cm^EhRO3pixA!yXe z64kXkT{ws2X;in+VQW^Y>8|URI=Yv8RvgGhdU>MHfJ2-{*wq4lYedt^!G37 zwchdaBBBdw=d(yv*C(4klh%Fms>l0lN6935!;vG>$MH_-=Gp+M!)Vd#(xrJ*|zC} zYz?;ogaI&qHw~c%^mwiY1~DFf}k+%eeLh_Wqr}3vZ6j0pJSi`!MD>py7@_ z3tWMEF!O^!TTBVOZtN7r^JcbvmZWa-0G!VC(?kY`GC3+rByZpGJ(lkP#MelQ*h8iod>!sG_`g(e?1uE zU!mlK*a(}O`*hDfR414EyN)kEhYlQYQ(Na5G|03UDl#5E?=#T7qx}^GxQr1kYas?- zIyyQXa89`W<&}=a2+d4S!(T5~v@78H-SC*0B0Rn#R=|s+-Kcn}Vy>n{jR~&B)hk!< zrnpUde!xofQNpg~U4_c0P6f^xMM;-eRoO#L=CU{aVY9x6Uqu4pUC3OvQ{xEnQrc6| z`Er1u1f?#!m8k!--e`j_@8dD+w$d7#!f>hvAQe(OYJPe+dg5SS^jweNi8ycoRcv!} zGZcnt){oT$(2#@+1mN$eOQT)rQ(@Sm)T_ed)Vy`Gz0qb1V{(hGP<>NBQ;!ips(lqT z3?4Zih0;ckyC;qxhuurajs9@1A=4@KnqmR}G~dAY?(>QE{|C!KbSTKqBf&Y244i_Wd}^KwhYH*QymI ze}xJF2Lu}aq`&{}-j-Wo1&CLaFU1R9sI4wO1p7j6e~}K?pjB;xaLhxtTR%od)^6S$ z?PCvOAC>>CgQhv=krIQ0Azm!bH2n3ZPu`xM1lP-w%mx6VKj?69U|`^_TUAij^A?dV zbCo0WLy<>L$q^4B+=jr0#-zrLvx+Beoa3=B4xlG@=umV2>M9K&&!4bqdOe7q{hgSs z+N#pg*mGBIF%Kl^#mETzVMP_OLYg zS?a`R!1hs&74dsnvhJzBJ1?(kj;ujT!Jdu?o!vJf)J0&iWM^e!l0@?3NX_)SAEnu9 zWQ`sQgtwm%xVZDU3hS!5N*kCnc(ypS@}Ow3yoDZ5cvjVrZAmhH!omer8yg!81!eX7 zu6gd<6OY?xrGWkr<1{FzwU44-s@)9nJ7tyFWn!VZddn@Aqpd(2-wag-PMoNZT$%Mn{M2-2WMrh1rL`j3c1zDJ#Hml$M0`+}hc;H)TB*W(MIe#(G9EHdVL?}M4Ih=YNS z&JDvmpCKi~*-KsCjAm&%z$Ya33LN{FKEfp~K7n3#uGG4=Q#|!Rn{xhsxxDHK?H0}| z$WC=%MR3k|@c0vG4Ol=F*$r>Q%xM?tg`adicWxTW)P_}$%@J6j=?P9w5_O_orW3&B zMC~A{bu3uUO?c@DKxykYWbPwY9o-AZ83YUzf0sZeCN0Zsftd~HZIF{Utg^bUvy)g1 zblu`_{{8pa$XgaFUnUHQVGnMitQ=6>y?W^~V?p>Dgq9-xLE0{1;Vfig*!G$`^!L$j zw2^{x9vB7wGtgu(l!Y}A))V`rL!RL zQC2bTq0COj*~c!=(Gv)&B?%>_kv#?#W4XE zE#5)HD)Ik($Lv_*A}b3^M)2p=;S~*KK0X+yPV#l6-D{E^fC@mnM%$C)LP6o1|znGZP zMbh>xeFHzh0kB3FQJqj$k(#l$2^y!cS&Yrnl~^JVLhGAq!&U$XQlgA(GE-!xy%{6S zk5>lY9Eg9GNLn}q#WIHvLunWj9{xb2#DsP!-HpgBpiRjRZd5{`W#0eKzp>8G4UCO5 zMM_ru=R^4YLa0ngc|#R7HMp)}Ky412bMmx9nprMBN4CZ2pebrJ#0TjOwAqI z^t9VLyB>Yq1WDIaDZ_HujzM&W1j3Pe#qJ;4U44gyo&fn(R8(-^Ck+f*AYvdcJ0T%k zBtw?=V=od2h@PlMr3|g(&^E->8)C>N_9exVQb}8T&F29-f_;v`i)rhr*HQSp0pH=` zI&Pw|VnfF7{dQRuaH#uWepACoscyVn2o;dTU@2=wQ#Q~p{O@{1BEmj_)X;)n;Rc{c z@b^NWg_^^BhIZ|lFgbB*%I^3TK-Hitrxx`mpbbZuW))}h&~_Ew01_x9ij>p+B%}lo zu;pRrK?g+5xof@jT~EQv#M=4Lj`He7dR&qhr zr29CbJQp!;MmHM$0hT$YeY#86O)2d1#sKz=V5v}?(&*1@WIePGR6mmo(My{-7S#8a zH*b0oRH@4!YM_WfZvtNi{y|i9bjGb=cG@F78xDsb2F{ad57f+&6TrwYfVG2w94y^p zmx8GhOlZIf!s>JZ5tdcL$rzy!=s|{v>jv5lba&x2MhBg`h9g2VNZhft0nGrIO}1Ky zrdP3Er+pWx16cETxu!A*2HV%$7vk6pW)>skG(d~#bhPA7+J#YzL7Fl4gnNr0Seykg z$L#CPuft0PDZ#|p7$_+^8P=pHUub7WQno!jW#R007*w2>=(07u$^QU!+U(*dKlG)h zAQPjCD$tHOc@y5TMYL3_u0r?*(s24M`$%Mh5}g+xfEgTB_Qg<;_B1t`D&`i^D}pUK z6|Pwe6n8XQk;YV1Rh77#l#|e;MgxP4APz!t{>W8F+L}%quvl1x8V0A^c~n26gdY^P zH9u$Yn7P1~i`3hG$Yf!diHG&Hs0hi!5ffvT|Nhl7V9dnAgzq?x4e(6`Lf9VCVekt& zT4}+Ze{J1bkARHCEfKJ}iEhS!{&xOGiLN09&{9b-DPvNHVHO7JfU(KI#+D^SF8$AaHfy>2eeT(274HI0*8v-xT4<<0S zdek)2`=zC4!9yDOaPKu%Y*l4tL%zM-(n64mS(G+h217E!P(9}iNK(YKHUy-eBl7Yu z@O+Z9sY0}CJ1c~fRMHCj_?#6;7qIU(vlIW_o95rn(-lw{BV~6Fj};eL)N4O;r=q~( z)+Z~ZoRKpAAtCC@%5@hW^?9?5K}`kb6fp)NV?K;L1-2n91{%iWZqXL9ST?XtKzw`b z5ZnNh#Y&OL$Ve)&6D>|`i zaaU;Du00*Jj*4W!Jc`{)uWW637bE2fP3hu$jI1Urt+PWFk&~MFXdY`3Wnb{_Ic|H8ZvYAmQwYqYW3Yt5J84>{F`HKhTvKkc-L;kFDzOM*k%9RW zsyklrFD)~EYy_Yu!T$cC_v^b}){E}t;!Cf)eHk&Knl|eJapo2(w;LJ;2eK38tlM6pB5LZ zfrN|`7t`B8tyEN0gcdB%@IV?5_#87|Ae_QWL*SjAokhqN>%RW(-8)Ri>7Omt__Lhk zWsMA0SA<14>fkL>GhD zpG2oY7}^hbWK2R3gc5S!`puiw;a7M~M=m5Z-!85j~hLMSSLNrIfG|^qY zv`rUhtg8#qGJ|V^(7OYTAq=Fh`1ZK|GV*L#L_Z0|5$blZ9OEM*z)|5I?>oyyd+*k+ zK$fwev1V)%tC^UY?_vh_4%ypV3jjC}Q!O;Fww6y5rlOXX>60}bR)3DPv#Uivc46ii zG+5UXd%CcZP|#4e(N)7jd<*5yhB`R-5+w!%yW^&rOtibdaRKIY zXac@Fe+iB3OXoN?L_v!L_mILa1Q5KEhLT)E+LLB&0K*gK1>7#~hK1dKU$g8CfsY_; z;a>3KwT2s(GM}>qdjMx}*29O^V2yPR&?#(1|3#u7qhy((=>o zpLElqJ@}zuB!O>WyM@(9y~dmtkL(?=JgJRiCoNNYy58dccNkL6O`RjLJHp-NES3%E z?u6YC9HNV#ZU<>AC@4q<`t{tYoj8YKBu$kQfHj>WO{Fs=C5+*;O3<48HClYMY z9FKCnE3_*W`2qS8xb#w23;tqfUjUO_4DJd@v#@ZTV4H`BU+Bp$*pDqG0krU1YXsWbrVtxTu&$eSt?o{cve5rO>8=v}aZ zZ1LFIrqXB`#O063sgVp*igNuhARf6hFmoxGT(MNt)=t7S2VYeq$UF$8auo<8dZfI% zai-IcJSN*{ ziPydcd~JPQT?2ovAJOH(yN=RY46v|U0Pg?+9v0hHVC16n)0%4?5?BU4Ga{oW5)lAC z;oySF=Ta|7q=9OPTz&H7Nu9u!-M6Yi zX&NlcJW7^NMOyr(ZYN=@n~xM?``K78eDy1EDBGu{Fh>wTgfg9gZR#hF2f zR?zfqWy-i=a8A8vhL9h%s#M6nt55MvsW1Zpyqw)r2uXyI#lVM5rxTt5IzX{Eu3xV; z>|H|3Xs(ZrkL&bTNx-ipoa;7Sy#kk7UiuuGz&+)7<6r`{mzOJ;eZr`0Hc^Y46^E}z zr~BC2ri*ui9_`ra+|S>di<#t-^9JjLO%MdE$v;@GPnhWveslzUx5&ln7;W1KK+3@b=o;Q55qG{4I&ayfD`Rrpi_ zp}O_;tIhoEmaO2mmN?3I)~34xaVglHsGg%|LPoD(LGhHt=8_Ur8P!6$2P=Vj=re`D z(`5u%_gx2tr1-3_kgNhrh6{ZZjt)UnCg-@+W`()P769 zkvaJU(MY%4ve$KFSQwp!Sd0v;N(fadJ2gKjm-0FHRG*xQ=Qu@AFUyd-0|qz^Xk8%H z)bh)IyqFUOwVjq^TC~#?48!)CyMO(#+W`8AmKQHx!1snQWB{$`l#kXOp=xdE^w@FpT8jDD`Ee*d1Z zM1La@ajL-j$AyG{$Uia>dHk<|q-QTzxnlbCEqV8RRAc&P^$S(h9(i`3xe?S3&c%LU zOU!jG&L{TT)$JsL|M}qFq~43%64v7+A$mb3-wWc_1BYV;;`aC@lhEW4e&m4OJ6M}P zA0jCpBO3G1^8msAx_*_Y8|mNu*?l!*HM?CnsJBp;-1E^6i9c3vAoDr^xx@kwf$>f4 z2%l!#LaMx!o1B~srHF>6#_W7WU7aTX{y|sSJjUyr*f3p0Wxi0*(rZw9_4n#-N0~R; zp9}yvpbNBN&6?ZgFi=2&9&+&Nc3(m?0Ad`3_gpLTlj!kHTC*2x ziC)rp$8)cef_IJgT3Q2yTNS#=Ze>fj(*q?9r44DheX)aRxv67RWnMj@8CAM~PCoqZ zup$qpl6#z*`EXQYVn{54p6p%(C# z{U{?LEAaMx6%{_tg!j;CriRYHBN{G2n`2?L<(f;fOJM86>y@E~|9$t;=mWc6c<=f~ zE4dkcD;!;X9o+GI7ttunnrOPrY%AWftmS^(G_FQTgo+PaJFunZ@J2D*iHSiiuU=I0 zr&sRm(A7uWua3*P=>&Pa>TVv;FJ~tIYCiY7jT`fF$F^;0Rn=upyjo*;2{v7aO_?Hn z0t&tnouu`d>2p-z`=MdUSUOkJwOz=r+~9W?i`3*O6X$uaB`xq z(~WU9S;49clUqV2_+^+*n3jeP<>2-%;n!!%4=m5Gf~tft_5i5Y*`h;3s?M%KlI21o zQOX49&R*K$jVOpx>uFGkZ~D7GwfwKtcRM@#P+uP!zez+wixxv4rm|r_5OvPv$RG_9 zJ`{yI2|kH$(UV1Kh~5G9JIm7y6dpVh{g9VB&#w5}frjB6N&^P-TXP08X~lT|6>s4J zm9YN|>@Leuj#8xa@6w(mYb$bW_~#(2hN=m@$n5tuzIP)M6U)F{Dw>B)K}>Y?!_N36 z98yCX}60*>Uc} zjX>k!j~9-T7k_j^oYT{|4&MZ!k4HacAFaT2M9&^wI5-FL=1!nJkJpBRl4QEMIWjbq zVf*&Jp`mQAmSZq1@JM8OLwlkdFwzlBJd}%;;(HCAVt0e7MS8yZ4h+sk4D%G77~#-} zelN>nYN8IU46-JgnaC

*`od;}M8og!eGk_| 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 This project is currently in early development. Features and APIs are subject to frequent changes. - ---- - -## Project Overview - -### Goal - -To assist learners by: -- Automatically determining the prerequisites for any given concept using a structured knowledge graph. -- Using an agentic AI workflow to generate **diagnostic assessments** tailored to those prerequisites. -- Encouraging mastery learning by identifying gaps before a learner advances. - ---- - -## How to Run the Project - -### 1. Clone the Repository - -### 2. Add Your Hugging Face Token - -* Create a `.env` file in the **`backend/`** directory. -* Add the following line to the `.env` file: - -```env -HF_TOKEN=your_hugging_face_token_here -MONGO_URI=mongodb://localhost:27017/agenticAI -``` - -> Make sure the `.env` file is located inside the `backend/` folder. - ---- - -### 3. Start the Application - -#### In Terminal 1 (Frontend) - -```bash -cd frontend -npm install -npm start -``` - -This will launch the frontend on [http://localhost:3000](http://localhost:3000) - -#### In Terminal 2 (Backend) - -```bash -cd backend -npm install -npm start -``` - ---- - -## What Happens Now - -* Enter a topic (concept) in the input field on the website. -* The system will: - - * Use the Hugging Face model to generate questions based on the concept. - * Display the generated questions in the **backend terminal** and on the **web interface**. - ---- - -## Documentation - -* UML diagrams for the system architecture and flow are available in the `Documentation/` folder. - ---- - -## 🛠 Tech Stack - -* **Frontend**: React (TypeScript) -* **Backend**: Node.js + Express -* **Database**: MongoDB -* **AI/LLM**: Hugging Face Model (via API) -* **Agent Framework**: LangGraph (planned) diff --git a/project-beta/backend/package-lock.json b/project-beta/backend/package-lock.json deleted file mode 100644 index f776b1a35..000000000 --- a/project-beta/backend/package-lock.json +++ /dev/null @@ -1,1954 +0,0 @@ -{ - "name": "backend", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "backend", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@huggingface/inference": "^4.0.3", - "axios": "^1.9.0", - "cors": "^2.8.5", - "dotenv": "^16.5.0", - "express": "^5.1.0", - "mongoose": "^8.15.1", - "tsconfig-paths": "^4.2.0" - }, - "devDependencies": { - "@types/cors": "^2.8.19", - "@types/express": "^5.0.3", - "@types/node": "^24.0.0", - "nodemon": "^3.1.10", - "ts-node": "^10.9.2", - "typescript": "^5.8.3" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@huggingface/inference": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@huggingface/inference/-/inference-4.0.3.tgz", - "integrity": "sha512-TE1IvY+4DQJhjpJsFdBqDHu0Jg+p/+9G5UmW3hmLBcUJzy7P4J0yZky+VFniSVxI8dFA4eKKcW8/uYD+yZM9NA==", - "license": "MIT", - "dependencies": { - "@huggingface/jinja": "^0.5.0", - "@huggingface/tasks": "^0.19.12" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@huggingface/jinja": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.0.tgz", - "integrity": "sha512-Ptc03/jGRiYRoi0bUYKZ14MkDslsBRT24oxmsvUlfYrvQMldrxCevhPnT+hfX8awKTT8/f/0ZBBWldoeAcMHdQ==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@huggingface/tasks": { - "version": "0.19.13", - "resolved": "https://registry.npmjs.org/@huggingface/tasks/-/tasks-0.19.13.tgz", - "integrity": "sha512-OzIvUQNtvcTCDvGcbeav8+fZPDvpwBOFRlXxIuH8Vk7jHVJEFxzYzfRJ+1fAGmEBaRNueI2CcnbR97Sc6meSKA==", - "license": "MIT" - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", - "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==", - "license": "MIT", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.19", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", - "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", - "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.0.tgz", - "integrity": "sha512-yZQa2zm87aRVcqDyH5+4Hv9KYgSdgwX1rFnGvpbzMaC7YAljmhBET93TPiTd3ObwTL+gSpIzPKg5BqVxdCvxKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.8.0" - } - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" - }, - "node_modules/@types/whatwg-url": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", - "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "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/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "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", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bson": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", - "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "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/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "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/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, - "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/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "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/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "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/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "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/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/form-data/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "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/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "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/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "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/http-errors/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/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-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true, - "license": "ISC" - }, - "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-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "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/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kareem": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", - "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "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/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" - }, - "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/minimatch": { - "version": "3.1.2", - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mongodb": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.16.0.tgz", - "integrity": "sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.3", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", - "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "license": "Apache-2.0", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^14.1.0 || ^13.0.0" - } - }, - "node_modules/mongoose": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.15.1.tgz", - "integrity": "sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==", - "license": "MIT", - "dependencies": { - "bson": "^6.10.3", - "kareem": "2.6.3", - "mongodb": "~6.16.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "17.1.3" - }, - "engines": { - "node": ">=16.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "license": "MIT", - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "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/nodemon": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", - "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "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" - } - }, - "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/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "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/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "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/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/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "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/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "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/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/sift": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "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/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", - "dev": true, - "license": "MIT" - }, - "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/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "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/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "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" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - } - } -} diff --git a/project-beta/backend/package.json b/project-beta/backend/package.json deleted file mode 100644 index 69a4fb57a..000000000 --- a/project-beta/backend/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "backend", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "start": "ts-node -r tsconfig-paths/register src/index.ts", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "dependencies": { - "@huggingface/inference": "^4.0.3", - "axios": "^1.9.0", - "cors": "^2.8.5", - "dotenv": "^16.5.0", - "express": "^5.1.0", - "mongoose": "^8.15.1", - "tsconfig-paths": "^4.2.0" - }, - "devDependencies": { - "@types/cors": "^2.8.19", - "@types/express": "^5.0.3", - "@types/node": "^24.0.0", - "nodemon": "^3.1.10", - "ts-node": "^10.9.2", - "typescript": "^5.8.3" - } -} diff --git a/project-beta/backend/src/conceptGraph.json b/project-beta/backend/src/conceptGraph.json deleted file mode 100644 index 130217299..000000000 --- a/project-beta/backend/src/conceptGraph.json +++ /dev/null @@ -1,993 +0,0 @@ -{ - "Vectors": { - "prereqs": [], - "children": [ - "Dot Product", - "Vector Addition", - "Matrix Operations", - "Distance Metrics" - ], - "description": "A mathematical object representing magnitude and direction; basis for many ML operations.", - "difficulty": "easy" - }, - "Dot Product": { - "prereqs": [ - "Vectors" - ], - "children": [ - "Distance Metrics", - "Cosine Similarity", - "Attention Mechanism" - ], - "description": "An operation that multiplies two vectors element-wise and sums the result; used to measure similarity.", - "difficulty": "easy" - }, - "Vector Addition": { - "prereqs": [ - "Vectors" - ], - "children": [], - "description": "The component-wise sum of two vectors; fundamental for linear algebra.", - "difficulty": "easy" - }, - "Matrix Operations": { - "prereqs": [ - "Vectors" - ], - "children": [ - "Matrix Algebra", - "Convolution Operation" - ], - "description": "Basic operations on matrices such as addition, multiplication, transpose and inverse.", - "difficulty": "easy" - }, - "Matrix Algebra": { - "prereqs": [ - "Matrix Operations" - ], - "children": [ - "Linear Regression", - "PCA", - "SVD", - "Convex Optimization", - "Backpropagation", - "Jacobian" - ], - "description": "Study of matrices, their properties, and how to manipulate them; essential for many ML algorithms.", - "difficulty": "medium" - }, - "SVD": { - "prereqs": [ - "Matrix Algebra" - ], - "children": [ - "PCA" - ], - "description": "Singular Value Decomposition: factorizes a matrix into singular vectors and values; used in dimensionality reduction.", - "difficulty": "medium" - }, - "Derivatives": { - "prereqs": [], - "children": [ - "Chain Rule", - "Partial Derivatives" - ], - "description": "Rate of change of a function; foundational for optimization and calculus-based algorithms.", - "difficulty": "easy" - }, - "Chain Rule": { - "prereqs": [ - "Derivatives" - ], - "children": [ - "Backpropagation" - ], - "description": "Calculus rule for computing the derivative of a composite function; critical for neural network training.", - "difficulty": "medium" - }, - "Partial Derivatives": { - "prereqs": [ - "Derivatives" - ], - "children": [ - "Gradient Descent" - ], - "description": "Derivative of a multivariable function with respect to one variable, holding others constant.", - "difficulty": "medium" - }, - "Gradient Descent": { - "prereqs": [ - "Partial Derivatives" - ], - "children": [ - "Linear Regression", - "Logistic Regression", - "Neural Networks", - "Gradient Boosting" - ], - "description": "An optimization algorithm that iteratively adjusts parameters to minimize a loss function.", - "difficulty": "medium" - }, - "Probability Basics": { - "prereqs": [], - "children": [ - "Bayes' Theorem", - "Probability Distributions", - "Naive Bayes", - "MDP", - "KL Divergence" - ], - "description": "Fundamental probability concepts including random variables, events, and basic distributions.", - "difficulty": "easy" - }, - "Bayes' Theorem": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "Naive Bayes", - "Gibbs Sampling" - ], - "description": "A formula that relates conditional probabilities; forms the basis of Bayesian inference.", - "difficulty": "medium" - }, - "Probability Distributions": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "Gaussian Distribution", - "Multinomial Distribution", - "Dirichlet Distribution" - ], - "description": "Functions that describe the likelihood of different outcomes in a random process.", - "difficulty": "medium" - }, - "Gaussian Distribution": { - "prereqs": [ - "Probability Distributions" - ], - "children": [ - "Gaussian Mixture Models" - ], - "description": "A continuous probability distribution characterized by its bell-shaped curve; common in statistics.", - "difficulty": "medium" - }, - "Multinomial Distribution": { - "prereqs": [ - "Probability Distributions" - ], - "children": [ - "Naive Bayes" - ], - "description": "Generalization of the binomial distribution for multiple categories; used in classification tasks.", - "difficulty": "medium" - }, - "Dirichlet Distribution": { - "prereqs": [ - "Probability Distributions" - ], - "children": [ - "LDA (Topic Model)" - ], - "description": "A family of continuous multivariate probability distributions used as priors in Bayesian models.", - "difficulty": "hard" - }, - "Statistics Basics": { - "prereqs": [], - "children": [ - "Mean & Variance", - "Hypothesis Testing", - "Weight Initialization" - ], - "description": "Basic statistical measures and tests used for data analysis.", - "difficulty": "easy" - }, - "Mean & Variance": { - "prereqs": [ - "Statistics Basics" - ], - "children": [ - "MSE", - "PCA" - ], - "description": "Mean is the average of data; variance measures spread around the mean.", - "difficulty": "easy" - }, - "Hypothesis Testing": { - "prereqs": [ - "Statistics Basics" - ], - "children": [], - "description": "Procedure for testing an assumption about a population parameter based on sample data.", - "difficulty": "medium" - }, - "Calculus Basics": { - "prereqs": [], - "children": [ - "Derivatives", - "Integrals" - ], - "description": "Foundational calculus concepts including limits, derivatives, and integrals.", - "difficulty": "easy" - }, - "Integrals": { - "prereqs": [ - "Calculus Basics" - ], - "children": [], - "description": "Calculus operation that computes area under a curve; less directly used in basic ML but foundational.", - "difficulty": "medium" - }, - "Linear Regression": { - "prereqs": [ - "Matrix Algebra", - "Derivatives", - "Mean & Variance" - ], - "children": [ - "Logistic Regression", - "Ridge Regression", - "Lasso Regression" - ], - "description": "A regression method modeling the relationship between a dependent variable and one or more independent variables.", - "difficulty": "medium" - }, - "Ridge Regression": { - "prereqs": [ - "Linear Regression" - ], - "children": [], - "description": "An extension of linear regression that adds L2 penalty for regularization.", - "difficulty": "medium" - }, - "Lasso Regression": { - "prereqs": [ - "Linear Regression" - ], - "children": [], - "description": "An extension of linear regression that adds L1 penalty for feature selection and sparsity.", - "difficulty": "medium" - }, - "Logistic Regression": { - "prereqs": [ - "Linear Regression", - "Probability Basics", - "Gradient Descent", - "Softmax" - ], - "children": [ - "SVM" - ], - "description": "A classification algorithm modeling the probability of class membership using the logistic function.", - "difficulty": "medium" - }, - "Softmax": { - "prereqs": [ - "Exponents", - "Summation" - ], - "children": [ - "Logistic Regression", - "Attention Mechanism" - ], - "description": "Function that converts raw scores into probability distributions over multiple classes.", - "difficulty": "medium" - }, - "Exponents": { - "prereqs": [ - "Algebra" - ], - "children": [ - "Softmax" - ], - "description": "Operation indicating repeated multiplication; used in various ML formulas.", - "difficulty": "easy" - }, - "Summation": { - "prereqs": [ - "Algebra" - ], - "children": [ - "Softmax" - ], - "description": "Notation for adding a sequence of numbers or expressions; common in loss functions.", - "difficulty": "easy" - }, - "Algebra": { - "prereqs": [], - "children": [ - "Exponents", - "Summation" - ], - "description": "Branch of mathematics dealing with symbols and the rules for manipulating them.", - "difficulty": "easy" - }, - "SVM": { - "prereqs": [ - "Logistic Regression", - "Convex Optimization", - "Quadratic Programming" - ], - "children": [], - "description": "Support Vector Machine: classification algorithm that finds the optimal separating hyperplane.", - "difficulty": "hard" - }, - "Convex Optimization": { - "prereqs": [ - "Calculus Basics", - "Matrix Algebra" - ], - "children": [ - "SVM", - "Quadratic Programming" - ], - "description": "Field of optimization where the objective function is convex, ensuring global minima.", - "difficulty": "hard" - }, - "Quadratic Programming": { - "prereqs": [ - "Convex Optimization" - ], - "children": [ - "SVM" - ], - "description": "Optimization of a quadratic objective function subject to linear constraints; used in SVM training.", - "difficulty": "hard" - }, - "Decision Trees": { - "prereqs": [ - "Statistics Basics", - "Entropy" - ], - "children": [ - "Random Forest", - "Gradient Boosting", - "AdaBoost" - ], - "description": "A tree-like model for making decisions by splitting data based on feature values.", - "difficulty": "medium" - }, - "Entropy": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "Decision Trees", - "Information Gain" - ], - "description": "A measure from information theory quantifying uncertainty in a random variable.", - "difficulty": "medium" - }, - "Information Gain": { - "prereqs": [ - "Entropy" - ], - "children": [ - "Decision Trees" - ], - "description": "Reduction in entropy achieved by partitioning data according to a given attribute; guides tree splits.", - "difficulty": "medium" - }, - "Random Forest": { - "prereqs": [ - "Decision Trees", - "Bagging" - ], - "children": [ - "XGBoost", - "LightGBM", - "CatBoost" - ], - "description": "An ensemble method that builds multiple decision trees and averages their predictions.", - "difficulty": "medium" - }, - "Bagging": { - "prereqs": [ - "Decision Trees" - ], - "children": [ - "Random Forest" - ], - "description": "Bootstrap Aggregating: ensemble technique that trains models on random subsets and averages results.", - "difficulty": "medium" - }, - "Gradient Boosting": { - "prereqs": [ - "Decision Trees", - "Gradient Descent" - ], - "children": [ - "XGBoost", - "LightGBM", - "CatBoost" - ], - "description": "Ensemble technique that sequentially adds weak learners to correct errors of previous models.", - "difficulty": "hard" - }, - "XGBoost": { - "prereqs": [ - "Gradient Boosting", - "Regularization" - ], - "children": [], - "description": "Extreme Gradient Boosting: optimized and regularized implementation of gradient boosting.", - "difficulty": "hard" - }, - "LightGBM": { - "prereqs": [ - "Gradient Boosting" - ], - "children": [], - "description": "Gradient boosting framework focused on scalability and speed using histogram-based algorithms.", - "difficulty": "hard" - }, - "CatBoost": { - "prereqs": [ - "Gradient Boosting" - ], - "children": [], - "description": "Gradient boosting library that handles categorical features automatically.", - "difficulty": "hard" - }, - "AdaBoost": { - "prereqs": [ - "Decision Trees", - "Weighted Sampling" - ], - "children": [], - "description": "Adaptive Boosting: ensemble method that adjusts sample weights to focus on difficult cases.", - "difficulty": "hard" - }, - "Weighted Sampling": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "AdaBoost" - ], - "description": "Technique for sampling data points with different probabilities, used in boosting methods.", - "difficulty": "medium" - }, - "KMeans": { - "prereqs": [ - "Vectors", - "Distance Metrics" - ], - "children": [ - "GMM" - ], - "description": "A clustering algorithm that partitions data into K clusters by minimizing within-cluster variance.", - "difficulty": "medium" - }, - "Distance Metrics": { - "prereqs": [ - "Dot Product" - ], - "children": [ - "KMeans", - "KNN", - "Hierarchical Clustering", - "DBSCAN" - ], - "description": "Functions that quantify similarity or dissimilarity between data points, e.g., Euclidean distance.", - "difficulty": "easy" - }, - "KNN": { - "prereqs": [ - "Distance Metrics" - ], - "children": [], - "description": "k-Nearest Neighbors: classification/regression method that predicts based on closest training examples.", - "difficulty": "easy" - }, - "GMM": { - "prereqs": [ - "Gaussian Distribution", - "EM Algorithm" - ], - "children": [], - "description": "Gaussian Mixture Model: probabilistic model representing data as a mixture of Gaussian components.", - "difficulty": "hard" - }, - "EM Algorithm": { - "prereqs": [ - "Bayes' Theorem", - "Derivatives" - ], - "children": [ - "GMM" - ], - "description": "Expectation-Maximization: iterative approach to find maximum likelihood estimates with latent variables.", - "difficulty": "hard" - }, - "Hierarchical Clustering": { - "prereqs": [ - "Distance Metrics" - ], - "children": [], - "description": "Clustering method that builds a hierarchy of clusters using linkage criteria.", - "difficulty": "medium" - }, - "DBSCAN": { - "prereqs": [ - "Distance Metrics" - ], - "children": [], - "description": "Density-Based Spatial Clustering: groups points that are closely packed, marking outliers as noise.", - "difficulty": "hard" - }, - "PCA": { - "prereqs": [ - "Matrix Algebra", - "Mean & Variance", - "SVD" - ], - "children": [], - "description": "Principal Component Analysis: dimensionality reduction technique using eigenvectors of covariance matrix.", - "difficulty": "medium" - }, - "KL Divergence": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "t-SNE", - "VAE" - ], - "description": "Kullback-Leibler divergence: measure of how one probability distribution diverges from another.", - "difficulty": "hard" - }, - "t-SNE": { - "prereqs": [ - "Probability Basics", - "KL Divergence" - ], - "children": [], - "description": "t-Distributed Stochastic Neighbor Embedding: nonlinear dimensionality reduction technique for visualization.", - "difficulty": "hard" - }, - "ICA": { - "prereqs": [ - "Statistics Basics" - ], - "children": [], - "description": "Independent Component Analysis: separates a multivariate signal into additive independent sources.", - "difficulty": "hard" - }, - "LDA (Topic Model)": { - "prereqs": [ - "Dirichlet Distribution", - "Gibbs Sampling" - ], - "children": [], - "description": "Latent Dirichlet Allocation: generative probabilistic model for discovering topics in documents.", - "difficulty": "hard" - }, - "Gibbs Sampling": { - "prereqs": [ - "Markov Chains", - "Probability Basics" - ], - "children": [ - "LDA (Topic Model)" - ], - "description": "A Markov Chain Monte Carlo algorithm for sampling from a multivariate probability distribution.", - "difficulty": "hard" - }, - "NMF": { - "prereqs": [ - "Matrix Algebra" - ], - "children": [], - "description": "Non-Negative Matrix Factorization: decomposes a matrix into non-negative factors for feature extraction.", - "difficulty": "medium" - }, - "Perceptron": { - "prereqs": [ - "Linear Algebra" - ], - "children": [ - "Neural Networks" - ], - "description": "Basic unit of a neural network that computes a weighted sum of inputs and applies a step function.", - "difficulty": "easy" - }, - "Neural Networks": { - "prereqs": [ - "Perceptron", - "Backpropagation", - "Gradient Descent" - ], - "children": [ - "CNN", - "RNN", - "GAN", - "VAE", - "Normalizing Flows", - "Sequence-to-Sequence" - ], - "description": "Computational models inspired by biological neural networks; used for a wide range of learning tasks.", - "difficulty": "hard" - }, - "Backpropagation": { - "prereqs": [ - "Chain Rule", - "Matrix Multiplication" - ], - "children": [ - "Neural Networks" - ], - "description": "Algorithm for training neural networks by propagating the error gradient backward through the network.", - "difficulty": "hard" - }, - "Matrix Multiplication": { - "prereqs": [ - "Matrix Operations" - ], - "children": [ - "Backpropagation", - "Convolution Operation" - ], - "description": "Operation of multiplying two matrices; fundamental in many ML computations.", - "difficulty": "easy" - }, - "Activation Functions": { - "prereqs": [ - "Derivatives" - ], - "children": [ - "Neural Networks" - ], - "description": "Functions (e.g., sigmoid, ReLU) that introduce non-linearity into neural networks.", - "difficulty": "medium" - }, - "Weight Initialization": { - "prereqs": [ - "Statistics Basics" - ], - "children": [ - "Neural Networks" - ], - "description": "Methods for initializing neural network weights to improve training convergence (e.g., Xavier, He).", - "difficulty": "medium" - }, - "Regularization": { - "prereqs": [ - "Linear Algebra" - ], - "children": [ - "Neural Networks", - "XGBoost" - ], - "description": "Techniques (e.g., L1, L2) that penalize model complexity to prevent overfitting.", - "difficulty": "medium" - }, - "Dropout": { - "prereqs": [ - "Neural Networks" - ], - "children": [], - "description": "Regularization technique that randomly drops units during training to prevent co-adaptation.", - "difficulty": "medium" - }, - "Batch Normalization": { - "prereqs": [ - "Statistics Basics", - "Neural Networks" - ], - "children": [], - "description": "Technique to normalize layer inputs during training, which speeds up convergence and stabilizes learning.", - "difficulty": "hard" - }, - "CNN": { - "prereqs": [ - "Neural Networks", - "Convolution Operation" - ], - "children": [], - "description": "Convolutional Neural Network: architecture designed for processing grid-like data (e.g., images).", - "difficulty": "hard" - }, - "Convolution Operation": { - "prereqs": [ - "Matrix Multiplication" - ], - "children": [ - "CNN" - ], - "description": "Mathematical operation combining two functions to produce a third; in CNNs, used to extract features.", - "difficulty": "medium" - }, - "Pooling": { - "prereqs": [ - "CNN" - ], - "children": [], - "description": "Downsampling operation in CNNs (e.g., max pooling) that reduces spatial dimensions.", - "difficulty": "medium" - }, - "RNN": { - "prereqs": [ - "Neural Networks" - ], - "children": [ - "LSTM", - "GRU" - ], - "description": "Recurrent Neural Network: processes sequential data by maintaining a hidden state across time steps.", - "difficulty": "hard" - }, - "LSTM": { - "prereqs": [ - "RNN" - ], - "children": [], - "description": "Long Short-Term Memory: RNN variant that uses gates to handle long-range dependencies.", - "difficulty": "hard" - }, - "GRU": { - "prereqs": [ - "RNN" - ], - "children": [], - "description": "Gated Recurrent Unit: a simplified RNN variant with fewer gates than LSTM.", - "difficulty": "hard" - }, - "Sequence-to-Sequence": { - "prereqs": [ - "RNN", - "Attention Mechanism" - ], - "children": [], - "description": "Architecture for tasks like translation, where an encoder RNN maps input to a context and a decoder produces output.", - "difficulty": "hard" - }, - "Attention Mechanism": { - "prereqs": [ - "Dot Product", - "Softmax" - ], - "children": [ - "Sequence-to-Sequence", - "Transformers" - ], - "description": "Technique that allows models to focus on relevant parts of the input sequence when producing each output element.", - "difficulty": "hard" - }, - "Transformers": { - "prereqs": [ - "Attention Mechanism", - "Positional Encoding" - ], - "children": [], - "description": "Neural architecture based entirely on self-attention mechanisms; state-of-the-art for many NLP tasks.", - "difficulty": "hard" - }, - "Positional Encoding": { - "prereqs": [ - "Sinusoidal Functions" - ], - "children": [ - "Transformers" - ], - "description": "Method to inject information about token positions in a sequence into transformer models.", - "difficulty": "medium" - }, - "Sinusoidal Functions": { - "prereqs": [ - "Trigonometry" - ], - "children": [ - "Positional Encoding" - ], - "description": "Trigonometric functions (sine, cosine) used to generate positional encodings.", - "difficulty": "easy" - }, - "Trigonometry": { - "prereqs": [], - "children": [ - "Sinusoidal Functions" - ], - "description": "Branch of mathematics dealing with angles and functions like sine and cosine.", - "difficulty": "easy" - }, - "GAN": { - "prereqs": [ - "Neural Networks" - ], - "children": [], - "description": "Generative Adversarial Network: two-network model where a generator and discriminator compete to improve generation quality.", - "difficulty": "hard" - }, - "VAE": { - "prereqs": [ - "Neural Networks", - "KL Divergence" - ], - "children": [], - "description": "Variational Autoencoder: generative model that imposes a probabilistic latent space using variational inference.", - "difficulty": "hard" - }, - "Normalizing Flows": { - "prereqs": [ - "Probability Basics", - "Jacobian" - ], - "children": [], - "description": "Family of generative models that transform a simple distribution into a complex one via invertible mappings.", - "difficulty": "hard" - }, - "Jacobian": { - "prereqs": [ - "Matrix Algebra", - "Derivatives" - ], - "children": [ - "Normalizing Flows" - ], - "description": "Matrix of all first-order partial derivatives of a vector-valued function; used in change-of-variable formula.", - "difficulty": "hard" - }, - "MDP": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "Q-Learning", - "Policy Gradient" - ], - "description": "Markov Decision Process: framework for reinforcement learning problems defining states, actions, and rewards.", - "difficulty": "medium" - }, - "Q-Learning": { - "prereqs": [ - "MDP" - ], - "children": [ - "DQN" - ], - "description": "Off-policy reinforcement learning algorithm that learns a Q-function estimating action values.", - "difficulty": "medium" - }, - "DQN": { - "prereqs": [ - "Q-Learning", - "Neural Networks" - ], - "children": [], - "description": "Deep Q-Network: extension of Q-learning that uses a neural network to approximate the Q-function.", - "difficulty": "hard" - }, - "Policy Gradient": { - "prereqs": [ - "MDP", - "Monte Carlo Methods" - ], - "children": [ - "Actor-Critic", - "PPO" - ], - "description": "Reinforcement learning approach that directly optimizes a parameterized policy using gradient ascent.", - "difficulty": "hard" - }, - "Monte Carlo Methods": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "Policy Gradient" - ], - "description": "Simulation-based methods for approximating expectations by averaging random samples.", - "difficulty": "medium" - }, - "Actor-Critic": { - "prereqs": [ - "Policy Gradient" - ], - "children": [], - "description": "Hybrid RL approach combining value-based and policy-based methods, using separate actor and critic networks.", - "difficulty": "hard" - }, - "PPO": { - "prereqs": [ - "Policy Gradient" - ], - "children": [], - "description": "Proximal Policy Optimization: stable and efficient policy-gradient method with clipped objective functions.", - "difficulty": "hard" - }, - "Markov Chains": { - "prereqs": [ - "Probability Basics" - ], - "children": [ - "Gibbs Sampling", - "MDP" - ], - "description": "Mathematical system that undergoes transitions between states with certain probabilities.", - "difficulty": "medium" - }, - "Evaluation Metrics": { - "prereqs": [], - "children": [ - "Accuracy", - "Precision", - "Recall", - "F1-Score", - "ROC AUC", - "MSE", - "RMSE", - "R2" - ], - "description": "Metrics used to evaluate performance of ML models in classification and regression tasks.", - "difficulty": "easy" - }, - "Accuracy": { - "prereqs": [ - "Evaluation Metrics" - ], - "children": [], - "description": "Proportion of correctly classified instances among all instances.", - "difficulty": "easy" - }, - "Precision": { - "prereqs": [ - "Evaluation Metrics" - ], - "children": [], - "description": "Proportion of true positive predictions among all positive predictions.", - "difficulty": "medium" - }, - "Recall": { - "prereqs": [ - "Evaluation Metrics" - ], - "children": [], - "description": "Proportion of true positive predictions among all actual positives.", - "difficulty": "medium" - }, - "F1-Score": { - "prereqs": [ - "Precision", - "Recall" - ], - "children": [], - "description": "Harmonic mean of precision and recall; balances both metrics.", - "difficulty": "medium" - }, - "ROC AUC": { - "prereqs": [ - "Evaluation Metrics" - ], - "children": [], - "description": "Area under the Receiver Operating Characteristic curve; measures classification performance across thresholds.", - "difficulty": "medium" - }, - "MSE": { - "prereqs": [ - "Mean & Variance" - ], - "children": [ - "Linear Regression" - ], - "description": "Mean Squared Error: average squared difference between predicted and actual values.", - "difficulty": "easy" - }, - "RMSE": { - "prereqs": [ - "MSE" - ], - "children": [], - "description": "Root Mean Squared Error: square root of MSE, interpretable in original units.", - "difficulty": "medium" - }, - "R2": { - "prereqs": [ - "Evaluation Metrics" - ], - "children": [], - "description": "Coefficient of determination: proportion of variance explained by a regression model.", - "difficulty": "medium" - } -} diff --git a/project-beta/backend/src/index.ts b/project-beta/backend/src/index.ts deleted file mode 100644 index 441dd46ac..000000000 --- a/project-beta/backend/src/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import express from 'express'; -import cors from 'cors'; -import mongoose from 'mongoose'; -import dotenv from 'dotenv'; -import { assessmentRoutes } from './routes/assessment'; -import { responseRoutes } from './routes/response'; - -dotenv.config(); - - -dotenv.config(); -const app = express(); -app.use(cors()); -app.use(express.json()); -app.use('/api/assessment', assessmentRoutes); -app.use('/api/response', responseRoutes); -//mongoose.connect(process.env.MONGO_URI!) -mongoose.connect('mongodb://localhost:27017/agenticAI') - .then(() => app.listen(5000, () => console.log('Server running'))) - .catch(err => console.error(err)); diff --git a/project-beta/backend/src/models/Assessment.ts b/project-beta/backend/src/models/Assessment.ts deleted file mode 100644 index f0957716c..000000000 --- a/project-beta/backend/src/models/Assessment.ts +++ /dev/null @@ -1,39 +0,0 @@ -import mongoose, { Schema, Document } from 'mongoose'; - -interface Question { - question: string; - options: string[]; - correct_answer: string[]; // Can also be string | string[] if necessary - type: string; - topic_tested: string; - concept_area: string; - difficulty: string; - insight_if_wrong: string; - estimated_time_min: number; -} - -export interface IAssessment extends Document { - targetTopic: string; - prerequisites: string[]; - questions: Question[]; -} - -const QuestionSchema: Schema = new Schema({ - question: { type: String, required: true }, - options: { type: [String], required: true }, - correct_answer: { type: [String], required: true }, - type: { type: String, required: true }, - topic_tested: { type: String, required: true }, - concept_area: { type: String, required: true }, - difficulty: { type: String, required: true }, - insight_if_wrong: { type: String, required: true }, - estimated_time_min: { type: Number, required: true }, -}); - -const AssessmentSchema: Schema = new Schema({ - targetTopic: { type: String, required: true }, - prerequisites: { type: [String], required: true }, - questions: { type: [QuestionSchema], required: true }, -}); - -export default mongoose.model('Assessment', AssessmentSchema); diff --git a/project-beta/backend/src/models/UserResponse.ts b/project-beta/backend/src/models/UserResponse.ts deleted file mode 100644 index 9ae6d04b8..000000000 --- a/project-beta/backend/src/models/UserResponse.ts +++ /dev/null @@ -1,21 +0,0 @@ -import mongoose from 'mongoose'; - -const UserResponseSchema = new mongoose.Schema({ - userId: { type: String, required: false }, // optional if anonymous - assessmentId: { type: mongoose.Schema.Types.ObjectId, ref: 'Assessment', required: true }, - targetTopic: { type: String, required: true }, - responses: [ - { - questionText: { type: String, required: true }, - userAnswer: { type: [String], required: true }, - correctAnswer: { type: [String], required: true }, - isCorrect: { type: Boolean, required: true }, - topic_tested: { type: String, required: true }, - } - ], - createdAt: { type: Date, default: Date.now } -}); - -export default mongoose.model('UserResponse', UserResponseSchema); - - diff --git a/project-beta/backend/src/routes/assessment.ts b/project-beta/backend/src/routes/assessment.ts deleted file mode 100644 index 5a412f685..000000000 --- a/project-beta/backend/src/routes/assessment.ts +++ /dev/null @@ -1,117 +0,0 @@ -import express from 'express'; -import { Request, Response } from 'express'; -import { getPrerequisites } from '../services/prereqService'; -import { generatePrompt } from '../services/promptService'; -import { getAssessment } from '../services/apiService'; -import Assessment from '../models/Assessment'; - -const router = express.Router(); - -router.post('/generate', async (req: Request, res: Response): Promise => { - const { target } = req.body; - const prereqs = getPrerequisites(target); - const prompt = generatePrompt(target, prereqs); - - console.log('Target Topic:', target); - console.log('Prereqs:', prereqs); - - let content: string | undefined; - let parsed: any = null; - - try { - const rawResponse = await getAssessment(prompt); - content = rawResponse?.choices?.[0]?.message?.content; - - if (!content) { - console.error('❌ No content in LLM response'); - res.status(500).json({ error: 'No content in LLM response' }); - return; - } - - console.log('📝 Raw LLM Content:\n', content); - - // Step 1: Extract first valid JSON object from the response using regex - const jsonMatch = content.match(/```(?:json)?\s*([\s\S]*?)\s*```/) || content.match(/\{[\s\S]*\}/); - let jsonString = jsonMatch ? jsonMatch[1] || jsonMatch[0] : ''; - - if (!jsonString.trim()) { - console.error('❌ No JSON found in LLM response'); - res.status(500).json({ error: 'No valid JSON found in response' }); - return; - } - - // Step 2: Clean and parse - try { - const cleanedContent = jsonString - .replace(/[\u0000-\u001F\u007F-\u009F]/g, '') - .replace(/\\n/g, '') - .replace(/\\"/g, '"'); - - parsed = JSON.parse(cleanedContent); - } catch (parseErr) { - console.error('❌ Failed to parse cleaned content:', parseErr); - res.status(500).json({ error: 'Failed to parse assessment JSON' }); - return; - } - - console.log('✅ Parsed questions BEFORE filtering:', parsed?.questions); - - // Step 3: Validate question structure - if (!parsed.questions || !Array.isArray(parsed.questions)) { - console.error('❌ Questions not properly structured in parsed content'); - res.status(400).json({ error: 'Invalid questions structure in response' }); - return; - } - - // Step 4: Filter and sanitize questions - const sanitizedQuestions: any[] = []; - const malformedIndexes: number[] = []; - - parsed.questions.forEach((q: any, index: number) => { - if (!q.question || !q.correct_answer || !q.type) { - malformedIndexes.push(index); - return; - } - - sanitizedQuestions.push({ - question: q.question, - options: Array.isArray(q.options) ? q.options : [], - correct_answer: Array.isArray(q.correct_answer) - ? q.correct_answer - : [q.correct_answer], - type: q.type, - topic_tested: q.topic_tested ?? 'Unknown', - concept_area: q.concept_area ?? 'General', - difficulty: q.difficulty ?? 'Medium', - insight_if_wrong: q.insight_if_wrong ?? '', - estimated_time_min: q.estimated_time_min ?? 2, - }); - }); - - console.warn(`⚠️ Skipped ${malformedIndexes.length} malformed questions at indexes:`, malformedIndexes); - - if (sanitizedQuestions.length < 3) { - res.status(500).json({ - error: 'Too many malformed questions. Please try again.', - malformedCount: malformedIndexes.length, - }); - return; - } - - // Step 5: Save and respond - const newAssessment = new Assessment({ - targetTopic: parsed.targetTopic ?? target, - prerequisites: prereqs, - questions: sanitizedQuestions, - }); - - await newAssessment.save(); - res.json(newAssessment); - - } catch (err) { - console.error('❌ Unexpected error while generating assessment:', err); - res.status(500).json({ error: 'Server error while generating assessment' }); - } -}); - -export const assessmentRoutes = router; diff --git a/project-beta/backend/src/routes/response.ts b/project-beta/backend/src/routes/response.ts deleted file mode 100644 index ab657c2ff..000000000 --- a/project-beta/backend/src/routes/response.ts +++ /dev/null @@ -1,88 +0,0 @@ -import express from 'express'; -import { Request, Response } from 'express'; -import UserResponse from '../models/UserResponse'; -import Assessment from '../models/Assessment'; - -const router = express.Router(); - -// POST: Submit user answers -router.post('/submit', async (req: Request, res: Response): Promise => { - const { assessmentId, userId, answers } = req.body; - - try { - const assessment = await Assessment.findById(assessmentId); - if (!assessment) { - res.status(404).json({ error: 'Assessment not found' }); - return; - } - - const evaluatedResponses = assessment.questions.map((q, i) => { - const userAns = answers[i]?.userAnswer || []; - // const correct = Array.isArray(q.correct_answer) - // ? q.correct_answer.sort().join(',') === userAns.sort().join(',') - // : q.correct_answer === userAns; - let correct = false; - - if (Array.isArray(q.correct_answer)) { - const userArray = Array.isArray(userAns) ? userAns : [userAns]; - correct = - q.correct_answer.slice().sort().join(',') === userArray.slice().sort().join(','); - } else { - correct = q.correct_answer === userAns; - } - - return { - questionText: q.question, - userAnswer: userAns, - correctAnswer: q.correct_answer, - isCorrect: correct, - topic_tested: q.topic_tested, - }; - }); - - const newResponse = new UserResponse({ - assessmentId, - userId, - targetTopic: assessment.targetTopic, - responses: evaluatedResponses - }); - - await newResponse.save(); - res.json({ message: 'Response recorded successfully', result: newResponse }); - } catch (err) { - console.error('❌ Error submitting response:', err); - res.status(500).json({ error: 'Server error while submitting response' }); - } -}); - -// GET: Analyze performance to suggest weak prerequisite topics -router.get('/analysis/:userId/:assessmentId', async (req: Request, res: Response) => { - const { userId, assessmentId } = req.params; - - try { - const response = await UserResponse.findOne({ userId, assessmentId }); - if (!response) { - res.status(404).json({ error: 'User response not found' }); - return; - } - - const weakTopics = response.responses - .filter(q => !q.isCorrect) - .map(q => q.topic_tested); - - const uniqueWeakTopics = [...new Set(weakTopics)]; - - res.json({ - message: 'Analysis complete', - weakTopics, - recommendations: uniqueWeakTopics.length - ? `Please revisit the following prerequisite topics before continuing: ${uniqueWeakTopics.join(', ')}.` - : 'Great job! You’re ready to move forward with the target topic.' - }); - } catch (err) { - console.error('❌ Error generating analysis:', err); - res.status(500).json({ error: 'Server error while generating analysis' }); - } -}); - -export const responseRoutes = router; diff --git a/project-beta/backend/src/services/apiService.ts b/project-beta/backend/src/services/apiService.ts deleted file mode 100644 index 10bff83a2..000000000 --- a/project-beta/backend/src/services/apiService.ts +++ /dev/null @@ -1,65 +0,0 @@ -import axios from 'axios'; -import dotenv from 'dotenv'; - -dotenv.config(); - -export const getAssessment = async (prompt: string) => { - try { - const response = await axios.post( - 'https://router.huggingface.co/nebius/v1/chat/completions', - { - model: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", - messages: [ - { - role: "user", - content: prompt, - }, - ], - }, - { - headers: { - Authorization: `Bearer ${String(process.env.HF_TOKEN).trim()}`, - 'Content-Type': 'application/json', - }, - } - ); - const messageContent = response.data.choices[0]?.message?.content || "No response received"; - - console.log("Assessment Response:", messageContent); - - return response.data; - } catch (error: any) { - console.error('Hugging Face API Error:', error.response?.status, error.response?.data); - throw error; - } -}; - -// import { getPrerequisites } from '../services/prereqService'; -// export const getAssessment = async (concept: string) => { -// const prerequisites = getPrerequisites(concept); - -// const prompt = `Generate an assessment for ${concept}. The required prerequisites are: ${prerequisites.join(", ")}`; - -// try { -// const response = await axios.post( -// 'https://router.huggingface.co/nebius/v1/chat/completions', -// { -// model: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", -// messages: [ -// { role: "user", content: prompt } -// ], -// }, -// { -// headers: { -// Authorization: `Bearer ${process.env.HF_TOKEN}`, -// 'Content-Type': 'application/json', -// }, -// } -// ); - -// return response.data.choices[0]?.message?.content || "No response received"; -// } catch (error: any) { -// console.error('Hugging Face API Error:', error.response?.status, error.response?.data); -// throw error; -// } -// }; diff --git a/project-beta/backend/src/services/prereqService.ts b/project-beta/backend/src/services/prereqService.ts deleted file mode 100644 index e847cf5fd..000000000 --- a/project-beta/backend/src/services/prereqService.ts +++ /dev/null @@ -1,32 +0,0 @@ -import fs from 'fs'; -const graph = JSON.parse(fs.readFileSync('src/conceptGraph.json', 'utf-8')); - -export const getPrerequisites = (target: string): string[] => { - if (!graph[target]) { - console.error(`Concept "${target}" not found in graph.`); - return []; - } - - const visited = new Set(); - const result = new Set(); - - function dfs(node: string) { - if (!graph[node] || visited.has(node)) return; - - visited.add(node); - - // Retrieve direct prerequisites - const prereqs = graph[node].prereqs || []; - for (let p of prereqs) { - if (!visited.has(p)) { - result.add(p); - dfs(p); - } - } - } - - dfs(target); - //console.log(`Printing from prereq code-------Prerequisites for "${target}":`, Array.from(result)); - - return Array.from(result); -}; diff --git a/project-beta/backend/src/services/promptService.ts b/project-beta/backend/src/services/promptService.ts deleted file mode 100644 index 44a1505a9..000000000 --- a/project-beta/backend/src/services/promptService.ts +++ /dev/null @@ -1,42 +0,0 @@ -export const generatePrompt = (targetTopic: string, prereqs: string[]) => ` -You are an educational assistant tasked with generating diagnostic assessments that evaluate a learner’s readiness to study a particular target topic. Your goal is to create a well-balanced, concept-aligned question set based only on the prerequisite concepts for that target topic. - -Target Topic: ${targetTopic} -Prerequisite Concepts: ${prereqs.join(', ')} - -Assessment Requirements: You must generate diagnostic questions (in the range 4-15: minimum 4 questions and maximum 15 questions based on number of prerequisites) that assess the learner’s understanding of the prerequisite concepts only, not the target topic itself. - -For each prerequisite concept, generate 1–2 questions that: -- Belong to one of these formats: - - Single-correct MCQ - - Multiple-correct MCQ - - One-word answer - - Numerical answer - -- Are returned as a structured JSON array of objects under a top-level object like this: -{ - "targetTopic": "${targetTopic}", - "questions": [ - { - "question": "...", - "options": ["..."], // Optional if not MCQ - "correct_answer": ["..."], // Text or array - "type": "single-correct-mcq" | "multiple-correct-mcq" | "one-word" | "numerical", - "topic_tested": "...", - "concept_area": "...", - "difficulty": "Easy" | "Medium" | "Hard", - "insight_if_wrong": "...", - "estimated_time_min": ... - } - ] -} - -Additional Instructions: -- If the topic given is not related to Machine Learning, please return a message saying that the topic you wnat to learn is not from Ml. -- Make sure at least one question is a multiple-correct MCQ. -- Keep wording objective and precise; avoid vague or open-ended phrasing. -- Questions should focus on deep understanding, not superficial recall. -- Do not generate questions about the target topic directly (e.g., no Linear Regression questions, only its building blocks). -- Do not repeat questions. -- Output **only** the final JSON object — no explanation, no formatting, no commentary. -`; diff --git a/project-beta/backend/src/types/global.d.ts b/project-beta/backend/src/types/global.d.ts deleted file mode 100644 index c8ad5c177..000000000 --- a/project-beta/backend/src/types/global.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -// src/types/global.d.ts -declare module '*.json' { - const value: any; - export default value; -} diff --git a/project-beta/backend/tsconfig.json b/project-beta/backend/tsconfig.json deleted file mode 100644 index d9f9b3836..000000000 --- a/project-beta/backend/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - "module": "commonjs", /* Specify what module code is generated. */ - "resolveJsonModule": true, /* Enable importing .json files. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "include": ["src/**/*", "src/types/**/*.d.ts"] -} diff --git a/project-beta/frontend/README.md b/project-beta/frontend/README.md deleted file mode 100644 index b87cb0044..000000000 --- a/project-beta/frontend/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Getting Started with Create React App - -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `npm start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. - -The page will reload if you make edits.\ -You will also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** - -If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. - -You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/project-beta/frontend/package-lock.json b/project-beta/frontend/package-lock.json deleted file mode 100644 index ba3eb33bf..000000000 --- a/project-beta/frontend/package-lock.json +++ /dev/null @@ -1,17618 +0,0 @@ -{ - "name": "frontend", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "frontend", - "version": "0.1.0", - "dependencies": { - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^13.5.0", - "@types/jest": "^27.5.2", - "@types/node": "^16.18.126", - "@types/react": "^19.1.7", - "@types/react-dom": "^19.1.6", - "axios": "^1.9.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-scripts": "5.0.1", - "typescript": "^4.9.5", - "web-vitals": "^2.1.4" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.3.tgz", - "integrity": "sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==", - "license": "MIT" - }, - "node_modules/@alloc/quick-lru": { - "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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.5.tgz", - "integrity": "sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q==", - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", - "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", - "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.27.1.tgz", - "integrity": "sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-decorators": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", - "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", - "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", - "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", - "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", - "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", - "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", - "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-flow": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", - "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", - "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.3", - "@babel/plugin-transform-parameters": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", - "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", - "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", - "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", - "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", - "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.27.1", - "@babel/plugin-transform-async-to-generator": "^7.27.1", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.27.1", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.27.1", - "@babel/plugin-transform-classes": "^7.27.1", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.1", - "@babel/plugin-transform-dotall-regex": "^7.27.1", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.27.2", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", - "@babel/plugin-transform-parameters": "^7.27.1", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.27.1", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.40.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", - "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.27.1", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", - "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "license": "MIT" - }, - "node_modules/@csstools/normalize.css": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", - "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", - "license": "CC0-1.0" - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", - "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.2", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", - "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", - "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", - "license": "CC0-1.0", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/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==", - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/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==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "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", - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "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", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "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" - } - }, - "node_modules/@jridgewell/set-array": { - "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" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "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==", - "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/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "license": "MIT", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "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" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "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" - } - }, - "node_modules/@nodelib/fs.walk": { - "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" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.16.tgz", - "integrity": "sha512-kLQc9xz6QIqd2oIYyXRUiAp79kGpFBm3fEM9ahfG1HI0WI5gdZ2OVHWdmZYnwODt7ISck+QuQ6sBPrtvUBML7Q==", - "license": "MIT", - "dependencies": { - "ansi-html": "^0.0.9", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^4.2.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x || 5.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "license": "MIT" - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", - "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", - "license": "MIT" - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "license": "Apache-2.0", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "license": "MIT", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@testing-library/dom": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", - "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", - "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", - "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.56.12", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", - "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.16", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", - "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", - "license": "MIT", - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "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==", - "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==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "16.18.126", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", - "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", - "license": "MIT" - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", - "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.1.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.7.tgz", - "integrity": "sha512-BnsPLV43ddr05N71gaGzyZ5hzkCmGwhMvYc8zmvI8Ci1bRkkDSzDDVfAXfN2tk748OwI7ediiPX6PfT9p0QGVg==", - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", - "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.9", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", - "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", - "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "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==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "license": "BSD-3-Clause" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "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==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", - "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "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" - } - }, - "node_modules/ansi-styles": { - "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" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", - "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" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "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==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "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==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", - "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-array-method-boxes-properly": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "is-string": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "license": "MIT" - }, - "node_modules/ast-types-flow": { - "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==", - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "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==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", - "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.4", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "license": "MIT", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", - "license": "MIT" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", - "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", - "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/bfj": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", - "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", - "license": "MIT", - "dependencies": { - "bluebird": "^3.7.2", - "check-types": "^11.2.3", - "hoopy": "^0.1.4", - "jsonpath": "^1.1.1", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "license": "BSD-2-Clause" - }, - "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "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-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001721", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", - "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/check-types": { - "version": "11.2.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", - "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", - "license": "MIT" - }, - "node_modules/chokidar": { - "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", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "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" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "license": "MIT" - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "license": "MIT", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coa/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/coa/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/coa/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/coa/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "license": "MIT" - }, - "node_modules/color-convert": { - "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" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "license": "MIT" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "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/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/core-js": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", - "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", - "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.25.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.43.0.tgz", - "integrity": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "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", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "license": "MIT", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "license": "CC0-1.0", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "license": "MIT" - }, - "node_modules/cssdb": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", - "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "CC0-1.0" - }, - "node_modules/cssesc": { - "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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "license": "BSD-2-Clause" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "license": "MIT" - }, - "node_modules/deep-is": { - "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==", - "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/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "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", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.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==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "license": "MIT" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "license": "BSD-2-Clause" - }, - "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/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "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/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.166", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz", - "integrity": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==", - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "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", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "license": "MIT", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "license": "MIT" - }, - "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-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "license": "MIT" - }, - "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/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "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", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "license": "BSD-3-Clause", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", - "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.58.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "license": "MIT", - "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/eslint/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==", - "license": "Python-2.0" - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "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==", - "license": "BSD-2-Clause", - "engines": { - "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/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "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", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "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" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "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==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "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/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/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==", - "license": "MIT", - "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/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/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" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreground-child": { - "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.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", - "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "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/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "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" - ], - "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/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "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-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "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-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "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" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/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==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "license": "MIT" - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "license": "(Apache-2.0 OR MPL-1.1)" - }, - "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==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "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/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "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/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "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/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", - "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "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/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", - "license": "ISC" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "license": "MIT", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "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.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "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==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 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", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "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" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0 || ^28.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "license": "MIT", - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "license": "MIT", - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "license": "MIT", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", - "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi/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" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "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" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "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==", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "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==", - "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==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpath": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", - "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", - "license": "MIT", - "dependencies": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.12.1" - } - }, - "node_modules/jsonpath/node_modules/esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "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==", - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "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==", - "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==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "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" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "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/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "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", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "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" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "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" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "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" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "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/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "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", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "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" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "license": "MIT" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "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", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" - }, - "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" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", - "license": "MIT" - }, - "node_modules/object-assign": { - "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" - } - }, - "node_modules/object-hash": { - "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" - } - }, - "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/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", - "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", - "license": "MIT", - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "gopd": "^1.0.1", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "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/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "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/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "license": "MIT" - }, - "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/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "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" - } - }, - "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==", - "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" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/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==", - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "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" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "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.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" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", - "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", - "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "license": "CC0-1.0", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", - "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", - "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", - "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", - "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", - "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", - "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", - "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", - "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", - "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-import": { - "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", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "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" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", - "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "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" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", - "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "license": "MIT", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", - "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", - "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", - "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", - "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^1.1.1", - "@csstools/postcss-color-function": "^1.1.1", - "@csstools/postcss-font-format-keywords": "^1.0.1", - "@csstools/postcss-hwb-function": "^1.0.2", - "@csstools/postcss-ic-unit": "^1.0.1", - "@csstools/postcss-is-pseudo-class": "^2.0.7", - "@csstools/postcss-nested-calc": "^1.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.1", - "@csstools/postcss-oklab-function": "^1.1.1", - "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.1", - "@csstools/postcss-text-decoration-shorthand": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.2", - "@csstools/postcss-unset-value": "^1.0.2", - "autoprefixer": "^10.4.13", - "browserslist": "^4.21.4", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^7.1.0", - "postcss-attribute-case-insensitive": "^5.0.2", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.4", - "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.1", - "postcss-custom-media": "^8.0.2", - "postcss-custom-properties": "^12.1.10", - "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.5", - "postcss-double-position-gradients": "^3.1.2", - "postcss-env-function": "^4.0.6", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.5", - "postcss-image-set-function": "^4.0.7", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.2.0", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.4", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.5", - "postcss-pseudo-class-any-link": "^7.1.6", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", - "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", - "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-selector-parser": { - "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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.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==", - "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==", - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "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/proxy-addr/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/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "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/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "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": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "license": "MIT", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "node_modules/react-error-overlay": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", - "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", - "license": "MIT" - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "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" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "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" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, - "node_modules/regex-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", - "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/resolve": { - "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", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "license": "ISC" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "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" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.79.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", - "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "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", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/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==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "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/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", - "license": "CC0-1.0" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "license": "MIT", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "license": "ISC" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "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", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "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" - } - }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "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" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "license": "MIT" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "license": "MIT" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "license": "MIT" - }, - "node_modules/static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "license": "MIT", - "dependencies": { - "escodegen": "^1.8.1" - } - }, - "node_modules/static-eval/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/static-eval/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/static-eval/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-eval/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "license": "MIT" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/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==", - "license": "MIT" - }, - "node_modules/string-width/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==", - "license": "MIT" - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/sucrase": { - "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", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/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" - } - }, - "node_modules/sucrase/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" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "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" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/svgo/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "license": "BSD-2-Clause" - }, - "node_modules/svgo/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svgo/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/svgo/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "license": "MIT" - }, - "node_modules/tailwindcss": { - "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", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/lilconfig": { - "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" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/tapable": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", - "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.42.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.42.0.tgz", - "integrity": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "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==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "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" - } - }, - "node_modules/thenify-all": { - "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" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "license": "BSD-3-Clause" - }, - "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" - }, - "engines": { - "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/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "license": "MIT" - }, - "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==", - "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==", - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/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==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "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==", - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "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==", - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "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", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.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==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "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/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", - "license": "MIT" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "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/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==", - "license": "Apache-2.0" - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.99.9", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", - "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "license": "MIT", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.2.tgz", - "integrity": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "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" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-background-sync": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", - "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", - "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-build": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", - "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", - "license": "MIT", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.6.0", - "workbox-broadcast-update": "6.6.0", - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-google-analytics": "6.6.0", - "workbox-navigation-preload": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-range-requests": "6.6.0", - "workbox-recipes": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0", - "workbox-streams": "6.6.0", - "workbox-sw": "6.6.0", - "workbox-window": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "license": "MIT", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "license": "BSD-2-Clause" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", - "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", - "deprecated": "workbox-background-sync@6.6.0", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", - "license": "MIT" - }, - "node_modules/workbox-expiration": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", - "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", - "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", - "license": "MIT", - "dependencies": { - "workbox-background-sync": "6.6.0", - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", - "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-precaching": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", - "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", - "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-recipes": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", - "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", - "license": "MIT", - "dependencies": { - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-routing": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", - "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-strategies": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", - "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-streams": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", - "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0" - } - }, - "node_modules/workbox-sw": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", - "license": "MIT" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", - "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", - "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", - "license": "MIT", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.6.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/project-beta/frontend/package.json b/project-beta/frontend/package.json deleted file mode 100644 index 60acbc2e1..000000000 --- a/project-beta/frontend/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "frontend", - "version": "0.1.0", - "private": true, - "dependencies": { - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^13.5.0", - "@types/jest": "^27.5.2", - "@types/node": "^16.18.126", - "@types/react": "^19.1.7", - "@types/react-dom": "^19.1.6", - "axios": "^1.9.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-scripts": "5.0.1", - "typescript": "^4.9.5", - "web-vitals": "^2.1.4" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} diff --git a/project-beta/frontend/public/favicon.ico b/project-beta/frontend/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/project-beta/frontend/public/index.html b/project-beta/frontend/public/index.html deleted file mode 100644 index aa069f27c..000000000 --- a/project-beta/frontend/public/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - React App - - - -

- - - diff --git a/project-beta/frontend/public/logo192.png b/project-beta/frontend/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/project-beta/frontend/public/manifest.json b/project-beta/frontend/public/manifest.json deleted file mode 100644 index 080d6c77a..000000000 --- a/project-beta/frontend/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/project-beta/frontend/public/robots.txt b/project-beta/frontend/public/robots.txt deleted file mode 100644 index e9e57dc4d..000000000 --- a/project-beta/frontend/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/project-beta/frontend/src/App.css b/project-beta/frontend/src/App.css deleted file mode 100644 index 74b5e0534..000000000 --- a/project-beta/frontend/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/project-beta/frontend/src/App.test.tsx b/project-beta/frontend/src/App.test.tsx deleted file mode 100644 index 2a68616d9..000000000 --- a/project-beta/frontend/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/project-beta/frontend/src/App.tsx b/project-beta/frontend/src/App.tsx deleted file mode 100644 index 211639125..000000000 --- a/project-beta/frontend/src/App.tsx +++ /dev/null @@ -1,40 +0,0 @@ -// import React from 'react'; -// import logo from './logo.svg'; -// import './App.css'; - -// function App() { -// return ( -// -// ); -// } - -// export default App; - - -// In App.tsx -import AssessmentForm from './components/AssessmentForm'; - -function App() { - return ( -
- -
- ); -} - -export default App; \ No newline at end of file diff --git a/project-beta/frontend/src/components/AssessmentForm.tsx b/project-beta/frontend/src/components/AssessmentForm.tsx deleted file mode 100644 index e6c986265..000000000 --- a/project-beta/frontend/src/components/AssessmentForm.tsx +++ /dev/null @@ -1,221 +0,0 @@ -import axios from 'axios'; -import React, { useState } from 'react'; - -type QuestionType = 'single-correct-mcq' | 'multiple-correct-mcq' | 'one-word' | 'numerical'; - -interface Question { - question: string; - options?: string[]; - correct_answer: string | string[] | number; - type: QuestionType; - topic_tested: string; - concept_area: string; - difficulty: string; - insight_if_wrong: string; - estimated_time_min: number; -} - -interface AssessmentResponse { - _id: string; - targetTopic: string; - prerequisites: string[]; - questions: Question[]; -} - -interface AnalysisResponse { - message: string; - weakTopics: string[]; - recommendations: string; -} - -export default function AssessmentForm() { - const [topic, setTopic] = useState(''); - const [userId, setUserId] = useState(''); - const [result, setResult] = useState(null); - const [answers, setAnswers] = useState<{ [key: number]: any }>({}); - const [analysis, setAnalysis] = useState(null); - const [score, setScore] = useState(null); - - const handleSubmitTopic = async () => { - try { - const res = await axios.post('http://localhost:5000/api/assessment/generate', { target: topic }); - setResult(res.data); - setAnswers({}); - setAnalysis(null); - setScore(null); - } catch (err: any) { - alert(err.response?.data?.error || 'Failed to generate assessment'); - } - }; - - const handleAnswerChange = (idx: number, value: any) => { - setAnswers((prev) => ({ ...prev, [idx]: value })); - }; - - const handleMultiSelectChange = (idx: number, option: string) => { - const prev = answers[idx] || []; - if (prev.includes(option)) { - handleAnswerChange(idx, prev.filter((o: string) => o !== option)); - } else { - handleAnswerChange(idx, [...prev, option]); - } - }; - - const handleSubmitAssessment = async () => { - if (!result || !userId.trim()) { - alert('Please provide a User ID and generate the assessment first.'); - return; - } - - try { - const payload = { - assessmentId: result._id, - userId, - answers: result.questions.map((_, idx) => ({ - userAnswer: answers[idx] || [], - })), - }; - - const submitRes = await axios.post('http://localhost:5000/api/response/submit', payload); - const responses = submitRes.data.result.responses; - - // Calculate score (optional enhancement) - const correctCount = responses.filter((r: any) => r.isCorrect).length; - const total = responses.length; - setScore(correctCount); - - const analysisRes = await axios.get( - `http://localhost:5000/api/response/analysis/${userId}/${result._id}` - ); - setAnalysis(analysisRes.data); - } catch (err) { - console.error(err); - alert('Failed to submit or fetch analysis.'); - } - }; - - return ( -
-
- setUserId(e.target.value)} - placeholder="Enter User ID" - /> - setTopic(e.target.value)} - placeholder="Enter Target Topic" - /> - -
- - {result && ( -
-

Assessment for {result.targetTopic}

- {result.prerequisites?.length > 0 && ( -
-

Prerequisite Topics:

-
    - {result.prerequisites.map((p, i) => ( -
  • {p}
  • - ))} -
-
- )} -
- {result.questions.map((q, idx) => ( -
-

Q{idx + 1}. {q.question}

- - {q.type === 'single-correct-mcq' && q.options && ( -
- {q.options.map((opt, optIdx) => ( - - ))} -
- )} - - {q.type === 'multiple-correct-mcq' && q.options && ( -
- {q.options.map((opt, optIdx) => ( - - ))} -
- )} - - {(q.type === 'one-word' || q.type === 'numerical') && ( - handleAnswerChange(idx, e.target.value)} - /> - )} -
- ))} - - {result.questions.length > 0 && ( - - )} -
-
- )} - - {analysis && ( -
-

📊 Performance Report

- {score !== null && ( -

✅ Score: {score}/{result?.questions.length}

- )} -

{analysis.message}

- - {analysis.weakTopics.length > 0 && ( - <> -

Topics to Revisit:

-
    - {analysis.weakTopics.map((topic, idx) => ( -
  • {topic}
  • - ))} -
- - )} - -

{analysis.recommendations}

-
- )} -
- ); -} diff --git a/project-beta/frontend/src/index.css b/project-beta/frontend/src/index.css deleted file mode 100644 index ec2585e8c..000000000 --- a/project-beta/frontend/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} diff --git a/project-beta/frontend/src/index.tsx b/project-beta/frontend/src/index.tsx deleted file mode 100644 index 032464fb6..000000000 --- a/project-beta/frontend/src/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; - -const root = ReactDOM.createRoot( - document.getElementById('root') as HTMLElement -); -root.render( - - - -); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/project-beta/frontend/src/logo.svg b/project-beta/frontend/src/logo.svg deleted file mode 100644 index 9dfc1c058..000000000 --- a/project-beta/frontend/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/project-beta/frontend/src/react-app-env.d.ts b/project-beta/frontend/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5fc..000000000 --- a/project-beta/frontend/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/project-beta/frontend/src/reportWebVitals.ts b/project-beta/frontend/src/reportWebVitals.ts deleted file mode 100644 index 49a2a16e0..000000000 --- a/project-beta/frontend/src/reportWebVitals.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ReportHandler } from 'web-vitals'; - -const reportWebVitals = (onPerfEntry?: ReportHandler) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/project-beta/frontend/src/setupTests.ts b/project-beta/frontend/src/setupTests.ts deleted file mode 100644 index 8f2609b7b..000000000 --- a/project-beta/frontend/src/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; diff --git a/project-beta/frontend/tsconfig.json b/project-beta/frontend/tsconfig.json deleted file mode 100644 index a273b0cfc..000000000 --- a/project-beta/frontend/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx" - }, - "include": [ - "src" - ] -} diff --git a/project-gamma/.bolt/config.json b/project-gamma/.bolt/config.json deleted file mode 100644 index 6b6787dcd..000000000 --- a/project-gamma/.bolt/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "template": "bolt-vite-react-ts" -} diff --git a/project-gamma/.bolt/prompt b/project-gamma/.bolt/prompt deleted file mode 100644 index ce91b4345..000000000 --- a/project-gamma/.bolt/prompt +++ /dev/null @@ -1,5 +0,0 @@ -For all designs I ask you to make, have them be beautiful, not cookie cutter. Make webpages that are fully featured and worthy for production. - -By default, this template supports JSX syntax with Tailwind CSS classes, React hooks, and Lucide React for icons. Do not install other packages for UI themes, icons, etc unless absolutely necessary or I request them. - -Use icons from lucide-react for logos. diff --git a/project-gamma/.gitignore b/project-gamma/.gitignore deleted file mode 100644 index 7ceb59f89..000000000 --- a/project-gamma/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? -.env diff --git a/project-gamma/eslint.config.js b/project-gamma/eslint.config.js deleted file mode 100644 index 82c2e20cc..000000000 --- a/project-gamma/eslint.config.js +++ /dev/null @@ -1,28 +0,0 @@ -import js from '@eslint/js'; -import globals from 'globals'; -import reactHooks from 'eslint-plugin-react-hooks'; -import reactRefresh from 'eslint-plugin-react-refresh'; -import tseslint from 'typescript-eslint'; - -export default tseslint.config( - { ignores: ['dist'] }, - { - extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ['**/*.{ts,tsx}'], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - }, - plugins: { - 'react-hooks': reactHooks, - 'react-refresh': reactRefresh, - }, - rules: { - ...reactHooks.configs.recommended.rules, - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, - ], - }, - } -); diff --git a/project-gamma/graph/.github/pull_request_template.md b/project-gamma/graph/.github/pull_request_template.md deleted file mode 100644 index ab91c292d..000000000 --- a/project-gamma/graph/.github/pull_request_template.md +++ /dev/null @@ -1,15 +0,0 @@ -# Pull Request Template - -## Description -Please describe what this PR does and why it is needed. - -## Checklist - -- [ ] Code follows project style guidelines -- [ ] I have tested this thoroughly -- [ ] Relevant documentation is updated (if needed) -- [ ] Commit messages are clear and descriptive -- [ ] I have linked related issues (if applicable) - -## Related Issues -Closes #(issue number) diff --git a/project-gamma/graph/.gitignore b/project-gamma/graph/.gitignore deleted file mode 100644 index 35c8fb10c..000000000 --- a/project-gamma/graph/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -<<<<<<< HEAD -node_modules/ -======= -node_modules/ ->>>>>>> f0dd1cc (Initial commit with project files) diff --git a/project-gamma/graph/.gitkeep b/project-gamma/graph/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/project-gamma/graph/CONTRIBUTING.md b/project-gamma/graph/CONTRIBUTING.md deleted file mode 100644 index af9859911..000000000 --- a/project-gamma/graph/CONTRIBUTING.md +++ /dev/null @@ -1,11 +0,0 @@ -# Contributing to Personalized Learning Path - -Thanks for considering contributing! Please follow these steps: - -1. Fork the repository. -2. Create your feature branch: `git checkout -b feature/your-feature-name`. -3. Commit your changes: `git commit -m "Add some feature"`. -4. Push to the branch: `git push origin feature/your-feature-name`. -5. Open a Pull Request on GitHub and describe your changes clearly. - -Please ensure your code follows existing style and you add meaningful commit messages. diff --git a/project-gamma/graph/LICENSE b/project-gamma/graph/LICENSE deleted file mode 100644 index ab5482243..000000000 --- a/project-gamma/graph/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 bhavitha9052004 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/project-gamma/graph/README.md b/project-gamma/graph/README.md deleted file mode 100644 index 8febc4823..000000000 --- a/project-gamma/graph/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# personalized-learning-path -Project repo for Problem Statement 2 - Personalized Learning Path Recommendation -## Our Team - -We’re a collaborative team working together on this project: - -| Name | Email | Role | -|-----------------------|-----------------------------|-----------------| -| B Bhavitha | bhavitha9052004@gmail.com | T3 Team Lead | -| Anurag Kumar | anurag2003ias@gmail.com | T3 Contributor | -| Nishant | nishantthakurs7519@gmail.com| T3 Contributor | -| Tamalampudi Sameer Reddy| sameerreddy213@gmail.com | T3 Contributor | - -Everyone’s contributions are highly valued! -## Contribution Guidelines - -We welcome contributions from all team members! Here’s how you can get started: - -1. **Fork the repository** to your own GitHub account. -2. **Clone** your fork to your local machine. -3. **Create a new branch** for your work. -4. Make your changes, ensuring they follow good coding practices. -5. **Commit** your changes with a clear message. -6. **Push** your branch to your fork. -7. **Open a Pull Request (PR)** to the main repository. - -Please make sure to: -- Check if an issue already exists before starting new features or fixes. -- Follow the folder structure (`client/`, `server/`, `scraper/`, `graph/`, `docs/`). -- Add meaningful commit messages. -- Be respectful of others’ work — collaboration is key! - -Refer to [`CONTRIBUTING.md`](CONTRIBUTING.md) for more detailed guidelines. - -Happy contributing! diff --git a/project-gamma/graph/Unconfirmed 16035.crdownload b/project-gamma/graph/Unconfirmed 16035.crdownload deleted file mode 100644 index 15daac582..000000000 --- a/project-gamma/graph/Unconfirmed 16035.crdownload +++ /dev/null @@ -1,18 +0,0 @@ -import requests -import time -#from fake_useragent import UserAgent -from bs4 import BeautifulSoup -from bs4.element import Tag -import networkx as nx -import matplotlib.pyplot as plt - -url = "https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/lecture-slides-code/" - -session = requests.Session() -# Use a fake user agent to avoid being blocked by the server -time.sleep(2) # Sleep to avoid overwhelming the server -r = session.get(url) - -with open("lecture_slides_code.html", "w", encoding='utf-8') as f: - f.write(r.text) -print("HTML content retrieved and saved to lecture_slides_code.html") diff --git a/project-gamma/graph/Unconfirmed 518044.crdownload b/project-gamma/graph/Unconfirmed 518044.crdownload deleted file mode 100644 index 8b6636590..000000000 --- a/project-gamma/graph/Unconfirmed 518044.crdownload +++ /dev/null @@ -1,90 +0,0 @@ -from bs4 import BeautifulSoup -from bs4.element import Tag -import networkx as nx -import matplotlib.pyplot as plt - - -with open("lecture_slides_code.html", "r", encoding='utf-8') as f: - html_content = f.read() -soup = BeautifulSoup(html_content, 'html.parser') - -rows = soup.find_all("tr") - -# Extract lecture titles -lecture_titles = [] - - -for row in rows: - if isinstance(row, Tag): - cols = row.find_all("td") - if len(cols) >= 2: - title = cols[1].get_text(strip=True) - if title: # Only consider non-empty titles - lecture_titles.append(title) - -# Save the lecture titles to a text file -with open("lecture_titles.txt", "w", encoding='utf-8') as f: - for title in lecture_titles: - f.write(title + "\n") - -print(f"Extracted {len(lecture_titles)} lecture titles and saved to lecture_titles.txt") - - -''' -G = nx.DiGraph() - -# Added nodes and linear edges -for i in range(len(lecture_titles)): - G.add_node(lecture_titles[i]) - if i > 0: - G.add_edge(lecture_titles[i - 1], lecture_titles[i]) - -# TO visualize the graph -plt.figure(figsize=(16, 8)) -pos = nx.spring_layout(G, k=0.8, seed=42) -nx.draw(G, pos, with_labels=True, node_color='lightgreen', edge_color='gray',node_size=5000, font_size=4, font_weight='bold', arrows=True) - -plt.title("MIT 6.0001 Lecture Prerequisite Graph", fontsize=12) -plt.axis('off') -plt.tight_layout() -plt.show() -''' - -G = nx.DiGraph() - -# Added nodes and linear edges -for i in range(len(lecture_titles)): - G.add_node(lecture_titles[i]) - if i > 0: - G.add_edge(lecture_titles[i - 1], lecture_titles[i]) - -# TO visualize the graph -plt.figure(figsize=(20, 12)) # Increased figure size - -# Create a hierarchical layout with more vertical spacing -pos = nx.kamada_kawai_layout(G) -pos_dict = {} -import random -for i, node in enumerate(G.nodes()): - x, y = pos[node] - pos_dict[node] = (x, y + i * 0.1) # Add increasing vertical displacement - -# Draw with adjusted parameters -nx.draw(G, pos_dict, - with_labels=True, - node_color='lightgreen', - edge_color='gray', - node_size=2000, - font_size=8, # Increased font size - font_weight='bold', - arrows=True, - width=2, # Thicker edges - arrowsize=10, # Larger arrows - node_shape='o', # Circular nodes - alpha=0.9) # Slight transparency - -plt.title("MIT 6.0001 Lecture Prerequisite Graph", fontsize=14, pad=20) -plt.axis('off') -plt.margins(0.2) # Add margins around the graph -plt.tight_layout() -plt.show() \ No newline at end of file diff --git a/project-gamma/graph/Unconfirmed 558829.crdownload b/project-gamma/graph/Unconfirmed 558829.crdownload deleted file mode 100644 index 15daac582..000000000 --- a/project-gamma/graph/Unconfirmed 558829.crdownload +++ /dev/null @@ -1,18 +0,0 @@ -import requests -import time -#from fake_useragent import UserAgent -from bs4 import BeautifulSoup -from bs4.element import Tag -import networkx as nx -import matplotlib.pyplot as plt - -url = "https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/lecture-slides-code/" - -session = requests.Session() -# Use a fake user agent to avoid being blocked by the server -time.sleep(2) # Sleep to avoid overwhelming the server -r = session.get(url) - -with open("lecture_slides_code.html", "w", encoding='utf-8') as f: - f.write(r.text) -print("HTML content retrieved and saved to lecture_slides_code.html") diff --git a/project-gamma/graph/cg_visualization.py b/project-gamma/graph/cg_visualization.py deleted file mode 100644 index c9c61c4ea..000000000 --- a/project-gamma/graph/cg_visualization.py +++ /dev/null @@ -1,56 +0,0 @@ -from pyvis.network import Network -import networkx as nx -import json -from networkx.readwrite import json_graph - -with open("concept_graph_full.json", "r", encoding="utf-8") as f: - data = json.load(f) -G_loaded = json_graph.node_link_graph(data) - -# Created a pyvis network -net = Network( - height="800px", - width="100%", - bgcolor="#ffffff", - font_color=True, - directed=True -) - -# Converted from networkx -net.from_nx(G_loaded) -#node properties -for node in net.nodes: - node["size"] = 20 - node["color"] = "#97C2FC" - node["borderWidth"] = 2 - node["borderColor"] = "#2B7CE9" - node["font"] = {"size": 12} - -# edge properties -for edge in net.edges: - edge["color"] = "#848484" - edge["smooth"] = {"type": "continuous"} - edge["arrows"] = "to" - edge["arrows"] = {"to": {"enabled": True, "scaleFactor": 0.5}} - -# Configure dynamics -net.set_options(""" - var options = { - "physics": { - "enabled": true, - "stabilization": {"iterations": 100}, - "barnesHut": { - "gravitationalConstant": -2000, - "springConstant": 0.04, - "springLength": 95 - } - } - } -""") - -# Saved the graph -try: - net.write_html("concept_graph.html") - print("Graph has been saved as 'concept_graph.html'. Please open it in a web browser to view.") -except Exception as e: - print(f"Error saving graph: {str(e)}") diff --git a/project-gamma/graph/client/.gitkeep b/project-gamma/graph/client/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/project-gamma/graph/concept-graph.py b/project-gamma/graph/concept-graph.py deleted file mode 100644 index 30ca7d102..000000000 --- a/project-gamma/graph/concept-graph.py +++ /dev/null @@ -1,64 +0,0 @@ -import networkx as nx -import matplotlib.pyplot as plt -import json -from networkx.readwrite import json_graph -concept_map = { - "What is computation?": ["Computation", "Algorithms", "Problem Solving"], - "Branching and Iteration": ["Conditionals", "Loops", "Control Flow"], - "String Manipulation, Guess and Check, Approximations, Bisection": [ - "String Manipulation", "Guess and Check", "Approximation", "Bisection Search" - ], - "Decomposition, Abstractions, Functions": ["Decomposition", "Abstraction", "Functions"], - "Tuples, Lists, Aliasing, Mutability, Cloning": [ - "Tuples", "Lists", "Aliasing", "Mutability", "Cloning" - ], - "Recursion, Dictionaries": ["Recursion", "Dictionaries"], - "Testing, Debugging, Exceptions, Assertions": [ - "Testing", "Debugging", "Exceptions", "Assertions" - ], - "Object Oriented Programming": ["Classes", "OOP", "Encapsulation"], - "Python Classes and Inheritance": ["Inheritance", "Subclasses", "Class Hierarchies"], - "Understanding Program Efficiency, Part 1": ["Big-O Notation", "Efficiency"], - "Understanding Program Efficiency, Part 2": ["Efficiency", "Space Complexity"], - "Searching and Sorting": ["Search Algorithms", "Sorting Algorithms"], -} - -G = nx.DiGraph() - -# Converted concept_map to a list of concept lists in lecture order -concept_lists = list(concept_map.values()) - -# graph -for i, concepts in enumerate(concept_lists): - # Connected all concepts within the same lecture in sequence - for j in range(len(concepts) - 1): - G.add_edge(concepts[j], concepts[j + 1]) - - # Connected last concept of this lecture to all concepts in the next lecture - if i < len(concept_lists) - 1: - last_concept = concepts[-1] - next_concepts = concept_lists[i + 1] - for next_concept in next_concepts: - G.add_edge(last_concept, next_concept) - - -data = json_graph.node_link_data(G) - -# Saved to json file -with open("concept_graph_full.json", "w", encoding="utf-8") as f: - json.dump(data, f, indent=4) - -print("Full graph saved to concept_graph_full.json") - - -''' -plt.figure(figsize=(22, 14)) -pos = nx.spring_layout(G, k=0.5, seed=42) -nx.draw(G, pos, with_labels=True, - node_color="lightblue", node_size=2500, - edge_color="gray", arrows=True, width=2, font_size=10) -plt.title("Concept Graph from Manually Curated Lecture Concepts", fontsize=14) -plt.axis("off") -plt.tight_layout() -plt.show() -''' diff --git a/project-gamma/graph/concept_graph.html b/project-gamma/graph/concept_graph.html deleted file mode 100644 index 2cca5e29b..000000000 --- a/project-gamma/graph/concept_graph.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - -
-

-
- - - - - - -
-

-
- - - - - -
- - -
-
- - - - - - - \ No newline at end of file diff --git a/project-gamma/graph/concept_graph.json b/project-gamma/graph/concept_graph.json deleted file mode 100644 index 3d27267d3..000000000 --- a/project-gamma/graph/concept_graph.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { "id": "1", "name": "What is computation?", "prerequisites": [] }, - { "id": "2", "name": "Branching and Iteration", "prerequisites": ["1"] }, - { "id": "3", "name": "String Manipulation, Guess and Check, Approximations, Bisection", "prerequisites": ["2"] }, - { "id": "4", "name": "Decomposition, Abstractions, Functions", "prerequisites": ["3"] }, - { "id": "5", "name": "Tuples, Lists, Aliasing, Mutability, Cloning", "prerequisites": ["4"] }, - { "id": "6", "name": "Recursion, Dictionaries", "prerequisites": ["5"] }, - { "id": "7", "name": "Testing, Debugging, Exceptions, Assertions", "prerequisites": ["6"] }, - { "id": "8", "name": "Object Oriented Programming", "prerequisites": ["7"] }, - { "id": "9", "name": "Python Classes and Inheritance", "prerequisites": ["8"] }, - { "id": "10", "name": "Understanding Program Efficiency, Part 1", "prerequisites": ["9"] }, - { "id": "11", "name": "Understanding Program Efficiency, Part 2", "prerequisites": ["10"] }, - { "id": "12", "name": "Searching and Sorting", "prerequisites": ["11"] } -] diff --git a/project-gamma/graph/concept_graph_full.json b/project-gamma/graph/concept_graph_full.json deleted file mode 100644 index 359b1c7b3..000000000 --- a/project-gamma/graph/concept_graph_full.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "directed": true, - "multigraph": false, - "graph": {}, - "nodes": [ - { - "id": "Computation" - }, - { - "id": "Algorithms" - }, - { - "id": "Problem Solving" - }, - { - "id": "Conditionals" - }, - { - "id": "Loops" - }, - { - "id": "Control Flow" - }, - { - "id": "String Manipulation" - }, - { - "id": "Guess and Check" - }, - { - "id": "Approximation" - }, - { - "id": "Bisection Search" - }, - { - "id": "Decomposition" - }, - { - "id": "Abstraction" - }, - { - "id": "Functions" - }, - { - "id": "Tuples" - }, - { - "id": "Lists" - }, - { - "id": "Aliasing" - }, - { - "id": "Mutability" - }, - { - "id": "Cloning" - }, - { - "id": "Recursion" - }, - { - "id": "Dictionaries" - }, - { - "id": "Testing" - }, - { - "id": "Debugging" - }, - { - "id": "Exceptions" - }, - { - "id": "Assertions" - }, - { - "id": "Classes" - }, - { - "id": "OOP" - }, - { - "id": "Encapsulation" - }, - { - "id": "Inheritance" - }, - { - "id": "Subclasses" - }, - { - "id": "Class Hierarchies" - }, - { - "id": "Big-O Notation" - }, - { - "id": "Efficiency" - }, - { - "id": "Space Complexity" - }, - { - "id": "Search Algorithms" - }, - { - "id": "Sorting Algorithms" - } - ], - "links": [ - { - "source": "Computation", - "target": "Algorithms" - }, - { - "source": "Algorithms", - "target": "Problem Solving" - }, - { - "source": "Problem Solving", - "target": "Conditionals" - }, - { - "source": "Problem Solving", - "target": "Loops" - }, - { - "source": "Problem Solving", - "target": "Control Flow" - }, - { - "source": "Conditionals", - "target": "Loops" - }, - { - "source": "Loops", - "target": "Control Flow" - }, - { - "source": "Control Flow", - "target": "String Manipulation" - }, - { - "source": "Control Flow", - "target": "Guess and Check" - }, - { - "source": "Control Flow", - "target": "Approximation" - }, - { - "source": "Control Flow", - "target": "Bisection Search" - }, - { - "source": "String Manipulation", - "target": "Guess and Check" - }, - { - "source": "Guess and Check", - "target": "Approximation" - }, - { - "source": "Approximation", - "target": "Bisection Search" - }, - { - "source": "Bisection Search", - "target": "Decomposition" - }, - { - "source": "Bisection Search", - "target": "Abstraction" - }, - { - "source": "Bisection Search", - "target": "Functions" - }, - { - "source": "Decomposition", - "target": "Abstraction" - }, - { - "source": "Abstraction", - "target": "Functions" - }, - { - "source": "Functions", - "target": "Tuples" - }, - { - "source": "Functions", - "target": "Lists" - }, - { - "source": "Functions", - "target": "Aliasing" - }, - { - "source": "Functions", - "target": "Mutability" - }, - { - "source": "Functions", - "target": "Cloning" - }, - { - "source": "Tuples", - "target": "Lists" - }, - { - "source": "Lists", - "target": "Aliasing" - }, - { - "source": "Aliasing", - "target": "Mutability" - }, - { - "source": "Mutability", - "target": "Cloning" - }, - { - "source": "Cloning", - "target": "Recursion" - }, - { - "source": "Cloning", - "target": "Dictionaries" - }, - { - "source": "Recursion", - "target": "Dictionaries" - }, - { - "source": "Dictionaries", - "target": "Testing" - }, - { - "source": "Dictionaries", - "target": "Debugging" - }, - { - "source": "Dictionaries", - "target": "Exceptions" - }, - { - "source": "Dictionaries", - "target": "Assertions" - }, - { - "source": "Testing", - "target": "Debugging" - }, - { - "source": "Debugging", - "target": "Exceptions" - }, - { - "source": "Exceptions", - "target": "Assertions" - }, - { - "source": "Assertions", - "target": "Classes" - }, - { - "source": "Assertions", - "target": "OOP" - }, - { - "source": "Assertions", - "target": "Encapsulation" - }, - { - "source": "Classes", - "target": "OOP" - }, - { - "source": "OOP", - "target": "Encapsulation" - }, - { - "source": "Encapsulation", - "target": "Inheritance" - }, - { - "source": "Encapsulation", - "target": "Subclasses" - }, - { - "source": "Encapsulation", - "target": "Class Hierarchies" - }, - { - "source": "Inheritance", - "target": "Subclasses" - }, - { - "source": "Subclasses", - "target": "Class Hierarchies" - }, - { - "source": "Class Hierarchies", - "target": "Big-O Notation" - }, - { - "source": "Class Hierarchies", - "target": "Efficiency" - }, - { - "source": "Big-O Notation", - "target": "Efficiency" - }, - { - "source": "Efficiency", - "target": "Efficiency" - }, - { - "source": "Efficiency", - "target": "Space Complexity" - }, - { - "source": "Space Complexity", - "target": "Search Algorithms" - }, - { - "source": "Space Complexity", - "target": "Sorting Algorithms" - }, - { - "source": "Search Algorithms", - "target": "Sorting Algorithms" - } - ] -} \ No newline at end of file diff --git a/project-gamma/graph/data/concept-graph.py b/project-gamma/graph/data/concept-graph.py deleted file mode 100644 index 30ca7d102..000000000 --- a/project-gamma/graph/data/concept-graph.py +++ /dev/null @@ -1,64 +0,0 @@ -import networkx as nx -import matplotlib.pyplot as plt -import json -from networkx.readwrite import json_graph -concept_map = { - "What is computation?": ["Computation", "Algorithms", "Problem Solving"], - "Branching and Iteration": ["Conditionals", "Loops", "Control Flow"], - "String Manipulation, Guess and Check, Approximations, Bisection": [ - "String Manipulation", "Guess and Check", "Approximation", "Bisection Search" - ], - "Decomposition, Abstractions, Functions": ["Decomposition", "Abstraction", "Functions"], - "Tuples, Lists, Aliasing, Mutability, Cloning": [ - "Tuples", "Lists", "Aliasing", "Mutability", "Cloning" - ], - "Recursion, Dictionaries": ["Recursion", "Dictionaries"], - "Testing, Debugging, Exceptions, Assertions": [ - "Testing", "Debugging", "Exceptions", "Assertions" - ], - "Object Oriented Programming": ["Classes", "OOP", "Encapsulation"], - "Python Classes and Inheritance": ["Inheritance", "Subclasses", "Class Hierarchies"], - "Understanding Program Efficiency, Part 1": ["Big-O Notation", "Efficiency"], - "Understanding Program Efficiency, Part 2": ["Efficiency", "Space Complexity"], - "Searching and Sorting": ["Search Algorithms", "Sorting Algorithms"], -} - -G = nx.DiGraph() - -# Converted concept_map to a list of concept lists in lecture order -concept_lists = list(concept_map.values()) - -# graph -for i, concepts in enumerate(concept_lists): - # Connected all concepts within the same lecture in sequence - for j in range(len(concepts) - 1): - G.add_edge(concepts[j], concepts[j + 1]) - - # Connected last concept of this lecture to all concepts in the next lecture - if i < len(concept_lists) - 1: - last_concept = concepts[-1] - next_concepts = concept_lists[i + 1] - for next_concept in next_concepts: - G.add_edge(last_concept, next_concept) - - -data = json_graph.node_link_data(G) - -# Saved to json file -with open("concept_graph_full.json", "w", encoding="utf-8") as f: - json.dump(data, f, indent=4) - -print("Full graph saved to concept_graph_full.json") - - -''' -plt.figure(figsize=(22, 14)) -pos = nx.spring_layout(G, k=0.5, seed=42) -nx.draw(G, pos, with_labels=True, - node_color="lightblue", node_size=2500, - edge_color="gray", arrows=True, width=2, font_size=10) -plt.title("Concept Graph from Manually Curated Lecture Concepts", fontsize=14) -plt.axis("off") -plt.tight_layout() -plt.show() -''' diff --git a/project-gamma/graph/data/learner_profiles.json b/project-gamma/graph/data/learner_profiles.json deleted file mode 100644 index b66c68707..000000000 --- a/project-gamma/graph/data/learner_profiles.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "learner_id": "L001", - "mastered_concepts": ["Computation", "Algorithms"], - "weak_concepts": ["Problem Solving"] - }, - { - "learner_id": "L002", - "mastered_concepts": ["Computation"], - "weak_concepts": [] - } -] \ No newline at end of file diff --git a/project-gamma/graph/docs/.gitkeep b/project-gamma/graph/docs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/project-gamma/graph/docs/README.md b/project-gamma/graph/docs/README.md deleted file mode 100644 index 70ee290b1..000000000 --- a/project-gamma/graph/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -"## Pull Request Trigger\nThis is a dummy change to initiate a pull request from feature/recommendation-engine to main." diff --git a/project-gamma/graph/fetch_lectures.py b/project-gamma/graph/fetch_lectures.py deleted file mode 100644 index cd6fc9092..000000000 --- a/project-gamma/graph/fetch_lectures.py +++ /dev/null @@ -1,44 +0,0 @@ -import requests -import time -from bs4 import BeautifulSoup -from bs4.element import Tag -import json - -url = "https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/pages/lecture-slides-code/" - -session = requests.Session() -time.sleep(2) # Sleep to avoid overwhelming the server -r = session.get(url) - -with open("lecture_slides_code.html", "w", encoding='utf-8') as f: - f.write(r.text) -print("HTML content retrieved and saved to lecture_slides_code.html") - -with open("lecture_slides_code.html", "r", encoding='utf-8') as f: - html_content = f.read() - -soup = BeautifulSoup(html_content, 'html.parser') -rows = soup.find_all("tr") - -lecture_titles = [] - -for row in rows: - if isinstance(row, Tag): - cols = row.find_all("td") - if len(cols) >= 2: - title = cols[1].get_text(strip=True) - if title: - lecture_titles.append(title) - -# Save lecture titles to a text file (optional) -with open("lecture_titles.txt", "w", encoding='utf-8') as f: - for title in lecture_titles: - f.write(title + "\n") - -print(f"Extracted {len(lecture_titles)} lecture titles and saved to lecture_titles.txt") - -# Save lecture titles to JSON file -with open("lecture_titles.json", "w", encoding='utf-8') as f_json: - json.dump(lecture_titles, f_json, ensure_ascii=False, indent=2) - -print(f"Saved {len(lecture_titles)} lecture titles to lecture_titles.json") diff --git a/project-gamma/graph/frontend/index.html b/project-gamma/graph/frontend/index.html deleted file mode 100644 index 33075560d..000000000 --- a/project-gamma/graph/frontend/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - MIT OCW Python Course Graph - - - - -

MIT OCW Python Course Graph

-
- - - - diff --git a/project-gamma/graph/graph/.gitkeep b/project-gamma/graph/graph/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/project-gamma/graph/graph/concept_graph_full.json b/project-gamma/graph/graph/concept_graph_full.json deleted file mode 100644 index 359b1c7b3..000000000 --- a/project-gamma/graph/graph/concept_graph_full.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "directed": true, - "multigraph": false, - "graph": {}, - "nodes": [ - { - "id": "Computation" - }, - { - "id": "Algorithms" - }, - { - "id": "Problem Solving" - }, - { - "id": "Conditionals" - }, - { - "id": "Loops" - }, - { - "id": "Control Flow" - }, - { - "id": "String Manipulation" - }, - { - "id": "Guess and Check" - }, - { - "id": "Approximation" - }, - { - "id": "Bisection Search" - }, - { - "id": "Decomposition" - }, - { - "id": "Abstraction" - }, - { - "id": "Functions" - }, - { - "id": "Tuples" - }, - { - "id": "Lists" - }, - { - "id": "Aliasing" - }, - { - "id": "Mutability" - }, - { - "id": "Cloning" - }, - { - "id": "Recursion" - }, - { - "id": "Dictionaries" - }, - { - "id": "Testing" - }, - { - "id": "Debugging" - }, - { - "id": "Exceptions" - }, - { - "id": "Assertions" - }, - { - "id": "Classes" - }, - { - "id": "OOP" - }, - { - "id": "Encapsulation" - }, - { - "id": "Inheritance" - }, - { - "id": "Subclasses" - }, - { - "id": "Class Hierarchies" - }, - { - "id": "Big-O Notation" - }, - { - "id": "Efficiency" - }, - { - "id": "Space Complexity" - }, - { - "id": "Search Algorithms" - }, - { - "id": "Sorting Algorithms" - } - ], - "links": [ - { - "source": "Computation", - "target": "Algorithms" - }, - { - "source": "Algorithms", - "target": "Problem Solving" - }, - { - "source": "Problem Solving", - "target": "Conditionals" - }, - { - "source": "Problem Solving", - "target": "Loops" - }, - { - "source": "Problem Solving", - "target": "Control Flow" - }, - { - "source": "Conditionals", - "target": "Loops" - }, - { - "source": "Loops", - "target": "Control Flow" - }, - { - "source": "Control Flow", - "target": "String Manipulation" - }, - { - "source": "Control Flow", - "target": "Guess and Check" - }, - { - "source": "Control Flow", - "target": "Approximation" - }, - { - "source": "Control Flow", - "target": "Bisection Search" - }, - { - "source": "String Manipulation", - "target": "Guess and Check" - }, - { - "source": "Guess and Check", - "target": "Approximation" - }, - { - "source": "Approximation", - "target": "Bisection Search" - }, - { - "source": "Bisection Search", - "target": "Decomposition" - }, - { - "source": "Bisection Search", - "target": "Abstraction" - }, - { - "source": "Bisection Search", - "target": "Functions" - }, - { - "source": "Decomposition", - "target": "Abstraction" - }, - { - "source": "Abstraction", - "target": "Functions" - }, - { - "source": "Functions", - "target": "Tuples" - }, - { - "source": "Functions", - "target": "Lists" - }, - { - "source": "Functions", - "target": "Aliasing" - }, - { - "source": "Functions", - "target": "Mutability" - }, - { - "source": "Functions", - "target": "Cloning" - }, - { - "source": "Tuples", - "target": "Lists" - }, - { - "source": "Lists", - "target": "Aliasing" - }, - { - "source": "Aliasing", - "target": "Mutability" - }, - { - "source": "Mutability", - "target": "Cloning" - }, - { - "source": "Cloning", - "target": "Recursion" - }, - { - "source": "Cloning", - "target": "Dictionaries" - }, - { - "source": "Recursion", - "target": "Dictionaries" - }, - { - "source": "Dictionaries", - "target": "Testing" - }, - { - "source": "Dictionaries", - "target": "Debugging" - }, - { - "source": "Dictionaries", - "target": "Exceptions" - }, - { - "source": "Dictionaries", - "target": "Assertions" - }, - { - "source": "Testing", - "target": "Debugging" - }, - { - "source": "Debugging", - "target": "Exceptions" - }, - { - "source": "Exceptions", - "target": "Assertions" - }, - { - "source": "Assertions", - "target": "Classes" - }, - { - "source": "Assertions", - "target": "OOP" - }, - { - "source": "Assertions", - "target": "Encapsulation" - }, - { - "source": "Classes", - "target": "OOP" - }, - { - "source": "OOP", - "target": "Encapsulation" - }, - { - "source": "Encapsulation", - "target": "Inheritance" - }, - { - "source": "Encapsulation", - "target": "Subclasses" - }, - { - "source": "Encapsulation", - "target": "Class Hierarchies" - }, - { - "source": "Inheritance", - "target": "Subclasses" - }, - { - "source": "Subclasses", - "target": "Class Hierarchies" - }, - { - "source": "Class Hierarchies", - "target": "Big-O Notation" - }, - { - "source": "Class Hierarchies", - "target": "Efficiency" - }, - { - "source": "Big-O Notation", - "target": "Efficiency" - }, - { - "source": "Efficiency", - "target": "Efficiency" - }, - { - "source": "Efficiency", - "target": "Space Complexity" - }, - { - "source": "Space Complexity", - "target": "Search Algorithms" - }, - { - "source": "Space Complexity", - "target": "Sorting Algorithms" - }, - { - "source": "Search Algorithms", - "target": "Sorting Algorithms" - } - ] -} \ No newline at end of file diff --git a/project-gamma/graph/graph/learner_profiles.json b/project-gamma/graph/graph/learner_profiles.json deleted file mode 100644 index cb9629820..000000000 --- a/project-gamma/graph/graph/learner_profiles.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "learner_id": "L001", - "mastered_concepts": ["Computation", "Algorithms"], - "weak_concepts": ["Problem Solving"] - }, - { - "learner_id": "L002", - "mastered_concepts": ["Computation"], - "weak_concepts": [] - } -] diff --git a/project-gamma/graph/graph/recommendation_engine.py b/project-gamma/graph/graph/recommendation_engine.py deleted file mode 100644 index c4600d7dc..000000000 --- a/project-gamma/graph/graph/recommendation_engine.py +++ /dev/null @@ -1,50 +0,0 @@ -import json -import networkx as nx -import os - -# === Paths === -GRAPH_FILE = 'graph/concept_graph_full.json' -LEARNER_FILE = 'graph/learner_profiles.json' -OUTPUT_DIR = 'graph/recommendations/' - -# === Load concept graph === -with open(GRAPH_FILE) as f: - graph_data = json.load(f) -G = nx.node_link_graph(graph_data, edges="links") - - -# === Load learner profiles === -with open(LEARNER_FILE) as f: - learners = json.load(f) - -# === Ensure output directory exists === -os.makedirs(OUTPUT_DIR, exist_ok=True) - -def recommend_for_learner(profile): - mastered = set(profile['mastered_concepts']) - recommendations = [] - - for node in G.nodes: - if node in mastered: - continue - prereqs = list(G.predecessors(node)) - if all(p in mastered for p in prereqs): - recommendations.append(node) - - return recommendations - -# === Process all learners === -for learner in learners: - learner_id = learner['learner_id'] - recommended = recommend_for_learner(learner) - - output = { - 'learner_id': learner_id, - 'recommended_concepts': recommended - } - - output_path = os.path.join(OUTPUT_DIR, f'recommendations_{learner_id}.json') - with open(output_path, 'w') as f: - json.dump(output, f, indent=4) - - print(f"[✔] Recommendations saved for {learner_id}: {recommended}") diff --git a/project-gamma/graph/graph/recommendations/recommendations_L001.json b/project-gamma/graph/graph/recommendations/recommendations_L001.json deleted file mode 100644 index c8c196d08..000000000 --- a/project-gamma/graph/graph/recommendations/recommendations_L001.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "learner_id": "L001", - "recommended_concepts": [ - "Problem Solving" - ] -} \ No newline at end of file diff --git a/project-gamma/graph/graph/recommendations/recommendations_L002.json b/project-gamma/graph/graph/recommendations/recommendations_L002.json deleted file mode 100644 index 98828c503..000000000 --- a/project-gamma/graph/graph/recommendations/recommendations_L002.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "learner_id": "L002", - "recommended_concepts": [ - "Algorithms" - ] -} \ No newline at end of file diff --git a/project-gamma/graph/learner_profiles.json b/project-gamma/graph/learner_profiles.json deleted file mode 100644 index cb9629820..000000000 --- a/project-gamma/graph/learner_profiles.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "learner_id": "L001", - "mastered_concepts": ["Computation", "Algorithms"], - "weak_concepts": ["Problem Solving"] - }, - { - "learner_id": "L002", - "mastered_concepts": ["Computation"], - "weak_concepts": [] - } -] diff --git a/project-gamma/graph/lecture_prerequisites_graph (1).png b/project-gamma/graph/lecture_prerequisites_graph (1).png deleted file mode 100644 index b134c4ff9ad2e3915581f8b80cd51dab6b343227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382219 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

WXdUO0lXJ%hsEAWKyuK3%Bkx+k)O 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 diff --git a/project-gamma/graph/lecture_slides_code.html b/project-gamma/graph/lecture_slides_code.html deleted file mode 100644 index d20ba7daf..000000000 --- a/project-gamma/graph/lecture_slides_code.html +++ /dev/null @@ -1,2695 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lecture Slides and Code | Introduction to Computer Science and Programming in Python | Electrical Engineering and Computer Science | MIT OpenCourseWare - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - diff --git a/project-gamma/graph/lecture_titles.json b/project-gamma/graph/lecture_titles.json deleted file mode 100644 index 8c72a7882..000000000 --- a/project-gamma/graph/lecture_titles.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - "What is computation?", - "Branching and Iteration", - "String Manipulation, Guess and Check, Approximations, Bisection", - "Decomposition, Abstractions, Functions", - "Tuples, Lists, Aliasing, Mutability, Cloning", - "Recursion, Dictionaries", - "Testing, Debugging, Exceptions, Assertions", - "Object Oriented Programming", - "Python Classes and Inheritance", - "Understanding Program Efficiency, Part 1", - "Understanding Program Efficiency, Part 2", - "Searching and Sorting" -] \ No newline at end of file diff --git a/project-gamma/graph/lecture_titles.txt b/project-gamma/graph/lecture_titles.txt deleted file mode 100644 index 8925ad0df..000000000 --- a/project-gamma/graph/lecture_titles.txt +++ /dev/null @@ -1,12 +0,0 @@ -What is computation? -Branching and Iteration -String Manipulation, Guess and Check, Approximations, Bisection -Decomposition, Abstractions, Functions -Tuples, Lists, Aliasing, Mutability, Cloning -Recursion, Dictionaries -Testing, Debugging, Exceptions, Assertions -Object Oriented Programming -Python Classes and Inheritance -Understanding Program Efficiency, Part 1 -Understanding Program Efficiency, Part 2 -Searching and Sorting diff --git a/project-gamma/graph/lectures.json b/project-gamma/graph/lectures.json deleted file mode 100644 index 96e794672..000000000 --- a/project-gamma/graph/lectures.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { "id": 1, "title": "Introduction to Python" }, - { "id": 2, "title": "Data Types and Variables" }, - { "id": 3, "title": "Control Structures" }, - { "id": 4, "title": "Functions" }, - { "id": 5, "title": "Modules and Packages" }, - { "id": 6, "title": "Object-Oriented Programming" } -] diff --git a/project-gamma/graph/package-lock.json b/project-gamma/graph/package-lock.json deleted file mode 100644 index 54a2be663..000000000 --- a/project-gamma/graph/package-lock.json +++ /dev/null @@ -1,1224 +0,0 @@ -{ - "name": "learning_path", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "learning_path", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "bcryptjs": "^3.0.2", - "cors": "^2.8.5", - "express": "^5.1.0", - "jsonwebtoken": "^9.0.2", - "mongodb": "^6.17.0", - "mongoose": "^8.15.1" - } - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", - "integrity": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==", - "license": "MIT", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" - }, - "node_modules/@types/whatwg-url": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", - "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "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/bcryptjs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", - "integrity": "sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==", - "license": "BSD-3-Clause", - "bin": { - "bcrypt": "bin/bcrypt" - } - }, - "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/bson": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", - "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "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/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "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/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "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/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/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/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/http-errors/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/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/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jwa": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", - "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kareem": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", - "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "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/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" - }, - "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/mongodb": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.17.0.tgz", - "integrity": "sha512-neerUzg/8U26cgruLysKEjJvoNSXhyID3RvzvdcpsIi2COYM3FS3o9nlH7fxFtefTb942dX3W9i37oPfCVj4wA==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.4", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", - "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "license": "Apache-2.0", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^14.1.0 || ^13.0.0" - } - }, - "node_modules/mongoose": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.15.1.tgz", - "integrity": "sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==", - "license": "MIT", - "dependencies": { - "bson": "^6.10.3", - "kareem": "2.6.3", - "mongodb": "~6.16.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "17.1.3" - }, - "engines": { - "node": ">=16.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose/node_modules/mongodb": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.16.0.tgz", - "integrity": "sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.3", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "license": "MIT", - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "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-assign": { - "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" - } - }, - "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/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "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/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/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/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "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/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/sift": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "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/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "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/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "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/project-gamma/graph/package.json b/project-gamma/graph/package.json deleted file mode 100644 index 55c87c70d..000000000 --- a/project-gamma/graph/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "learning_path", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "description": "", - "dependencies": { - "bcryptjs": "^3.0.2", - "cors": "^2.8.5", - "express": "^5.1.0", - "jsonwebtoken": "^9.0.2", - "mongodb": "^6.17.0", - "mongoose": "^8.15.1" - } -} diff --git a/project-gamma/graph/recommendation_engine.py b/project-gamma/graph/recommendation_engine.py deleted file mode 100644 index c4600d7dc..000000000 --- a/project-gamma/graph/recommendation_engine.py +++ /dev/null @@ -1,50 +0,0 @@ -import json -import networkx as nx -import os - -# === Paths === -GRAPH_FILE = 'graph/concept_graph_full.json' -LEARNER_FILE = 'graph/learner_profiles.json' -OUTPUT_DIR = 'graph/recommendations/' - -# === Load concept graph === -with open(GRAPH_FILE) as f: - graph_data = json.load(f) -G = nx.node_link_graph(graph_data, edges="links") - - -# === Load learner profiles === -with open(LEARNER_FILE) as f: - learners = json.load(f) - -# === Ensure output directory exists === -os.makedirs(OUTPUT_DIR, exist_ok=True) - -def recommend_for_learner(profile): - mastered = set(profile['mastered_concepts']) - recommendations = [] - - for node in G.nodes: - if node in mastered: - continue - prereqs = list(G.predecessors(node)) - if all(p in mastered for p in prereqs): - recommendations.append(node) - - return recommendations - -# === Process all learners === -for learner in learners: - learner_id = learner['learner_id'] - recommended = recommend_for_learner(learner) - - output = { - 'learner_id': learner_id, - 'recommended_concepts': recommended - } - - output_path = os.path.join(OUTPUT_DIR, f'recommendations_{learner_id}.json') - with open(output_path, 'w') as f: - json.dump(output, f, indent=4) - - print(f"[✔] Recommendations saved for {learner_id}: {recommended}") diff --git a/project-gamma/graph/recommendations.json b/project-gamma/graph/recommendations.json deleted file mode 100644 index a52ec9236..000000000 --- a/project-gamma/graph/recommendations.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "learner_id": "L001", - "recommended_path": ["Problem Solving", "Conditionals", "Loops", "Control Flow"] - }, - { - "learner_id": "L002", - "recommended_path": ["Algorithms", "Problem Solving", "Conditionals"] - } -] diff --git a/project-gamma/graph/recommendations/recommendations_L001.json b/project-gamma/graph/recommendations/recommendations_L001.json deleted file mode 100644 index c8c196d08..000000000 --- a/project-gamma/graph/recommendations/recommendations_L001.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "learner_id": "L001", - "recommended_concepts": [ - "Problem Solving" - ] -} \ No newline at end of file diff --git a/project-gamma/graph/recommendations/recommendations_L002.json b/project-gamma/graph/recommendations/recommendations_L002.json deleted file mode 100644 index 98828c503..000000000 --- a/project-gamma/graph/recommendations/recommendations_L002.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "learner_id": "L002", - "recommended_concepts": [ - "Algorithms" - ] -} \ No newline at end of file diff --git a/project-gamma/graph/scraper/.gitkeep b/project-gamma/graph/scraper/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/project-gamma/graph/server.js b/project-gamma/graph/server.js deleted file mode 100644 index 62f86991a..000000000 --- a/project-gamma/graph/server.js +++ /dev/null @@ -1,14 +0,0 @@ -const express = require('express'); -const fs = require('fs'); -const cors = require('cors'); -const app = express(); -const PORT = 5000; - -app.use(cors()); - -app.get('/api/lectures', (req, res) => { - const data = fs.readFileSync('lectures.json', 'utf-8'); - res.json(JSON.parse(data)); -}); - -app.listen(PORT, () => console.log(`Server running on http://localhost:${PORT}`)); diff --git a/project-gamma/graph/server/.gitkeep b/project-gamma/graph/server/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/project-gamma/index.html b/project-gamma/index.html deleted file mode 100644 index c2ff230a0..000000000 --- a/project-gamma/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Complete DSA AI Tutor Application with Interactive Pages - - -
- - - diff --git a/project-gamma/package-lock.json b/project-gamma/package-lock.json deleted file mode 100644 index d9c37e56f..000000000 --- a/project-gamma/package-lock.json +++ /dev/null @@ -1,4051 +0,0 @@ -{ - "name": "vite-react-typescript-starter", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "vite-react-typescript-starter", - "version": "0.0.0", - "dependencies": { - "lucide-react": "^0.344.0", - "react": "^18.3.1", - "react-dom": "^18.3.1" - }, - "devDependencies": { - "@eslint/js": "^9.9.1", - "@types/react": "^18.3.5", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.18", - "eslint": "^9.9.1", - "eslint-plugin-react-hooks": "^5.1.0-rc.0", - "eslint-plugin-react-refresh": "^0.4.11", - "globals": "^15.9.0", - "postcss": "^8.4.35", - "tailwindcss": "^3.4.1", - "typescript": "^5.5.3", - "typescript-eslint": "^8.3.0", - "vite": "^5.4.2" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", - "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.25.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", - "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", - "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", - "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", - "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", - "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", - "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.25.7", - "@babel/helper-simple-access": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "@babel/traverse": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", - "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", - "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", - "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", - "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", - "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", - "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", - "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", - "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", - "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", - "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "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, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", - "dev": true, - "dependencies": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", - "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", - "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", - "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", - "dev": true, - "dependencies": { - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", - "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", - "dev": true, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", - "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", - "dev": true, - "dependencies": { - "@humanfs/core": "^0.19.0", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "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==", - "dev": true - }, - "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 - }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "dev": true - }, - "node_modules/@types/react": { - "version": "18.3.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", - "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz", - "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.8.1", - "@typescript-eslint/type-utils": "8.8.1", - "@typescript-eslint/utils": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", - "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "8.8.1", - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/typescript-estree": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz", - "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz", - "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "8.8.1", - "@typescript-eslint/utils": "8.8.1", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz", - "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz", - "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/visitor-keys": "8.8.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz", - "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.8.1", - "@typescript-eslint/types": "8.8.1", - "@typescript-eslint/typescript-estree": "8.8.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz", - "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.8.1", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "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, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", - "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", - "dev": true - }, - "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 - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "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==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "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 - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.5.33", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", - "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", - "dev": 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==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", - "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.18.0", - "@eslint/core": "^0.6.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.12.0", - "@eslint/plugin-kit": "^0.2.0", - "@humanfs/node": "^0.16.5", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.1.0", - "eslint-visitor-keys": "^4.1.0", - "espree": "^10.2.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.1.0-rc-fb9a90fa48-20240614", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", - "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", - "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", - "dev": true, - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-scope": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", - "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", - "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/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==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", - "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", - "dev": true, - "dependencies": { - "acorn": "^8.12.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "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 - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "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==" - }, - "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, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "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 - }, - "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 - }, - "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 - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "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 - }, - "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==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.344.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.344.0.tgz", - "integrity": "sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "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==", - "dev": true - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": 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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/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==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "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==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true - }, - "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, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react": { - "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==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", - "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "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 - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "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==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "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==", - "dev": true - }, - "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, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz", - "integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.8.1", - "@typescript-eslint/parser": "8.8.1", - "@typescript-eslint/utils": "8.8.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "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==", - "dev": true - }, - "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/project-gamma/package.json b/project-gamma/package.json deleted file mode 100644 index feb68fdca..000000000 --- a/project-gamma/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "vite-react-typescript-starter", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "lucide-react": "^0.344.0", - "react": "^18.3.1", - "react-dom": "^18.3.1" - }, - "devDependencies": { - "@eslint/js": "^9.9.1", - "@types/react": "^18.3.5", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.18", - "eslint": "^9.9.1", - "eslint-plugin-react-hooks": "^5.1.0-rc.0", - "eslint-plugin-react-refresh": "^0.4.11", - "globals": "^15.9.0", - "postcss": "^8.4.35", - "tailwindcss": "^3.4.1", - "typescript": "^5.5.3", - "typescript-eslint": "^8.3.0", - "vite": "^5.4.2" - } -} diff --git a/project-gamma/postcss.config.js b/project-gamma/postcss.config.js deleted file mode 100644 index 2aa7205d4..000000000 --- a/project-gamma/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/project-gamma/src/App.tsx b/project-gamma/src/App.tsx deleted file mode 100644 index 246ecb3a8..000000000 --- a/project-gamma/src/App.tsx +++ /dev/null @@ -1,1151 +0,0 @@ -import React, { useState } from 'react'; -import { Dashboard } from './components/Dashboard'; -import { TopicLearning } from './components/TopicLearning'; -import { ExamPage } from './components/ExamPage'; -import { mockTopics } from './data/mockData'; -import { Topic } from './types'; -import { - BookOpen, - Brain, - TrendingUp, - Users, - Star, - CheckCircle, - ArrowRight, - Menu, - X, - Target, - Award, - Clock, - Zap, - BarChart3, - Heart, - Mail, - Phone, - MapPin, - Code, - Database, - TreePine, - GitBranch, - Eye, - EyeOff, - Cpu, - Lightbulb, - Sparkles, - Shield, - Rocket, - Globe -} from 'lucide-react'; -import HelpCenter from './pages/HelpCenter'; -import Contact from './pages/Contact'; -import PrivacyPolicy from './pages/PrivacyPolicy'; -import TermsOfService from './pages/TermsOfService'; - -type Page = 'home' | 'login' | 'signup' | 'dashboard' | 'forgot-password' | 'reset-password' | 'topic-learning' | 'exam' | 'help-center' | 'contact' | 'privacy-policy' | 'terms-of-service'; - -function App() { - const [isMenuOpen, setIsMenuOpen] = useState(false); - const [currentPage, setCurrentPage] = useState('home'); - const [showPassword, setShowPassword] = useState(false); - const [showConfirmPassword, setShowConfirmPassword] = useState(false); - const [resetToken, setResetToken] = useState(null); - const [resetEmail, setResetEmail] = useState(''); - const [resetStatus, setResetStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); - const [resetMessage, setResetMessage] = useState(''); - const [selectedTopic, setSelectedTopic] = useState(null); - - const features = [ - { - icon: Brain, - title: "AI-Powered Learning Path", - description: "Our intelligent system analyzes your coding skills and creates personalized DSA learning recommendations tailored to your pace and goals." - }, - { - icon: Code, - title: "Interactive Coding Environment", - description: "Practice DSA problems with our built-in code editor supporting multiple programming languages with real-time AI feedback and hints." - }, - { - icon: Sparkles, - title: "Smart Problem Recommendations", - description: "AI curates the perfect sequence of problems based on your progress, ensuring optimal learning curve and skill development." - }, - { - icon: Target, - title: "Adaptive Difficulty System", - description: "Machine learning algorithms adjust problem difficulty in real-time based on your performance and learning patterns." - } - ]; - - const howItWorks = [ - { - step: "01", - title: "Create Your Free Account", - description: "Sign up in seconds with just your email. No credit card required, no hidden fees - completely free forever." - }, - { - step: "02", - title: "AI Skill Assessment", - description: "Take our intelligent assessment test where AI evaluates your current DSA knowledge and identifies your strengths and areas for improvement." - }, - { - step: "03", - title: "Get Personalized Roadmap", - description: "Receive an AI-generated learning path with customized topics, problems, and study schedules based on your goals and available time." - }, - { - step: "04", - title: "Start Learning with AI", - description: "Access hundreds of DSA topics, solve AI-recommended problems, and get intelligent hints and explanations as you progress." - } - ]; - - const stats = [ - { number: "500+", label: "AI-Curated Problems" }, - { number: "50+", label: "Data Structures" }, - { number: "100+", label: "Algorithm Patterns" }, - { number: "100%", label: "Free Forever" } - ]; - - const benefits = [ - { - icon: Shield, - title: "Always Free", - description: "Complete access to all features, forever. No premium plans, no hidden costs." - }, - { - icon: Brain, - title: "AI-Powered", - description: "Intelligent recommendations that adapt to your learning style and progress." - }, - { - icon: Rocket, - title: "Career Ready", - description: "Master DSA concepts that top tech companies test in their interviews." - }, - { - icon: Globe, - title: "Learn Anywhere", - description: "Access your personalized learning path from any device, anytime." - } - ]; - - const handlePageChange = (page: Page) => { - setCurrentPage(page); - if (page === 'login' || page === 'home') { - setResetStatus('idle'); - setResetMessage(''); - setResetEmail(''); - setResetToken(null); - } - if (page === 'reset-password') { - setResetStatus('idle'); - setResetMessage(''); - } - }; - - const handleLogin = (e: React.FormEvent) => { - e.preventDefault(); - setCurrentPage('dashboard'); - }; - - const handleSignup = (e: React.FormEvent) => { - e.preventDefault(); - setCurrentPage('dashboard'); - }; - - const handleLogout = () => { - setCurrentPage('home'); - setSelectedTopic(null); - }; - - const handleStartTopic = (topicId: string) => { - const topic = mockTopics.find(t => t.id === topicId); - if (topic) { - setSelectedTopic(topic); - setCurrentPage('topic-learning'); - } - }; - - const handleTakeExam = (topicId: string) => { - const topic = mockTopics.find(t => t.id === topicId); - if (topic) { - setSelectedTopic(topic); - setCurrentPage('exam'); - } - }; - - const handleExamComplete = (score: number) => { - // Update topic with exam score - console.log('Exam completed with score:', score); - }; - - const handleForgotPassword = async (e: React.FormEvent) => { - e.preventDefault(); - setResetStatus('loading'); - try { - await new Promise(resolve => setTimeout(resolve, 1000)); - setResetStatus('success'); - setResetMessage('Password reset instructions have been sent to your email.'); - setTimeout(() => { - setCurrentPage('reset-password'); - setResetStatus('idle'); - setResetMessage(''); - }, 2000); - } catch (error) { - setResetStatus('error'); - setResetMessage('Failed to send reset instructions. Please try again.'); - } - }; - - const handleResetPassword = async (e: React.FormEvent) => { - e.preventDefault(); - const form = e.target as HTMLFormElement; - const newPassword = (form.elements.namedItem('new-password') as HTMLInputElement).value; - const confirmPassword = (form.elements.namedItem('confirm-new-password') as HTMLInputElement).value; - - if (newPassword !== confirmPassword) { - setResetStatus('error'); - setResetMessage('Passwords do not match. Please try again.'); - return; - } - - if (newPassword.length < 8) { - setResetStatus('error'); - setResetMessage('Password must be at least 8 characters long.'); - return; - } - - setResetStatus('loading'); - try { - await new Promise(resolve => setTimeout(resolve, 1000)); - setResetStatus('success'); - setResetMessage('Your password has been reset successfully.'); - setTimeout(() => { - handlePageChange('login'); - }, 2000); - } catch (error) { - setResetStatus('error'); - setResetMessage('Failed to reset password. Please try again.'); - } - }; - - const renderHomePage = () => ( -
- {/* Navigation */} - - - {/* Hero Section */} -
-
-
-
-
-
- - AI-Powered Learning • 100% Free Forever -
-

- Master - DSA with AI - Recommendations -

-

- Experience personalized Data Structures & Algorithms learning with our intelligent recommendation system. - AI analyzes your progress and creates the perfect learning path just for you - completely free! -

-
- -
- - -
- -
-
-
- User - User - User -
- Join 25K+ students -
-
- {[...Array(5)].map((_, i) => ( - - ))} - 4.9/5 AI rating -
-
-
- -
-
- AI-powered programming and coding -
-
-
- - {/* AI Badge */} -
-
- - AI Powered -
-
-
-
-
-
- - {/* Stats Section */} -
-
-
- {stats.map((stat, index) => ( -
-
{stat.number}
-
{stat.label}
-
- ))} -
-
-
- - {/* Features Section */} -
-
-
-

- AI-Powered DSA Learning Features -

-

- Experience the future of DSA education with our intelligent recommendation system that adapts to your learning style and pace. -

-
- -
- {features.map((feature, index) => ( -
-
- -
-

{feature.title}

-

{feature.description}

-
- ))} -
-
-
- - {/* How It Works Section */} -
-
-
-

- How to Get Started with AI Learning -

-

- Join thousands of students who are mastering DSA with our AI-powered platform. - Getting started is simple and completely free. -

-
- -
-
- {howItWorks.map((step, index) => ( -
-
-
- {step.step} -
-
-
-

{step.title}

-

{step.description}

-
-
- ))} -
- -
- AI-powered coding and algorithms -
-
- - AI Analyzing Progress -
-
-
-
- - Personalized Path Ready -
-
-
-
-
-
- - {/* Benefits Section */} -
-
-
-

- Why Choose DSA AI Tutor? -

-

- Experience the most advanced AI-powered DSA learning platform designed to help you succeed in tech interviews and beyond. -

-
- -
- {benefits.map((benefit, index) => ( -
-
- -
-

{benefit.title}

-

{benefit.description}

-
- ))} -
-
-
- - {/* CTA Section */} -
-
-

- Ready to Experience AI-Powered DSA Learning? -

-

- Join thousands of students who are mastering DSA with personalized AI recommendations. - Start your intelligent learning journey today - completely free! -

-
- - -
-
-

✨ Always Free • No Hidden Costs • AI-Powered

-
-
-
- - {/* Newsletter Section */} -
-
-

- Get AI-Curated DSA Tips & Updates -

-

- Receive weekly AI-selected coding challenges, algorithm explanations, and personalized learning tips. -

-
- - -
-
-
- - {/* Footer */} -
-
-
-
-
-
- -
- DSA AI Tutor -
-

- The world's first AI-powered DSA education recommendation system. - Personalized learning paths, intelligent problem curation, and adaptive difficulty - all completely free. -

-
-
- - mernstack@gmail.com -
-
- - +91 9876543219 -
-
- - IIT Ropar, India -
-
-
- -
-

AI Platform

-
    -
  • -
  • -
  • -
  • -
-
- -
-

Support

-
    -
  • -
  • -
  • -
  • -
-
-
- -
-

© 2025 DSA AI Tutor. All rights reserved. • Always Free • AI-Powered Learning

-
-
-
-
- ); - - const renderLoginPage = () => ( -
-
-
-
-
- -
-
-

Welcome back to AI Learning

-

- Don't have an account?{' '} - -

-
- -
-
-
- - -
- -
- -
- - -
-
- -
-
- - -
- -
- -
-
- -
- -
-
-
- -
- -
-
-
- ); - - const renderSignupPage = () => ( -
-
-
-
-
- -
-
-

Start Your AI Learning Journey

-

- Already have an account?{' '} - -

-
- - 100% Free Forever • No Credit Card Required -
-
- -
-
-
-
- - -
-
- - -
-
- -
- - -
- -
- -
- - -
-
- -
- -
- - -
-
- -
- - -
- -
- -
-
-
- -
- -
-
-
- ); - - const renderForgotPasswordPage = () => ( -
-
-
-
-
- -
-
-

Reset Your Password

-

- Enter your email address and we'll send you instructions to reset your password. -

-
- -
- {resetStatus === 'success' ? ( -
-
- -
-

{resetMessage}

- -
- ) : ( -
-
- - setResetEmail(e.target.value)} - className="mt-1 appearance-none relative block w-full px-3 py-3 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500" - placeholder="Enter your email" - /> -
- - {resetStatus === 'error' && ( -
- {resetMessage} -
- )} - -
- -
-
- )} -
- -
- -
-
-
- ); - - const renderResetPasswordPage = () => ( -
-
-
-
-
- -
-
-

Set New Password

-

- Please enter your new password below. -

- {resetEmail && ( -

- Resetting password for: {resetEmail} -

- )} -
- -
- {resetStatus === 'success' ? ( -
-
- -
-

{resetMessage}

- -
- ) : ( -
-
- -
- - -
-
- -
- -
- - -
-
- - {resetStatus === 'error' && ( -
- {resetMessage} -
- )} - -
- -
-
- )} -
-
-
- ); - - return ( - <> - {currentPage === 'home' && renderHomePage()} - {currentPage === 'login' && renderLoginPage()} - {currentPage === 'signup' && renderSignupPage()} - {currentPage === 'dashboard' && ( - - )} - {currentPage === 'forgot-password' && renderForgotPasswordPage()} - {currentPage === 'reset-password' && renderResetPasswordPage()} - {currentPage === 'topic-learning' && selectedTopic && ( - setCurrentPage('dashboard')} - onTakeExam={() => setCurrentPage('exam')} - /> - )} - {currentPage === 'exam' && selectedTopic && ( - setCurrentPage('dashboard')} - onComplete={handleExamComplete} - /> - )} - {currentPage === 'help-center' && setCurrentPage('home')} />} - {currentPage === 'contact' && setCurrentPage('home')} />} - {currentPage === 'privacy-policy' && setCurrentPage('home')} />} - {currentPage === 'terms-of-service' && setCurrentPage('home')} />} - - ); -} - -export default App; \ No newline at end of file diff --git a/project-gamma/src/components/Dashboard.tsx b/project-gamma/src/components/Dashboard.tsx deleted file mode 100644 index a2aaf1b32..000000000 --- a/project-gamma/src/components/Dashboard.tsx +++ /dev/null @@ -1,284 +0,0 @@ -import React, { useState } from 'react'; -import { UserProfile } from './UserProfile'; -import { ProgressChart } from './ProgressChart'; -import { TopicCard } from './TopicCard'; -import { RecommendedTopics } from './RecommendedTopics'; -import { KnownTopics } from './KnownTopics'; -import { - mockUser, - mockTopics, - mockExamResults, - mockProgressData, - mockAIRecommendations -} from '../data/mockData'; -import { - Brain, - BookOpen, - TrendingUp, - Settings, - LogOut, - Menu, - X, - Bell, - Search -} from 'lucide-react'; - -interface DashboardProps { - onLogout: () => void; - onStartTopic: (topicId: string) => void; - onTakeExam: (topicId: string) => void; -} - -export const Dashboard: React.FC = ({ - onLogout, - onStartTopic, - onTakeExam -}) => { - const [isMenuOpen, setIsMenuOpen] = useState(false); - const [activeTab, setActiveTab] = useState<'overview' | 'topics' | 'progress'>('overview'); - - const inProgressTopics = mockTopics.filter(topic => topic.status === 'in-progress'); - - return ( -
- {/* Header */} -
-
-
-
-
-
- -
- DSA AI Tutor -
- -
- - - -
-
- -
-
- - -
- - - - - - - - -
-
-
- - {/* Mobile Menu */} - {isMenuOpen && ( -
-
- - - -
-
- )} -
- - {/* Main Content */} -
- {activeTab === 'overview' && ( -
- {/* Welcome Section */} -
-
-
-

Welcome back, {mockUser.name}!

-

Ready to continue your DSA learning journey?

-
-
- AI Learning -
-
-
- - {/* User Profile and Progress */} -
-
- -
-
- -
-
- - {/* AI Recommendations */} - - - {/* Current Topics */} - {inProgressTopics.length > 0 && ( -
-

Continue Learning

-
- {inProgressTopics.map(topic => ( - - ))} -
-
- )} - - {/* Known Topics */} - -
- )} - - {activeTab === 'topics' && ( -
-
-

All DSA Topics

-
- - {mockTopics.length} Topics Available -
-
- -
- {mockTopics.map(topic => ( - - ))} -
-
- )} - - {activeTab === 'progress' && ( -
-
-

Learning Progress

-
- - Detailed Analytics -
-
- -
- - -
- -
-

Exam Results

-
- {mockExamResults.map((result, index) => ( -
-
-

{result.topicName}

-

- {new Date(result.date).toLocaleDateString()} • {result.timeSpent} minutes -

-
-
-
{result.score}%
-
{result.accuracy}% accuracy
-
-
- ))} -
-
-
- )} -
-
- ); -}; \ No newline at end of file diff --git a/project-gamma/src/components/ExamPage.tsx b/project-gamma/src/components/ExamPage.tsx deleted file mode 100644 index f94a0b8b4..000000000 --- a/project-gamma/src/components/ExamPage.tsx +++ /dev/null @@ -1,330 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { Topic, ExamQuestion } from '../types'; -import { mockExamQuestions } from '../data/mockData'; -import { - ArrowLeft, - Clock, - CheckCircle, - AlertCircle, - Award, - TrendingUp, - RotateCcw -} from 'lucide-react'; - -interface ExamPageProps { - topic: Topic; - onBack: () => void; - onComplete: (score: number) => void; -} - -export const ExamPage: React.FC = ({ - topic, - onBack, - onComplete -}) => { - const [currentQuestion, setCurrentQuestion] = useState(0); - const [selectedAnswers, setSelectedAnswers] = useState([]); - const [timeLeft, setTimeLeft] = useState(1800); // 30 minutes - const [showResults, setShowResults] = useState(false); - const [score, setScore] = useState(0); - - const questions = mockExamQuestions; // In real app, filter by topic - - useEffect(() => { - if (timeLeft > 0 && !showResults) { - const timer = setTimeout(() => setTimeLeft(timeLeft - 1), 1000); - return () => clearTimeout(timer); - } else if (timeLeft === 0) { - handleSubmitExam(); - } - }, [timeLeft, showResults]); - - const formatTime = (seconds: number) => { - const mins = Math.floor(seconds / 60); - const secs = seconds % 60; - return `${mins}:${secs.toString().padStart(2, '0')}`; - }; - - const handleAnswerSelect = (answerIndex: number) => { - const newAnswers = [...selectedAnswers]; - newAnswers[currentQuestion] = answerIndex; - setSelectedAnswers(newAnswers); - }; - - const handleNextQuestion = () => { - if (currentQuestion < questions.length - 1) { - setCurrentQuestion(currentQuestion + 1); - } - }; - - const handlePreviousQuestion = () => { - if (currentQuestion > 0) { - setCurrentQuestion(currentQuestion - 1); - } - }; - - const handleSubmitExam = () => { - let correctAnswers = 0; - questions.forEach((question, index) => { - if (selectedAnswers[index] === question.correctAnswer) { - correctAnswers++; - } - }); - - const finalScore = Math.round((correctAnswers / questions.length) * 100); - setScore(finalScore); - setShowResults(true); - onComplete(finalScore); - }; - - const handleRetakeExam = () => { - setCurrentQuestion(0); - setSelectedAnswers([]); - setTimeLeft(1800); - setShowResults(false); - setScore(0); - }; - - if (showResults) { - return ( -
-
-
-
- -

Exam Results - {topic.name}

-
-
-
- -
-
-
- {score >= 80 ? ( - - ) : score >= 60 ? ( - - ) : ( - - )} - -

- {score >= 80 ? 'Excellent!' : score >= 60 ? 'Good Job!' : 'Keep Practicing!'} -

-

- You scored {score}% on the {topic.name} exam -

-
- -
-
- -
{score}%
-
Final Score
-
-
- -
- {selectedAnswers.filter((answer, index) => answer === questions[index]?.correctAnswer).length} -
-
Correct Answers
-
-
- -
- {formatTime(1800 - timeLeft)} -
-
Time Taken
-
-
- -
-

Question Review

-
- {questions.map((question, index) => { - const isCorrect = selectedAnswers[index] === question.correctAnswer; - const wasAnswered = selectedAnswers[index] !== undefined; - - return ( -
- Question {index + 1} -
- {!wasAnswered ? ( - Not Answered - ) : isCorrect ? ( - - ) : ( - - )} -
-
- ); - })} -
-
- -
- - -
-
-
-
- ); - } - - const currentQ = questions[currentQuestion]; - - return ( -
-
-
-
- -

{topic.name} Exam

-
-
-
- - {formatTime(timeLeft)} -
-
- Question {currentQuestion + 1} of {questions.length} -
-
-
-
- -
-
- {/* Progress Bar */} -
-
-
-
-
- - {/* Question */} -
-
-
- Question {currentQuestion + 1} - - {currentQ.difficulty} - -
-

{currentQ.question}

-
- -
- {currentQ.options.map((option, index) => ( - - ))} -
- -
- - -
- {currentQuestion === questions.length - 1 ? ( - - ) : ( - - )} -
-
-
-
- - {/* Question Navigator */} -
-

Question Navigator

-
- {questions.map((_, index) => ( - - ))} -
-
-
-
- ); -}; \ No newline at end of file diff --git a/project-gamma/src/components/KnownTopics.tsx b/project-gamma/src/components/KnownTopics.tsx deleted file mode 100644 index 69f175fc2..000000000 --- a/project-gamma/src/components/KnownTopics.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import React from 'react'; -import { Topic, ExamResult } from '../types'; -import { TopicCard } from './TopicCard'; -import { CheckCircle, Award, TrendingUp } from 'lucide-react'; - -interface KnownTopicsProps { - topics: Topic[]; - examResults: ExamResult[]; - onTakeExam: (topicId: string) => void; -} - -export const KnownTopics: React.FC = ({ - topics, - examResults, - onTakeExam -}) => { - const knownTopics = topics.filter(topic => - topic.status === 'completed' || topic.status === 'mastered' - ); - - const getTopicExamResult = (topicId: string) => { - return examResults.find(result => result.topicId === topicId); - }; - - return ( -
-
-
- -
-
-

Known Topics

-

Topics you've mastered and completed

-
-
- -
- {knownTopics.map(topic => { - const examResult = getTopicExamResult(topic.id); - - return ( -
-
-

{topic.name}

- {topic.status === 'mastered' && ( - - )} -
- -
-
- Progress - {topic.progress}% -
- -
-
-
- -
- Problems: {topic.problemsSolved}/{topic.totalProblems} - {examResult && ( -
- - {examResult.score}% -
- )} -
-
- -
- - -
-
- ); - })} -
- - {knownTopics.length === 0 && ( -
- -

Complete your first topic to see it here!

-
- )} -
- ); -}; \ No newline at end of file diff --git a/project-gamma/src/components/ProgressChart.tsx b/project-gamma/src/components/ProgressChart.tsx deleted file mode 100644 index b496eedbb..000000000 --- a/project-gamma/src/components/ProgressChart.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import React from 'react'; -import { ProgressData } from '../types'; -import { TrendingUp, BarChart3, Calendar } from 'lucide-react'; - -interface ProgressChartProps { - data: ProgressData[]; -} - -export const ProgressChart: React.FC = ({ data }) => { - const maxProblems = Math.max(...data.map(d => d.problemsSolved)); - const avgAccuracy = Math.round(data.reduce((acc, d) => acc + d.accuracy, 0) / data.length); - const totalProblems = data.reduce((acc, d) => acc + d.problemsSolved, 0); - - return ( -
-
-

Learning Progress

-
- - Last 7 days -
-
- -
-
- -
{totalProblems}
-
Problems Solved
-
-
- -
{avgAccuracy}%
-
Avg Accuracy
-
-
- -
{data.length}
-
Active Days
-
-
- -
-

Daily Activity

-
- {data.map((day, index) => ( -
-
- {new Date(day.date).toLocaleDateString('en-US', { month: 'short', day: 'numeric' })} -
-
-
-
-
-
- {day.problemsSolved} -
-
- {day.accuracy}% -
-
-
- ))} -
-
-
- ); -}; \ No newline at end of file diff --git a/project-gamma/src/components/RecommendedTopics.tsx b/project-gamma/src/components/RecommendedTopics.tsx deleted file mode 100644 index c56a3bee6..000000000 --- a/project-gamma/src/components/RecommendedTopics.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import React from 'react'; -import { Topic, AIRecommendation } from '../types'; -import { TopicCard } from './TopicCard'; -import { Brain, Sparkles, TrendingUp } from 'lucide-react'; - -interface RecommendedTopicsProps { - topics: Topic[]; - recommendations: AIRecommendation[]; - onStartTopic: (topicId: string) => void; -} - -export const RecommendedTopics: React.FC = ({ - topics, - recommendations, - onStartTopic -}) => { - const recommendedTopics = topics.filter(topic => - recommendations.some(rec => rec.topicId === topic.id) - ); - - return ( -
-
-
- -
-
-

AI Recommendations

-

Personalized learning path based on your progress

-
-
- -
- {recommendations.map((rec, index) => { - const topic = topics.find(t => t.id === rec.topicId); - if (!topic) return null; - - return ( -
-
-
- #{index + 1} -
- -
-
-

{topic.name}

-
- - - {rec.confidence}% match - -
-
- -

{rec.reason}

- -
-
-
- - - Difficulty: {rec.estimatedDifficulty}/10 - -
-
- {rec.prereqsMet ? 'Prerequisites met' : 'Some prerequisites missing'} -
-
- - -
-
-
-
- ); - })} -
- - {recommendations.length === 0 && ( -
- -

AI is analyzing your progress to generate recommendations...

-
- )} -
- ); -}; \ No newline at end of file diff --git a/project-gamma/src/components/TopicCard.tsx b/project-gamma/src/components/TopicCard.tsx deleted file mode 100644 index cefd1020c..000000000 --- a/project-gamma/src/components/TopicCard.tsx +++ /dev/null @@ -1,139 +0,0 @@ -import React from 'react'; -import { Topic } from '../types'; -import { - CheckCircle, - Clock, - Play, - BookOpen, - Award, - Target, - TrendingUp -} from 'lucide-react'; - -interface TopicCardProps { - topic: Topic; - onStartTopic?: (topicId: string) => void; - onTakeExam?: (topicId: string) => void; -} - -export const TopicCard: React.FC = ({ - topic, - onStartTopic, - onTakeExam -}) => { - const getDifficultyColor = (difficulty: string) => { - switch (difficulty) { - case 'Beginner': return 'bg-green-100 text-green-700'; - case 'Intermediate': return 'bg-yellow-100 text-yellow-700'; - case 'Advanced': return 'bg-red-100 text-red-700'; - default: return 'bg-gray-100 text-gray-700'; - } - }; - - const getStatusIcon = () => { - switch (topic.status) { - case 'completed': - return ; - case 'in-progress': - return ; - case 'mastered': - return ; - default: - return ; - } - }; - - const getStatusText = () => { - switch (topic.status) { - case 'completed': return 'Completed'; - case 'in-progress': return 'In Progress'; - case 'mastered': return 'Mastered'; - default: return 'Not Started'; - } - }; - - return ( -
-
-
- {getStatusIcon()} -

{topic.name}

-
- - {topic.difficulty} - -
- -

{topic.description}

- -
-
- Progress - {topic.progress}% -
-
-
-
- -
-
- - {topic.problemsSolved}/{topic.totalProblems} problems -
-
- - {topic.estimatedTime} -
-
- - {topic.examScore && ( -
- Last exam score -
- - {topic.examScore}% -
-
- )} -
- -
- {topic.status === 'not-started' && ( - - )} - - {(topic.status === 'in-progress' || topic.status === 'completed') && ( - <> - - - - )} -
- - {topic.status === 'completed' && ( -
- {getStatusText()} -
- )} -
- ); -}; \ No newline at end of file diff --git a/project-gamma/src/components/TopicLearning.tsx b/project-gamma/src/components/TopicLearning.tsx deleted file mode 100644 index b062b7154..000000000 --- a/project-gamma/src/components/TopicLearning.tsx +++ /dev/null @@ -1,312 +0,0 @@ -import React, { useState } from 'react'; -import { Topic, Problem } from '../types'; -import { mockProblems } from '../data/mockData'; -import { - ArrowLeft, - Play, - CheckCircle, - Clock, - Target, - Lightbulb, - Code, - TestTube, - BookOpen -} from 'lucide-react'; - -interface TopicLearningProps { - topic: Topic; - onBack: () => void; - onTakeExam: () => void; -} - -export const TopicLearning: React.FC = ({ - topic, - onBack, - onTakeExam -}) => { - const [selectedProblem, setSelectedProblem] = useState(null); - const [showHints, setShowHints] = useState(false); - const [code, setCode] = useState(''); - - const problems = mockProblems.filter(p => - p.category.toLowerCase().includes(topic.name.toLowerCase().split(' ')[0]) - ); - - const handleRunCode = () => { - // Simulate code execution - alert('Code executed successfully! All test cases passed.'); - }; - - const handleSubmitSolution = () => { - // Simulate solution submission - alert('Solution submitted! You earned 10 XP.'); - }; - - if (selectedProblem) { - return ( -
-
-
-
- -
-

{selectedProblem.title}

-
- - {selectedProblem.difficulty} - - {selectedProblem.category} -
-
-
-
-
- -
-
- {/* Problem Description */} -
-
-

Problem Description

-

{selectedProblem.description}

- -
-

Example:

- {selectedProblem.testCases.map((testCase, index) => ( -
-
-
- Input: - {testCase.input} -
-
- Output: - {testCase.expectedOutput} -
- {testCase.explanation && ( -
- Explanation: - {testCase.explanation} -
- )} -
-
- ))} -
- -
-
-

Hints

- -
- {showHints && ( -
- {selectedProblem.hints.map((hint, index) => ( -
-

{hint}

-
- ))} -
- )} -
-
-
- - {/* Code Editor */} -
-
-
-
-

Code Editor

- -
-
-
-
- - - - - - - - - - - -
- -
- - -
- -
- -
-
- - - - -
-
-
-
- - 6.0001 | Fall 2016 | Undergraduate -
-
-

- Introduction to Computer Science and Programming in Python -

-
-
-
-
-
-
- - -
-
-
-
-
-
-
- -
- -
-
- - - - - - -
-
-
-
-
-
-
-
-
- - - - -
-
- -
-
-
-
-
-
-
- -
-
-
-
- -

Lecture Slides and Code

-
-
-
- -
-

The slides and code from each lecture are available below.

-

- - - - - - - - - - - - -

- - -

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

- - -
- -SES # - - -TOPICS - - -LECTURE SLIDES - - -LECTURE CODES -
- -1 - - -What is computation? - - -Slides for Lecture 1 (PDF) - - -Code for Lecture 1 (PY) -
- -2 - - -Branching and Iteration - - -Slides for Lecture 2 (PDF) - - -Code for Lecture 2 (PY) -
- -3 - - -String Manipulation, Guess and Check, Approximations, Bisection - - -Slides for Lecture 3 (PDF) - - -Code for Lecture 3 (PY) -
- -4 - - -Decomposition, Abstractions, Functions - - -Slides for Lecture 4 (PDF 1.1MB) - - -Code for Lecture 4 (PY) -
- -5 - - -Tuples, Lists, Aliasing, Mutability, Cloning - - -Slides for Lecture 5 (PDF) - - -Code for Lecture 5 (PY) -
- -6 - - -Recursion, Dictionaries - - -Slides for Lecture 6 (PDF - 1.3MB) - - -Code for Lecture 6 (PY) -
- -7 - - -Testing, Debugging, Exceptions, Assertions - - -Slides for Lecture 7 (PDF) - - -Code for Lecture 7 (PY) -
- -8 - - -Object Oriented Programming - - -Slides for Lecture 8 (PDF) - - -Code for Lecture 8 (PY) -
- -9 - - -Python Classes and Inheritance - - -Slides for Lecture 9 (PDF - 1.6MB) - - -Code for Lecture 9 (PY) -
- -10 - - -Understanding Program Efficiency, Part 1 - - -Slides for Lecture 10 (PDF) - - -Code for Lecture 10 (PY) -
- -11 - - -Understanding Program Efficiency, Part 2 - - -Slides for Lecture 11 (PDF) - - -Code for Lecture 11 (PY) -
- -12 - - -Searching and Sorting - - -Slides for Lecture 12 (PDF - 2.4MB) - - -Code for Lecture 12 (PY) -
- -

-
-
- - -
-
- - - -
- - -
-
-

- Course Info -

-
-
-
-
- -
- -
- Instructors -
-
- - - - - - - - -
-
- - - - -
-
- Departments -
-
- - - - - - - - -
-
- - - -
-
- As Taught In -
-
- Fall - - 2016 - -
-
- -
-
- Level -
-
- - - Undergraduate
- - -
-
- -
- - -
-
-
- -
- - - - - - -
-
- Topics -
- -
- - - - - -
-
- Learning Resource Types -
-
-
- -
- - -
-
- - Problem Sets -
-
- -
- -
- - -
-
- - Lecture Notes -
-
- -
- -
- - -
-
- - Lecture Videos -
-
- -
- -
- - -
-
- - Programming Assignments with Examples -
-
- -
- -
-
-
- - -
- -
-
- - -
-
-
-
-
-
- - - - -
- - - - - - - - - - - -
- -
- - -
- -
- -
-
- - - - -
-
-
-
- - 6.0001 | Fall 2016 | Undergraduate -
-
-

- Introduction to Computer Science and Programming in Python -

-
-
-
-
-
-
- - -
-
-
-
-
-
-
- -
- -
-
- - - - - - -
-
-
-
-
-
-
-
-
- - - - -
-
- -
-
-
-
-
-
-
- -
-
-
-
- -

Lecture Slides and Code

-
-
-
- -
-

The slides and code from each lecture are available below.

-

- - - - - - - - - - - - -

- - -

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

-

- - - - - - - - - - -

- - -
- -SES # - - -TOPICS - - -LECTURE SLIDES - - -LECTURE CODES -
- -1 - - -What is computation? - - -Slides for Lecture 1 (PDF) - - -Code for Lecture 1 (PY) -
- -2 - - -Branching and Iteration - - -Slides for Lecture 2 (PDF) - - -Code for Lecture 2 (PY) -
- -3 - - -String Manipulation, Guess and Check, Approximations, Bisection - - -Slides for Lecture 3 (PDF) - - -Code for Lecture 3 (PY) -
- -4 - - -Decomposition, Abstractions, Functions - - -Slides for Lecture 4 (PDF 1.1MB) - - -Code for Lecture 4 (PY) -
- -5 - - -Tuples, Lists, Aliasing, Mutability, Cloning - - -Slides for Lecture 5 (PDF) - - -Code for Lecture 5 (PY) -
- -6 - - -Recursion, Dictionaries - - -Slides for Lecture 6 (PDF - 1.3MB) - - -Code for Lecture 6 (PY) -
- -7 - - -Testing, Debugging, Exceptions, Assertions - - -Slides for Lecture 7 (PDF) - - -Code for Lecture 7 (PY) -
- -8 - - -Object Oriented Programming - - -Slides for Lecture 8 (PDF) - - -Code for Lecture 8 (PY) -
- -9 - - -Python Classes and Inheritance - - -Slides for Lecture 9 (PDF - 1.6MB) - - -Code for Lecture 9 (PY) -
- -10 - - -Understanding Program Efficiency, Part 1 - - -Slides for Lecture 10 (PDF) - - -Code for Lecture 10 (PY) -
- -11 - - -Understanding Program Efficiency, Part 2 - - -Slides for Lecture 11 (PDF) - - -Code for Lecture 11 (PY) -
- -12 - - -Searching and Sorting - - -Slides for Lecture 12 (PDF - 2.4MB) - - -Code for Lecture 12 (PY) -
- -

-
-
- - -
-
- - - -
- - -
-
-

- Course Info -

-
-
-
-
- -
- -
- Instructors -
-
- - - - - - - - -
-
- - - - -
-
- Departments -
-
- - - - - - - - -
-
- - - -
-
- As Taught In -
-
- Fall - - 2016 - -
-
- -
-
- Level -
-
- - - Undergraduate
- - -
-
- -
- - -
-
-
- -
- - - - - - -
-
- Topics -
- -
- - - - - -
-
- Learning Resource Types -
-
-
- -
- - -
-
- - Problem Sets -
-
- -
- -
- - -
-
- - Lecture Notes -
-
- -
- -
- - -
-
- - Lecture Videos -
-
- -
- -
- - -
-
- - Programming Assignments with Examples -
-
- -
- -
-
-
- - -
- -
-
- - -
-
-
-
-
-
- - - - -