From ff3b3021cc6ec925b08e191bbaf85af4e3ffde66 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Tue, 29 Apr 2025 12:00:26 +0700 Subject: [PATCH 01/26] chore: initialize server project with dependencies and .env setup --- server/.env.example | 9 + server/.gitignore | 2 + server/app.js | 0 server/config/config.json | 23 + server/controllers/controller.js | 0 server/data/users.json | 0 server/eslint.config.mjs | 9 + server/helpers/helper.js | 0 server/middlewares/auth.js | 0 server/middlewares/errorHandler.js | 0 server/models/index.js | 43 + server/package-lock.json | 7368 ++++++++++++++++++++++++++++ server/package.json | 34 + server/routes/index.js | 0 server/views/index.ejs | 0 15 files changed, 7488 insertions(+) create mode 100644 server/.env.example create mode 100644 server/.gitignore create mode 100644 server/app.js create mode 100644 server/config/config.json create mode 100644 server/controllers/controller.js create mode 100644 server/data/users.json create mode 100644 server/eslint.config.mjs create mode 100644 server/helpers/helper.js create mode 100644 server/middlewares/auth.js create mode 100644 server/middlewares/errorHandler.js create mode 100644 server/models/index.js create mode 100644 server/package-lock.json create mode 100644 server/package.json create mode 100644 server/routes/index.js create mode 100644 server/views/index.ejs diff --git a/server/.env.example b/server/.env.example new file mode 100644 index 00000000..d471b9aa --- /dev/null +++ b/server/.env.example @@ -0,0 +1,9 @@ +PORT=3000 +DATABASE_URL=postgres://username:password@localhost:5432/plantplannerdb +JWT_SECRET=your_jwt_secret +OPENAI_API_KEY=your_openai_api_key +OPENWEATHERMAP_API_KEY=your_openweathermap_api_key +PLANT_ID_API_KEY=your_plant_id_api_key +CLOUDINARY_URL=your_cloudinary_url +EMAIL_USER=your_email@gmail.com +EMAIL_PASS=your_email_password \ No newline at end of file diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 00000000..713d5006 --- /dev/null +++ b/server/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.env diff --git a/server/app.js b/server/app.js new file mode 100644 index 00000000..e69de29b diff --git a/server/config/config.json b/server/config/config.json new file mode 100644 index 00000000..0f858c66 --- /dev/null +++ b/server/config/config.json @@ -0,0 +1,23 @@ +{ + "development": { + "username": "root", + "password": null, + "database": "database_development", + "host": "127.0.0.1", + "dialect": "mysql" + }, + "test": { + "username": "root", + "password": null, + "database": "database_test", + "host": "127.0.0.1", + "dialect": "mysql" + }, + "production": { + "username": "root", + "password": null, + "database": "database_production", + "host": "127.0.0.1", + "dialect": "mysql" + } +} diff --git a/server/controllers/controller.js b/server/controllers/controller.js new file mode 100644 index 00000000..e69de29b diff --git a/server/data/users.json b/server/data/users.json new file mode 100644 index 00000000..e69de29b diff --git a/server/eslint.config.mjs b/server/eslint.config.mjs new file mode 100644 index 00000000..9ea37ded --- /dev/null +++ b/server/eslint.config.mjs @@ -0,0 +1,9 @@ +import js from "@eslint/js"; +import globals from "globals"; +import { defineConfig } from "eslint/config"; + + +export default defineConfig([ + { files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] }, + { files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.browser } }, +]); \ No newline at end of file diff --git a/server/helpers/helper.js b/server/helpers/helper.js new file mode 100644 index 00000000..e69de29b diff --git a/server/middlewares/auth.js b/server/middlewares/auth.js new file mode 100644 index 00000000..e69de29b diff --git a/server/middlewares/errorHandler.js b/server/middlewares/errorHandler.js new file mode 100644 index 00000000..e69de29b diff --git a/server/models/index.js b/server/models/index.js new file mode 100644 index 00000000..024200ec --- /dev/null +++ b/server/models/index.js @@ -0,0 +1,43 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const Sequelize = require('sequelize'); +const process = require('process'); +const basename = path.basename(__filename); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../config/config.json')[env]; +const db = {}; + +let sequelize; +if (config.use_env_variable) { + sequelize = new Sequelize(process.env[config.use_env_variable], config); +} else { + sequelize = new Sequelize(config.database, config.username, config.password, config); +} + +fs + .readdirSync(__dirname) + .filter(file => { + return ( + file.indexOf('.') !== 0 && + file !== basename && + file.slice(-3) === '.js' && + file.indexOf('.test.js') === -1 + ); + }) + .forEach(file => { + const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes); + db[model.name] = model; + }); + +Object.keys(db).forEach(modelName => { + if (db[modelName].associate) { + db[modelName].associate(db); + } +}); + +db.sequelize = sequelize; +db.Sequelize = Sequelize; + +module.exports = db; diff --git a/server/package-lock.json b/server/package-lock.json new file mode 100644 index 00000000..0808ed3a --- /dev/null +++ b/server/package-lock.json @@ -0,0 +1,7368 @@ +{ + "name": "backend", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "backend", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.9.0", + "bcryptjs": "^3.0.2", + "cloudinary": "^2.6.0", + "cors": "^2.8.5", + "express": "^5.1.0", + "express-session": "^1.18.1", + "jsonwebtoken": "^9.0.2", + "nodemailer": "^6.10.1", + "pg": "^8.15.6", + "sequelize": "^6.37.7" + }, + "devDependencies": { + "@eslint/js": "^9.25.1", + "dotenv": "^16.5.0", + "eslint": "^9.25.1", + "globals": "^16.0.0", + "jest": "^29.7.0", + "sequelize-cli": "^6.6.2", + "supertest": "^7.1.0" + } + }, + "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, + "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.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", + "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-validator-option": "^7.25.9", + "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/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/@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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", + "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "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.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "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-array/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/@eslint/config-array/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/@eslint/config-helpers": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", + "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "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/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/@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/eslintrc/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/@eslint/js": { + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", + "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "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.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "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.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "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, + "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/@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==", + "dev": true, + "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/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.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/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.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": "^14.15.0 || ^16.10.0 || >=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", + "@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, + "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==", + "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.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", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "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, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "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/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "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/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz", + "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.0.tgz", + "integrity": "sha512-nh7nrWhLr6CBq9ldtw0wx+z9wKnnv/uTVLA9g/3/TcOYxbpOSZE+MhKPmWqU+K0NvThjhv12uD8MuqijB0WzEA==", + "license": "MIT" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "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-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==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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/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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "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/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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "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/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "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==", + "dev": true, + "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-istanbul/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==", + "dev": true, + "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/babel-plugin-istanbul/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/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.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==", + "dev": true, + "license": "MIT" + }, + "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/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "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.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "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.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "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==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "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/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/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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001715", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", + "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", + "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/chalk/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/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-color": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", + "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.64", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.10" + } + }, + "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==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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/cliui/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, + "license": "MIT" + }, + "node_modules/cliui/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, + "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/cliui/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "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/cloudinary": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.6.0.tgz", + "integrity": "sha512-FIlny9RR5LPgkMioG4V7yUpC6ASyIFQMWfx4TgOi/xBeLxJTegbyQc3itiXL0b0lDlSaL0KyT2THEw6osrKqpQ==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "q": "^1.5.1" + }, + "engines": { + "node": ">=9" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "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==", + "dev": true, + "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==", + "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/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "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", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "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/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": "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/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true, + "license": "MIT" + }, + "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-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "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/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dottie": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.6.tgz", + "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==", + "license": "MIT" + }, + "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/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "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/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.144", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.144.tgz", + "integrity": "sha512-eJIaMRKeAzxfBSxtjYnoIAw/tdD6VIH6tHBZepZnAbE3Gyqqs5mGN87DvcldPUbVkIljTK8pY0CMcUljP64lfQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "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==", + "dev": true, + "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/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "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/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "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-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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", + "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", + "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.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.25.1", + "@eslint/plugin-kit": "^0.2.8", + "@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-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "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.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "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/eslint/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/eslint/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/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.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==", + "dev": true, + "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==", + "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/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/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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/execa/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==", + "dev": true, + "license": "ISC" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-session": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz", + "integrity": "sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.7", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/express-session/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-session/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/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "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-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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "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/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "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/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "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/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "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/formidable": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", + "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "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-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==", + "dev": true, + "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/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/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-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "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/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/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", + "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "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==", + "dev": true, + "license": "ISC" + }, + "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/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "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/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==", + "dev": true, + "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/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/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflection": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz", + "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==", + "engines": [ + "node >= 0.4.0" + ], + "license": "MIT" + }, + "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/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "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-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, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "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-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==", + "dev": true, + "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-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.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": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/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/jest-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-cli/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, + "license": "MIT" + }, + "node_modules/jest-cli/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, + "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/jest-cli/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "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/jest-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-beautify": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "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-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "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/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "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/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/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "license": "MIT" + }, + "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": { + "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.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/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/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, + "license": "ISC" + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "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/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/memoizee": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "es5-ext": "^0.10.64", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/memoizee/node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "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/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "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/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.48", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", + "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "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/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/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/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "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==", + "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/nodemailer": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz", + "integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "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==", + "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/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==", + "dev": true, + "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==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "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/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==", + "dev": true, + "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/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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-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/pg": { + "version": "8.15.6", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.15.6.tgz", + "integrity": "sha512-yvao7YI3GdmmrslNVsZgx9PfntfWrnXwtR+K/DjI0I/sTKif4Z623um+sjVZ1hk5670B+ODjvHDAckKdjmPTsg==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.8.5", + "pg-pool": "^3.9.6", + "pg-protocol": "^1.9.5", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.2.5" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.5.tgz", + "integrity": "sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.8.5.tgz", + "integrity": "sha512-Ni8FuZ8yAF+sWZzojvtLE2b03cqjO5jNULcHFfM9ZZ0/JXrgom5pBREbtnAw7oxsxJqHw9Nz/XWORUEL3/IFow==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.9.6.tgz", + "integrity": "sha512-rFen0G7adh1YmgvrmE5IPIqbb+IgEzENUm+tzm6MLLDSlPRoZVhzU1WdML9PV2W5GOdRA9qBKURlbt1OsXOsPw==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.9.5.tgz", + "integrity": "sha512-DYTWtWpfd5FOro3UnAfwvhD8jh59r2ig8bPtc9H8Ds7MscE/9NYruUQWFAOuraRl29jwcT2kyMFQ3MxeaVjUhg==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "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": { + "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/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "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.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/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.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/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.1.1.tgz", + "integrity": "sha512-hMD7odLOt3LkTjcif8aRZqi/hybjpLNgSk5oF5FCowfCjok6LukpN2bDX7R5wDmbgBQFn7YoBxSagmtXHaJYJw==", + "license": "MIT" + }, + "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.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "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/sequelize": { + "version": "6.37.7", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.37.7.tgz", + "integrity": "sha512-mCnh83zuz7kQxxJirtFD7q6Huy6liPanI67BSlbzSYgVNl5eXVdE2CN1FuAeZwG1SNpGsNRCV+bJAVVnykZAFA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/sequelize" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.8", + "@types/validator": "^13.7.17", + "debug": "^4.3.4", + "dottie": "^2.0.6", + "inflection": "^1.13.4", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", + "pg-connection-string": "^2.6.1", + "retry-as-promised": "^7.0.4", + "semver": "^7.5.4", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.9.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependenciesMeta": { + "ibm_db": { + "optional": true + }, + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "snowflake-sdk": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/sequelize-cli": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/sequelize-cli/-/sequelize-cli-6.6.2.tgz", + "integrity": "sha512-V8Oh+XMz2+uquLZltZES6MVAD+yEnmMfwfn+gpXcDiwE3jyQygLt4xoI0zG8gKt6cRcs84hsKnXAKDQjG/JAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-color": "^2.0.3", + "fs-extra": "^9.1.0", + "js-beautify": "^1.14.5", + "lodash": "^4.17.21", + "resolve": "^1.22.1", + "umzug": "^2.3.0", + "yargs": "^16.2.0" + }, + "bin": { + "sequelize": "lib/sequelize", + "sequelize-cli": "lib/sequelize" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/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==", + "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/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": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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/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, + "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/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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", + "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^3.5.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/supertest": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz", + "integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^9.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "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/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/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==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/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/test-exclude/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/test-exclude/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/timers-ext": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "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==", + "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/toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==", + "license": "MIT" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" + }, + "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/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==", + "dev": true, + "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==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "license": "MIT", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/umzug": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/umzug/-/umzug-2.3.0.tgz", + "integrity": "sha512-Z274K+e8goZK8QJxmbRPhl89HPO1K+ORFtm6rySPhFKfKc5GHhqdzD0SGhSWHkzoXasqJuItdhorSvY7/Cgflw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.7.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "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/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/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": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validator": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.0.tgz", + "integrity": "sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "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/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "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/wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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/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, + "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/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, + "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/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, + "license": "MIT", + "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, + "license": "MIT", + "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/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, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "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/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=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" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/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==", + "dev": true, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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, + "license": "MIT" + }, + "node_modules/yargs/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, + "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/yargs/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/server/package.json b/server/package.json new file mode 100644 index 00000000..c1909db2 --- /dev/null +++ b/server/package.json @@ -0,0 +1,34 @@ +{ + "name": "backend", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "dev": "npx nodemon app" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "axios": "^1.9.0", + "bcryptjs": "^3.0.2", + "cloudinary": "^2.6.0", + "cors": "^2.8.5", + "express": "^5.1.0", + "express-session": "^1.18.1", + "jsonwebtoken": "^9.0.2", + "nodemailer": "^6.10.1", + "pg": "^8.15.6", + "sequelize": "^6.37.7" + }, + "devDependencies": { + "@eslint/js": "^9.25.1", + "dotenv": "^16.5.0", + "eslint": "^9.25.1", + "globals": "^16.0.0", + "jest": "^29.7.0", + "sequelize-cli": "^6.6.2", + "supertest": "^7.1.0" + } +} diff --git a/server/routes/index.js b/server/routes/index.js new file mode 100644 index 00000000..e69de29b diff --git a/server/views/index.ejs b/server/views/index.ejs new file mode 100644 index 00000000..e69de29b From 6565874c3974d9f4ea8b3aff0a5afbca3a624acb Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Tue, 29 Apr 2025 13:25:00 +0700 Subject: [PATCH 02/26] feat: add Google Sign-In authentication with JWT --- server/app.js | 17 ++ server/config/config.json | 30 +-- server/controllers/authController.js | 28 +++ server/controllers/controller.js | 0 server/eslint.config.mjs | 9 - server/middlewares/auth.js | 16 ++ .../migrations/20250429050304-create-user.js | 31 +++ .../migrations/20250429050305-create-plant.js | 43 ++++ server/models/plant.js | 28 +++ server/models/user.js | 24 ++ server/package-lock.json | 234 +++++++++++++++++- server/package.json | 1 + server/routes/auth.js | 7 + server/routes/index.js | 0 14 files changed, 443 insertions(+), 25 deletions(-) create mode 100644 server/controllers/authController.js delete mode 100644 server/controllers/controller.js delete mode 100644 server/eslint.config.mjs create mode 100644 server/migrations/20250429050304-create-user.js create mode 100644 server/migrations/20250429050305-create-plant.js create mode 100644 server/models/plant.js create mode 100644 server/models/user.js create mode 100644 server/routes/auth.js delete mode 100644 server/routes/index.js diff --git a/server/app.js b/server/app.js index e69de29b..e8b43067 100644 --- a/server/app.js +++ b/server/app.js @@ -0,0 +1,17 @@ +const express = require('express'); +const cors = require('cors'); +const authRoutes = require('./routes/auth'); + +const app = express(); + +app.use(cors()); +app.use(express.json()); + +app.use('/api/auth', authRoutes); + +const PORT = process.env.PORT || 3000; +app.listen(PORT, () => { + console.log(`Server running on port ${PORT}`); +}); + +module.exports = app; \ No newline at end of file diff --git a/server/config/config.json b/server/config/config.json index 0f858c66..09a8e546 100644 --- a/server/config/config.json +++ b/server/config/config.json @@ -1,23 +1,23 @@ { "development": { - "username": "root", - "password": null, - "database": "database_development", - "host": "127.0.0.1", - "dialect": "mysql" + "username": "postgres", + "password": "postgres", + "database": "plantplannerdbDev", + "host": "localhost", + "dialect": "postgres" }, "test": { - "username": "root", - "password": null, - "database": "database_test", - "host": "127.0.0.1", - "dialect": "mysql" + "username": "postgres", + "password": "postgres", + "database": "plantplannerdbTest", + "host": "localhost", + "dialect": "postgres" }, "production": { - "username": "root", - "password": null, - "database": "database_production", - "host": "127.0.0.1", - "dialect": "mysql" + "username": "postgres", + "password": "postgres", + "database": "plantplannerdbProd", + "host": "localhost", + "dialect": "postgres" } } diff --git a/server/controllers/authController.js b/server/controllers/authController.js new file mode 100644 index 00000000..0ea399ad --- /dev/null +++ b/server/controllers/authController.js @@ -0,0 +1,28 @@ +const jwt = require('jsonwebtoken'); +const { OAuth2Client } = require('google-auth-library'); +const client = new OAuth2Client(process.env.GOOGLE_CLIENT_ID); + +const verifyGoogleToken = async (req, res) => { + const { googleToken } = req.body; + try { + const ticket = await client.verifyIdToken({ + idToken: googleToken, + audience: process.env.GOOGLE_CLIENT_ID, + }); + const payload = ticket.getPayload(); + const user = { + email: payload.email, + name: payload.name, + }; + + if (!user) { + throw { name: "Unauthorized", message: "Invalid email/password" } + } + const jwtToken = jwt.sign(user, process.env.JWT_SECRET, { expiresIn: '1h' }); + res.status(200).json({ token: jwtToken, user }); + } catch (error) { + res.status(401).json({ message: 'Invalid token' }); + } +}; + +module.exports = { verifyGoogleToken }; \ No newline at end of file diff --git a/server/controllers/controller.js b/server/controllers/controller.js deleted file mode 100644 index e69de29b..00000000 diff --git a/server/eslint.config.mjs b/server/eslint.config.mjs deleted file mode 100644 index 9ea37ded..00000000 --- a/server/eslint.config.mjs +++ /dev/null @@ -1,9 +0,0 @@ -import js from "@eslint/js"; -import globals from "globals"; -import { defineConfig } from "eslint/config"; - - -export default defineConfig([ - { files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] }, - { files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.browser } }, -]); \ No newline at end of file diff --git a/server/middlewares/auth.js b/server/middlewares/auth.js index e69de29b..4fa8a246 100644 --- a/server/middlewares/auth.js +++ b/server/middlewares/auth.js @@ -0,0 +1,16 @@ +const jwt = require('jsonwebtoken'); + +const authenticate = (req, res, next) => { + const token = req.headers.authorization?.split(' ')[1]; + if (!token) return res.status(401).json({ message: 'No token provided' }); + + try { + const decoded = jwt.verify(token, process.env.JWT_SECRET); + req.user = decoded; + next(); + } catch (error) { + res.status(401).json({ message: 'Invalid token' }); + } +}; + +module.exports = authenticate; \ No newline at end of file diff --git a/server/migrations/20250429050304-create-user.js b/server/migrations/20250429050304-create-user.js new file mode 100644 index 00000000..0f59ae46 --- /dev/null +++ b/server/migrations/20250429050304-create-user.js @@ -0,0 +1,31 @@ +'use strict'; +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.createTable('Users', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: Sequelize.INTEGER + }, + email: { + type: Sequelize.STRING + }, + password: { + type: Sequelize.STRING + }, + createdAt: { + allowNull: false, + type: Sequelize.DATE + }, + updatedAt: { + allowNull: false, + type: Sequelize.DATE + } + }); + }, + async down(queryInterface, Sequelize) { + await queryInterface.dropTable('Users'); + } +}; \ No newline at end of file diff --git a/server/migrations/20250429050305-create-plant.js b/server/migrations/20250429050305-create-plant.js new file mode 100644 index 00000000..fd278b40 --- /dev/null +++ b/server/migrations/20250429050305-create-plant.js @@ -0,0 +1,43 @@ +'use strict'; +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.createTable('Plants', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: Sequelize.INTEGER + }, + userId: { + type: Sequelize.INTEGER + }, + name: { + type: Sequelize.STRING + }, + species: { + type: Sequelize.STRING + }, + location: { + type: Sequelize.STRING + }, + light: { + type: Sequelize.STRING + }, + temperature: { + type: Sequelize.INTEGER + }, + createdAt: { + allowNull: false, + type: Sequelize.DATE + }, + updatedAt: { + allowNull: false, + type: Sequelize.DATE + } + }); + }, + async down(queryInterface, Sequelize) { + await queryInterface.dropTable('Plants'); + } +}; \ No newline at end of file diff --git a/server/models/plant.js b/server/models/plant.js new file mode 100644 index 00000000..aecc1c2b --- /dev/null +++ b/server/models/plant.js @@ -0,0 +1,28 @@ +'use strict'; +const { + Model +} = require('sequelize'); +module.exports = (sequelize, DataTypes) => { + class Plant extends Model { + /** + * Helper method for defining associations. + * This method is not a part of Sequelize lifecycle. + * The `models/index` file will call this method automatically. + */ + static associate(models) { + // define association here + } + } + Plant.init({ + userId: DataTypes.INTEGER, + name: DataTypes.STRING, + species: DataTypes.STRING, + location: DataTypes.STRING, + light: DataTypes.STRING, + temperature: DataTypes.INTEGER + }, { + sequelize, + modelName: 'Plant', + }); + return Plant; +}; \ No newline at end of file diff --git a/server/models/user.js b/server/models/user.js new file mode 100644 index 00000000..87448473 --- /dev/null +++ b/server/models/user.js @@ -0,0 +1,24 @@ +'use strict'; +const { + Model +} = require('sequelize'); +module.exports = (sequelize, DataTypes) => { + class User extends Model { + /** + * Helper method for defining associations. + * This method is not a part of Sequelize lifecycle. + * The `models/index` file will call this method automatically. + */ + static associate(models) { + // define association here + } + } + User.init({ + email: DataTypes.STRING, + password: DataTypes.STRING + }, { + sequelize, + modelName: 'User', + }); + return User; +}; \ No newline at end of file diff --git a/server/package-lock.json b/server/package-lock.json index 0808ed3a..1539b1ba 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -15,6 +15,7 @@ "cors": "^2.8.5", "express": "^5.1.0", "express-session": "^1.18.1", + "google-auth-library": "^9.15.1", "jsonwebtoken": "^9.0.2", "nodemailer": "^6.10.1", "pg": "^8.15.6", @@ -1671,6 +1672,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1918,6 +1928,26 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/bcryptjs": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", @@ -1927,6 +1957,15 @@ "bcrypt": "bin/bcrypt" } }, + "node_modules/bignumber.js": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -3230,6 +3269,12 @@ "type": "^2.7.2" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "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", @@ -3505,6 +3550,49 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gaxios/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", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3648,6 +3736,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/google-auth-library": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-auth-library/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/google-auth-library/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/google-logging-utils": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -3667,6 +3802,40 @@ "dev": true, "license": "ISC" }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/gtoken/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/gtoken/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3739,6 +3908,19 @@ "node": ">= 0.8" } }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -3947,7 +4129,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4913,6 +5094,15 @@ "node": ">=6" } }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -5383,6 +5573,26 @@ "dev": true, "license": "ISC" }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -6891,6 +7101,12 @@ "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==", "license": "MIT" }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", @@ -7091,6 +7307,22 @@ "makeerror": "1.0.12" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/server/package.json b/server/package.json index c1909db2..631d04fd 100644 --- a/server/package.json +++ b/server/package.json @@ -17,6 +17,7 @@ "cors": "^2.8.5", "express": "^5.1.0", "express-session": "^1.18.1", + "google-auth-library": "^9.15.1", "jsonwebtoken": "^9.0.2", "nodemailer": "^6.10.1", "pg": "^8.15.6", diff --git a/server/routes/auth.js b/server/routes/auth.js new file mode 100644 index 00000000..290a79d2 --- /dev/null +++ b/server/routes/auth.js @@ -0,0 +1,7 @@ +const express = require('express'); +const { verifyGoogleToken } = require('../controllers/authController'); +const router = express.Router(); + +router.post('/google', verifyGoogleToken); + +module.exports = router; \ No newline at end of file diff --git a/server/routes/index.js b/server/routes/index.js deleted file mode 100644 index e69de29b..00000000 From f3da467bc653d243a022f09a50d9e1dfb7e2746e Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Tue, 29 Apr 2025 13:37:56 +0700 Subject: [PATCH 03/26] feat: add CRUD endpoints for Plant --- server/app.js | 2 + server/controllers/plantController.js | 54 +++++++++++++++++++++++++++ server/routes/plants.js | 11 ++++++ server/views/index.ejs | 0 4 files changed, 67 insertions(+) create mode 100644 server/controllers/plantController.js create mode 100644 server/routes/plants.js delete mode 100644 server/views/index.ejs diff --git a/server/app.js b/server/app.js index e8b43067..9a41d4e3 100644 --- a/server/app.js +++ b/server/app.js @@ -1,6 +1,7 @@ const express = require('express'); const cors = require('cors'); const authRoutes = require('./routes/auth'); +const plantRoutes = require('./routes/plants'); const app = express(); @@ -8,6 +9,7 @@ app.use(cors()); app.use(express.json()); app.use('/api/auth', authRoutes); +app.use('/api/plants', plantRoutes); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { diff --git a/server/controllers/plantController.js b/server/controllers/plantController.js new file mode 100644 index 00000000..951160e7 --- /dev/null +++ b/server/controllers/plantController.js @@ -0,0 +1,54 @@ +const { Plant } = require('../models'); + +const createPlant = async (req, res) => { + const { name, species, location, light, temperature } = req.body; + try { + const plant = await Plant.create({ + userId: req.user.id, + name, + species, + location, + light, + temperature, + }); + res.status(201).json(plant); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +const getPlants = async (req, res) => { + try { + const plants = await Plant.findAll({ where: { userId: req.user.id } }); + res.status(200).json(plants); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +const updatePlant = async (req, res) => { + const { id } = req.params; + const { name, species, location, light, temperature } = req.body; + try { + const plant = await Plant.findOne({ where: { id, userId: req.user.id } }); + if (!plant) return res.status(404).json({ message: 'Plant not found' }); + await plant.update({ name, species, location, light, temperature }); + res.status(200).json(plant); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +const deletePlant = async (req, res) => { + const { id } = req.params; + try { + const plant = await Plant.findOne({ where: { id, userId: req.user.id } }); + if (!plant) return res.status(404).json({ message: 'Plant not found' }); + await plant.destroy(); + res.status(200).json({ message: 'Plant deleted' }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +module.exports = { createPlant, getPlants, updatePlant, deletePlant }; \ No newline at end of file diff --git a/server/routes/plants.js b/server/routes/plants.js new file mode 100644 index 00000000..8a04e1ad --- /dev/null +++ b/server/routes/plants.js @@ -0,0 +1,11 @@ +const express = require('express'); +const authenticate = require('../middlewares/auth'); +const { createPlant, getPlants, updatePlant, deletePlant } = require('../controllers/plantController'); +const router = express.Router(); + +router.post('/', authenticate, createPlant); +router.get('/', authenticate, getPlants); +router.put('/:id', authenticate, updatePlant); +router.delete('/:id', authenticate, deletePlant); + +module.exports = router; \ No newline at end of file diff --git a/server/views/index.ejs b/server/views/index.ejs deleted file mode 100644 index e69de29b..00000000 From a050d088e740a5fcbcdfc446b27f6d6d72093676 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Tue, 29 Apr 2025 14:46:57 +0700 Subject: [PATCH 04/26] chore: setup client project with Vite, React, and Tailwind CSS --- client/.gitignore | 24 + client/README.md | 12 + client/eslint.config.js | 33 + client/index.html | 14 + client/package-lock.json | 3831 +++++++++++++++++++++++++++++++++++ client/package.json | 34 + client/public/vite.svg | 1 + client/src/App.css | 42 + client/src/App.jsx | 35 + client/src/assets/react.svg | 1 + client/src/index.css | 1 + client/src/main.jsx | 10 + client/tailwind.config.js | 12 + client/vite.config.js | 10 + 14 files changed, 4060 insertions(+) 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.jsx create mode 100644 client/src/assets/react.svg create mode 100644 client/src/index.css create mode 100644 client/src/main.jsx create mode 100644 client/tailwind.config.js create mode 100644 client/vite.config.js diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 00000000..a547bf36 --- /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 00000000..7059a962 --- /dev/null +++ b/client/README.md @@ -0,0 +1,12 @@ +# React + 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 using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/client/eslint.config.js b/client/eslint.config.js new file mode 100644 index 00000000..ec2b712d --- /dev/null +++ b/client/eslint.config.js @@ -0,0 +1,33 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...reactHooks.configs.recommended.rules, + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +] diff --git a/client/index.html b/client/index.html new file mode 100644 index 00000000..bcff8dcc --- /dev/null +++ b/client/index.html @@ -0,0 +1,14 @@ + + + + + + + Plant Planner + + +
+ + + + diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 00000000..01214f15 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,3831 @@ +{ + "name": "vite-project", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vite-project", + "version": "0.0.0", + "dependencies": { + "@reduxjs/toolkit": "^2.7.0", + "axios": "^1.9.0", + "framer-motion": "^12.9.2", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.2.0", + "react-router": "^7.5.3" + }, + "devDependencies": { + "@eslint/js": "^9.22.0", + "@tailwindcss/vite": "^4.1.4", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.22.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "tailwindcss": "^4.1.4", + "vite": "^6.3.1" + } + }, + "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, + "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.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", + "@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.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", + "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-validator-option": "^7.25.9", + "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.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", + "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "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.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "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.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", + "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "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.25.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", + "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "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.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "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.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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", + "@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, + "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==", + "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.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", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.7.0.tgz", + "integrity": "sha512-XVwolG6eTqwV0N8z/oDlN93ITCIGIop6leXlGJI/4EKy+0POYkR+ABHRSdGXY+0MQvJBP8yAzh+EYFxTuvmBiQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", + "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", + "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", + "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", + "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", + "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", + "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", + "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", + "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", + "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", + "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", + "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", + "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", + "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", + "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", + "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", + "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", + "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", + "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", + "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", + "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.4.tgz", + "integrity": "sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "tailwindcss": "4.1.4" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.4.tgz", + "integrity": "sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-x64": "4.1.4", + "@tailwindcss/oxide-freebsd-x64": "4.1.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-x64-musl": "4.1.4", + "@tailwindcss/oxide-wasm32-wasi": "4.1.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.4" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.4.tgz", + "integrity": "sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.4.tgz", + "integrity": "sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.4.tgz", + "integrity": "sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.4.tgz", + "integrity": "sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.4.tgz", + "integrity": "sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.4.tgz", + "integrity": "sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.4.tgz", + "integrity": "sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.4.tgz", + "integrity": "sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.4.tgz", + "integrity": "sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.4.tgz", + "integrity": "sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@emnapi/wasi-threads": "^1.0.1", + "@napi-rs/wasm-runtime": "^0.2.8", + "@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.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.4.tgz", + "integrity": "sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.4.tgz", + "integrity": "sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.4.tgz", + "integrity": "sha512-4UQeMrONbvrsXKXXp/uxmdEN5JIJ9RkH7YVzs6AMxC/KC1+Np7WZBaNIco7TEjlkthqxZbt8pU/ipD+hKjm80A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.4", + "@tailwindcss/oxide": "4.1.4", + "tailwindcss": "4.1.4" + }, + "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.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "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.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", + "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz", + "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.10", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@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" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "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.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/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "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.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "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.30001715", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", + "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", + "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/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==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "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==", + "dev": true, + "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.144", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.144.tgz", + "integrity": "sha512-eJIaMRKeAzxfBSxtjYnoIAw/tdD6VIH6tHBZepZnAbE3Gyqqs5mGN87DvcldPUbVkIljTK8pY0CMcUljP64lfQ==", + "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==", + "dev": true, + "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.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" + } + }, + "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.25.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", + "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", + "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.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.25.1", + "@eslint/plugin-kit": "^0.2.8", + "@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.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "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.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "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.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.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, + "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-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/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "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/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.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/framer-motion": { + "version": "12.9.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.9.2.tgz", + "integrity": "sha512-R0O3Jdqbfwywpm45obP+8sTgafmdEcUoShQTAV+rB5pi+Y1Px/FYL5qLLRe5tPtBdN1J4jos7M+xN2VV2oEAbQ==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.9.1", + "motion-utils": "^12.8.3", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "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/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.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", + "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "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==", + "dev": true, + "license": "ISC" + }, + "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/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "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==", + "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/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==", + "dev": true, + "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/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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "dev": true, + "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.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "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/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/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/motion-dom": { + "version": "12.9.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.9.1.tgz", + "integrity": "sha512-xqXEwRLDYDTzOgXobSoWtytRtGlf7zdkRfFbrrdP7eojaGQZ5Go4OOKtgnx7uF8sAkfr1ZjMvbCJSCIT2h6fkQ==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.8.3" + } + }, + "node_modules/motion-utils": { + "version": "12.8.3", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.8.3.tgz", + "integrity": "sha512-GYVauZEbca8/zOhEiYOY9/uJeedYQld6co/GJFKOy//0c/4lDqk0zB549sBYqqV2iMuX+uHrY1E5zd8A2L+1Lw==", + "license": "MIT" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "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/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-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "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.5.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.3.tgz", + "integrity": "sha512-3iUDM4/fZCQ89SXlDa+Ph3MevBrozBAI655OAfWQlTm9nBR0IKlrmNwFow5lPHttbwvITZfkeeeZFP6zt3F7pw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "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/rollup": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", + "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", + "dev": true, + "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.40.1", + "@rollup/rollup-android-arm64": "4.40.1", + "@rollup/rollup-darwin-arm64": "4.40.1", + "@rollup/rollup-darwin-x64": "4.40.1", + "@rollup/rollup-freebsd-arm64": "4.40.1", + "@rollup/rollup-freebsd-x64": "4.40.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", + "@rollup/rollup-linux-arm-musleabihf": "4.40.1", + "@rollup/rollup-linux-arm64-gnu": "4.40.1", + "@rollup/rollup-linux-arm64-musl": "4.40.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-musl": "4.40.1", + "@rollup/rollup-linux-s390x-gnu": "4.40.1", + "@rollup/rollup-linux-x64-gnu": "4.40.1", + "@rollup/rollup-linux-x64-musl": "4.40.1", + "@rollup/rollup-win32-arm64-msvc": "4.40.1", + "@rollup/rollup-win32-ia32-msvc": "4.40.1", + "@rollup/rollup-win32-x64-msvc": "4.40.1", + "fsevents": "~2.3.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==", + "dev": true, + "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.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.4.tgz", + "integrity": "sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "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/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/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "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/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/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/vite": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", + "integrity": "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==", + "dev": true, + "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/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 00000000..aa9eee16 --- /dev/null +++ b/client/package.json @@ -0,0 +1,34 @@ +{ + "name": "vite-project", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@reduxjs/toolkit": "^2.7.0", + "axios": "^1.9.0", + "framer-motion": "^12.9.2", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.2.0", + "react-router": "^7.5.3" + }, + "devDependencies": { + "@eslint/js": "^9.22.0", + "@tailwindcss/vite": "^4.1.4", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.22.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "tailwindcss": "^4.1.4", + "vite": "^6.3.1" + } +} diff --git a/client/public/vite.svg b/client/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /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 00000000..b9d355df --- /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.jsx b/client/src/App.jsx new file mode 100644 index 00000000..f67355ae --- /dev/null +++ b/client/src/App.jsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Vite + React

+
+ +

+ Edit src/App.jsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/client/src/assets/react.svg b/client/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/client/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 00000000..f1d8c73c --- /dev/null +++ b/client/src/index.css @@ -0,0 +1 @@ +@import "tailwindcss"; diff --git a/client/src/main.jsx b/client/src/main.jsx new file mode 100644 index 00000000..b9a1a6de --- /dev/null +++ b/client/src/main.jsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.jsx' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/client/tailwind.config.js b/client/tailwind.config.js new file mode 100644 index 00000000..0ff56b80 --- /dev/null +++ b/client/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], + theme: { + extend: { + colors: { + 'plant-green': '#2E7D32', + }, + }, + }, + plugins: [], +}; \ No newline at end of file diff --git a/client/vite.config.js b/client/vite.config.js new file mode 100644 index 00000000..d94f4f51 --- /dev/null +++ b/client/vite.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import tailwindcss from "@tailwindcss/vite"; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react(), tailwindcss()] +}) + + From 04d1c329cc18fb18bdba6bf1d310aac4f3efb28e Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Tue, 29 Apr 2025 15:00:09 +0700 Subject: [PATCH 05/26] feat: setup Redux with auth and plant slices --- client/src/App.css | 42 --------------------- client/src/main.jsx | 13 +++---- client/src/redux/slices/authSlice.js | 48 ++++++++++++++++++++++++ client/src/redux/slices/plantSlice.js | 54 +++++++++++++++++++++++++++ client/src/redux/store.js | 10 +++++ 5 files changed, 118 insertions(+), 49 deletions(-) delete mode 100644 client/src/App.css create mode 100644 client/src/redux/slices/authSlice.js create mode 100644 client/src/redux/slices/plantSlice.js create mode 100644 client/src/redux/store.js diff --git a/client/src/App.css b/client/src/App.css deleted file mode 100644 index b9d355df..00000000 --- a/client/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#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/main.jsx b/client/src/main.jsx index b9a1a6de..0daebe8f 100644 --- a/client/src/main.jsx +++ b/client/src/main.jsx @@ -1,10 +1,9 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.jsx' +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import App from "./App.jsx"; -createRoot(document.getElementById('root')).render( +createRoot(document.getElementById("root")).render( - , -) + +); diff --git a/client/src/redux/slices/authSlice.js b/client/src/redux/slices/authSlice.js new file mode 100644 index 00000000..a2a71ae7 --- /dev/null +++ b/client/src/redux/slices/authSlice.js @@ -0,0 +1,48 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import axios from 'axios'; + +export const loginWithGoogle = createAsyncThunk('auth/loginWithGoogle', async (token, { rejectWithValue }) => { + try { + const response = await axios.post('http://localhost:3000/api/auth/google', { token }); + localStorage.setItem('token', response.data.token); + return response.data; + } catch (error) { + return rejectWithValue(error.response.data); + } +}); + +const authSlice = createSlice({ + name: 'auth', + initialState: { + user: null, + token: localStorage.getItem('token') || null, + loading: false, + error: null, + }, + reducers: { + logout: (state) => { + state.user = null; + state.token = null; + localStorage.removeItem('token'); + }, + }, + extraReducers: (builder) => { + builder + .addCase(loginWithGoogle.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(loginWithGoogle.fulfilled, (state, action) => { + state.loading = false; + state.user = action.payload.user; + state.token = action.payload.token; + }) + .addCase(loginWithGoogle.rejected, (state, action) => { + state.loading = false; + state.error = action.payload.message; + }); + }, +}); + +export const { logout } = authSlice.actions; +export default authSlice.reducer; \ No newline at end of file diff --git a/client/src/redux/slices/plantSlice.js b/client/src/redux/slices/plantSlice.js new file mode 100644 index 00000000..e82eb48f --- /dev/null +++ b/client/src/redux/slices/plantSlice.js @@ -0,0 +1,54 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import axios from 'axios'; + +export const fetchPlants = createAsyncThunk('plants/fetchPlants', async (_, { getState, rejectWithValue }) => { + const { auth } = getState(); + try { + const response = await axios.get('http://localhost:3000/api/plants', { + headers: { Authorization: `Bearer ${auth.token}` }, + }); + return response.data; + } catch (error) { + return rejectWithValue(error.response.data); + } +}); + +export const addPlant = createAsyncThunk('plants/addPlant', async (plantData, { getState, rejectWithValue }) => { + const { auth } = getState(); + try { + const response = await axios.post('http://localhost:3000/api/plants', plantData, { + headers: { Authorization: `Bearer ${auth.token}` }, + }); + return response.data; + } catch (error) { + return rejectWithValue(error.response.data); + } +}); + +const plantSlice = createSlice({ + name: 'plants', + initialState: { + plants: [], + loading: false, + error: null, + }, + extraReducers: (builder) => { + builder + .addCase(fetchPlants.pending, (state) => { + state.loading = true; + }) + .addCase(fetchPlants.fulfilled, (state, action) => { + state.loading = false; + state.plants = action.payload; + }) + .addCase(fetchPlants.rejected, (state, action) => { + state.loading = false; + state.error = action.payload.message; + }) + .addCase(addPlant.fulfilled, (state, action) => { + state.plants.push(action.payload); + }); + }, +}); + +export default plantSlice.reducer; \ No newline at end of file diff --git a/client/src/redux/store.js b/client/src/redux/store.js new file mode 100644 index 00000000..d6dab4d4 --- /dev/null +++ b/client/src/redux/store.js @@ -0,0 +1,10 @@ +import { configureStore } from '@reduxjs/toolkit'; +import authReducer from './slices/authSlice'; +import plantReducer from './slices/plantSlice'; + +export const store = configureStore({ + reducer: { + auth: authReducer, + plants: plantReducer, + }, +}); \ No newline at end of file From 9206e8981588290dea5d6f6509cd1b8d3fb1894e Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Tue, 29 Apr 2025 16:11:38 +0700 Subject: [PATCH 06/26] feat: add OpenAI integration for plant care recommendation --- server/app.js | 4 ++- .../controllers/recommendationController.js | 31 +++++++++++++++++++ server/routes/recommendation.js | 8 +++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 server/controllers/recommendationController.js create mode 100644 server/routes/recommendation.js diff --git a/server/app.js b/server/app.js index 9a41d4e3..cf2617e9 100644 --- a/server/app.js +++ b/server/app.js @@ -2,6 +2,7 @@ const express = require('express'); const cors = require('cors'); const authRoutes = require('./routes/auth'); const plantRoutes = require('./routes/plants'); +const recommendationRoutes = require('./routes/recommendation'); const app = express(); @@ -10,10 +11,11 @@ app.use(express.json()); app.use('/api/auth', authRoutes); app.use('/api/plants', plantRoutes); +app.use('/api/recommendation', recommendationRoutes); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { - console.log(`Server running on port ${PORT}`); + console.log(`Server running on http://localhost:${PORT}`); }); module.exports = app; \ No newline at end of file diff --git a/server/controllers/recommendationController.js b/server/controllers/recommendationController.js new file mode 100644 index 00000000..14eefdcb --- /dev/null +++ b/server/controllers/recommendationController.js @@ -0,0 +1,31 @@ +const axios = require('axios'); + +const getCareRecommendation = async (req, res) => { + const { species, location, light, temperature } = req.body; + try { + const response = await axios.post( + 'https://api.openai.com/v1/chat/completions', + { + model: 'gpt-3.5-turbo', + messages: [ + { + role: 'user', + content: `Saya memiliki tanaman ${species} di ${location} dengan kondisi cahaya ${light} dan suhu ${temperature}°C. Berikan rekomendasi perawatan.`, + }, + ], + }, + { + headers: { + Authorization: `Bearer ${process.env.OPENAI_API_KEY}`, + 'Content-Type': 'application/json', + }, + } + ); + const recommendation = response.data.choices[0].message.content; + res.status(200).json({ recommendation }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +module.exports = { getCareRecommendation }; \ No newline at end of file diff --git a/server/routes/recommendation.js b/server/routes/recommendation.js new file mode 100644 index 00000000..d6c98fd5 --- /dev/null +++ b/server/routes/recommendation.js @@ -0,0 +1,8 @@ +const express = require('express'); +const authenticate = require('../middlewares/auth'); +const { getCareRecommendation } = require('../controllers/recommendationController'); +const router = express.Router(); + +router.post('/care', authenticate, getCareRecommendation); + +module.exports = router; \ No newline at end of file From 2108dc334c5f0a8488afee4de8381387c9f17fb7 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Wed, 30 Apr 2025 06:59:57 +0700 Subject: [PATCH 07/26] feat: integrate third-party APIs (OpenWeatherMap for weather, Nodemailer for email reminders, Cloudinary for photo uploads) --- client/src/App.jsx | 34 ++----------------------- server/app.js | 2 ++ server/controllers/weatherController.js | 20 +++++++++++++++ server/routes/weather.js | 8 ++++++ 4 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 server/controllers/weatherController.js create mode 100644 server/routes/weather.js diff --git a/client/src/App.jsx b/client/src/App.jsx index f67355ae..568c5444 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,35 +1,5 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - function App() { - const [count, setCount] = useState(0) - - return ( - <> - -

Vite + React

-
- -

- Edit src/App.jsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) + return

AA

; } -export default App +export default App; diff --git a/server/app.js b/server/app.js index cf2617e9..a97ac00b 100644 --- a/server/app.js +++ b/server/app.js @@ -3,6 +3,7 @@ const cors = require('cors'); const authRoutes = require('./routes/auth'); const plantRoutes = require('./routes/plants'); const recommendationRoutes = require('./routes/recommendation'); +const weatherRoutes = require('./routes/weather'); const app = express(); @@ -12,6 +13,7 @@ app.use(express.json()); app.use('/api/auth', authRoutes); app.use('/api/plants', plantRoutes); app.use('/api/recommendation', recommendationRoutes); +app.use('/api/weather', weatherRoutes); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { diff --git a/server/controllers/weatherController.js b/server/controllers/weatherController.js new file mode 100644 index 00000000..820d8ac6 --- /dev/null +++ b/server/controllers/weatherController.js @@ -0,0 +1,20 @@ +const axios = require('axios'); + +const getWeather = async (req, res) => { + const { city } = req.query; + try { + const response = await axios.get( + `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${process.env.OPENWEATHERMAP_API_KEY}&units=metric` + ); + const weather = { + temperature: response.data.main.temp, + humidity: response.data.main.humidity, + description: response.data.weather[0].description, + }; + res.status(200).json(weather); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + +module.exports = { getWeather }; \ No newline at end of file diff --git a/server/routes/weather.js b/server/routes/weather.js new file mode 100644 index 00000000..65e1f4cf --- /dev/null +++ b/server/routes/weather.js @@ -0,0 +1,8 @@ +const express = require('express'); +const authenticate = require('../middlewares/auth'); +const { getWeather } = require('../controllers/weatherController'); +const router = express.Router(); + +router.get('/', authenticate, getWeather); + +module.exports = router; \ No newline at end of file From c425e04ee1432c8f8aa184e831085a5824dd6d02 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Wed, 30 Apr 2025 11:01:29 +0700 Subject: [PATCH 08/26] feat: setup routing, navbar, and login page with Google Sign-In --- client/src/App.jsx | 19 ++++++++++++- client/src/components/Navbar.jsx | 42 +++++++++++++++++++++++++++++ client/src/main.jsx | 13 ++++++--- client/src/pages/Home.jsx | 10 +++++++ client/src/pages/Login.jsx | 35 ++++++++++++++++++++++++ client/src/pages/Plants.jsx | 5 ++++ client/src/pages/Recommendation.jsx | 5 ++++ 7 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 client/src/components/Navbar.jsx create mode 100644 client/src/pages/Home.jsx create mode 100644 client/src/pages/Login.jsx create mode 100644 client/src/pages/Plants.jsx create mode 100644 client/src/pages/Recommendation.jsx diff --git a/client/src/App.jsx b/client/src/App.jsx index 568c5444..e80059cf 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,5 +1,22 @@ +import { Routes, Route } from "react-router"; +import Navbar from "./components/Navbar"; +import Home from "./pages/Home"; +import Login from "./pages/Login"; +import Plants from "./pages/Plants"; +import Recommendation from "./pages/Recommendation"; + function App() { - return

AA

; + return ( +
+ + + } /> + } /> + } /> + } /> + +
+ ); } export default App; diff --git a/client/src/components/Navbar.jsx b/client/src/components/Navbar.jsx new file mode 100644 index 00000000..405de763 --- /dev/null +++ b/client/src/components/Navbar.jsx @@ -0,0 +1,42 @@ +import { useSelector, useDispatch } from "react-redux"; +import { Link } from "react-router-dom"; +import { logout } from "../redux/slices/authSlice"; + +function Navbar() { + const { user } = useSelector((state) => state.auth); + const dispatch = useDispatch(); + + return ( + + ); +} + +export default Navbar; diff --git a/client/src/main.jsx b/client/src/main.jsx index 0daebe8f..31d9fcf3 100644 --- a/client/src/main.jsx +++ b/client/src/main.jsx @@ -1,9 +1,16 @@ import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; +import { Provider } from "react-redux"; +import { BrowserRouter } from "react-router"; import App from "./App.jsx"; +import { store } from "./redux/store"; createRoot(document.getElementById("root")).render( - - - + + + + + + + ); diff --git a/client/src/pages/Home.jsx b/client/src/pages/Home.jsx new file mode 100644 index 00000000..89fb6068 --- /dev/null +++ b/client/src/pages/Home.jsx @@ -0,0 +1,10 @@ +function Home() { + return ( +
+

Welcome to Plant Planner

+

Manage your plants and get care recommendations!

+
+ ); +} + +export default Home; diff --git a/client/src/pages/Login.jsx b/client/src/pages/Login.jsx new file mode 100644 index 00000000..a6dc796c --- /dev/null +++ b/client/src/pages/Login.jsx @@ -0,0 +1,35 @@ +import { useDispatch, useSelector } from "react-redux"; +import { GoogleLogin } from "@react-oauth/google"; +import { loginWithGoogle } from "../redux/slices/authSlice"; +import { useNavigate } from "react-router"; + +function Login() { + const dispatch = useDispatch(); + const navigate = useNavigate(); + const { loading, error } = useSelector((state) => state.auth); + + const handleSuccess = (response) => { + dispatch(loginWithGoogle(response.credential)).then(() => { + navigate("/plants"); + }); + }; + + return ( +
+
+

Login to Plant Planner

+ {error &&

{error}

} + {loading ? ( +

Loading...

+ ) : ( + console.log("Login Failed")} + /> + )} +
+
+ ); +} + +export default Login; diff --git a/client/src/pages/Plants.jsx b/client/src/pages/Plants.jsx new file mode 100644 index 00000000..ccc65c5c --- /dev/null +++ b/client/src/pages/Plants.jsx @@ -0,0 +1,5 @@ +function Plants() { + return
Plants Page
; +} + +export default Plants; diff --git a/client/src/pages/Recommendation.jsx b/client/src/pages/Recommendation.jsx new file mode 100644 index 00000000..4ed3575c --- /dev/null +++ b/client/src/pages/Recommendation.jsx @@ -0,0 +1,5 @@ +function Recommendation() { + return
Recommendation Page
; +} + +export default Recommendation; From 7f4b3bc461204ab0f22c83c933eb499fa0520478 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Wed, 30 Apr 2025 11:03:55 +0700 Subject: [PATCH 09/26] feat: add plant management page with form and card components --- client/src/components/PlantCard.jsx | 13 +++++ client/src/components/PlantForm.jsx | 87 +++++++++++++++++++++++++++++ client/src/pages/Plants.jsx | 31 +++++++++- 3 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 client/src/components/PlantCard.jsx create mode 100644 client/src/components/PlantForm.jsx diff --git a/client/src/components/PlantCard.jsx b/client/src/components/PlantCard.jsx new file mode 100644 index 00000000..346d01cf --- /dev/null +++ b/client/src/components/PlantCard.jsx @@ -0,0 +1,13 @@ +function PlantCard({ plant }) { + return ( +
+

{plant.name}

+

Species: {plant.species}

+

Location: {plant.location}

+

Light: {plant.light}

+

Temperature: {plant.temperature}°C

+
+ ); +} + +export default PlantCard; diff --git a/client/src/components/PlantForm.jsx b/client/src/components/PlantForm.jsx new file mode 100644 index 00000000..a59879bd --- /dev/null +++ b/client/src/components/PlantForm.jsx @@ -0,0 +1,87 @@ +import { useState } from "react"; + +function PlantForm({ onSubmit }) { + const [formData, setFormData] = useState({ + name: "", + species: "", + location: "", + light: "", + temperature: "", + }); + + const handleChange = (e) => { + setFormData({ ...formData, [e.target.name]: e.target.value }); + }; + + const handleSubmit = (e) => { + e.preventDefault(); + onSubmit(formData); + setFormData({ + name: "", + species: "", + location: "", + light: "", + temperature: "", + }); + }; + + return ( +
+
+ + + + + +
+ +
+ ); +} + +export default PlantForm; diff --git a/client/src/pages/Plants.jsx b/client/src/pages/Plants.jsx index ccc65c5c..f4da84fa 100644 --- a/client/src/pages/Plants.jsx +++ b/client/src/pages/Plants.jsx @@ -1,5 +1,34 @@ +import { useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { fetchPlants, addPlant } from "../redux/slices/plantSlice"; +import PlantForm from "../components/PlantForm"; +import PlantCard from "../components/PlantCard"; + function Plants() { - return
Plants Page
; + const dispatch = useDispatch(); + const { plants, loading, error } = useSelector((state) => state.plants); + + useEffect(() => { + dispatch(fetchPlants()); + }, [dispatch]); + + const handleAddPlant = (plantData) => { + dispatch(addPlant(plantData)); + }; + + return ( +
+

My Plants

+ + {loading &&

Loading...

} + {error &&

{error}

} +
+ {plants.map((plant) => ( + + ))} +
+
+ ); } export default Plants; From 7f5a66f32476b786ee702f592567c7c70c6e70b6 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Wed, 30 Apr 2025 11:08:43 +0700 Subject: [PATCH 10/26] feat: add care recommendation page with OpenAI and weather integration --- client/src/pages/Login.jsx | 2 +- client/src/pages/Recommendation.jsx | 107 +++++++++++++++++++++++- client/src/redux/slices/weatherSlice.js | 39 +++++++++ client/src/redux/store.js | 2 + 4 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 client/src/redux/slices/weatherSlice.js diff --git a/client/src/pages/Login.jsx b/client/src/pages/Login.jsx index a6dc796c..74b419fc 100644 --- a/client/src/pages/Login.jsx +++ b/client/src/pages/Login.jsx @@ -6,7 +6,7 @@ import { useNavigate } from "react-router"; function Login() { const dispatch = useDispatch(); const navigate = useNavigate(); - const { loading, error } = useSelector((state) => state.auth); + const { user, loading, error } = useSelector((state) => state.auth); const handleSuccess = (response) => { dispatch(loginWithGoogle(response.credential)).then(() => { diff --git a/client/src/pages/Recommendation.jsx b/client/src/pages/Recommendation.jsx index 4ed3575c..0af207d6 100644 --- a/client/src/pages/Recommendation.jsx +++ b/client/src/pages/Recommendation.jsx @@ -1,5 +1,110 @@ +import { useState } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import axios from "axios"; +import { fetchWeather } from "../redux/slices/weatherSlice"; + function Recommendation() { - return
Recommendation Page
; + const dispatch = useDispatch(); + const { user, token } = useSelector((state) => state.auth); + const { + weather, + loading: weatherLoading, + error: weatherError, + } = useSelector((state) => state.weather); + const [formData, setFormData] = useState({ + species: "", + location: "", + light: "", + temperature: "", + }); + const [recommendation, setRecommendation] = useState(""); + + const handleChange = (e) => { + setFormData({ ...formData, [e.target.name]: e.target.value }); + }; + + const handleSubmit = async (e) => { + e.preventDefault(); + try { + const response = await axios.post( + "http://localhost:3000/api/recommendation/care", + formData, + { + headers: { Authorization: `Bearer ${token}` }, + } + ); + setRecommendation(response.data.recommendation); + dispatch(fetchWeather(formData.location)); + } catch (error) { + console.error(error); + } + }; + + return ( +
+

Care Recommendation

+
+
+ + + + +
+ +
+ {recommendation && ( +
+

Recommendation

+

{recommendation}

+
+ )} + {weather && ( +
+

Weather in {formData.location}

+

Temperature: {weather.temperature}°C

+

Humidity: {weather.humidity}%

+

Description: {weather.description}

+
+ )} +
+ ); } export default Recommendation; diff --git a/client/src/redux/slices/weatherSlice.js b/client/src/redux/slices/weatherSlice.js new file mode 100644 index 00000000..22a8d3f2 --- /dev/null +++ b/client/src/redux/slices/weatherSlice.js @@ -0,0 +1,39 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import axios from 'axios'; + +export const fetchWeather = createAsyncThunk('weather/fetchWeather', async (city, { getState, rejectWithValue }) => { + const { auth } = getState(); + try { + const response = await axios.get(`http://localhost:3000/api/weather?city=${city}`, { + headers: { Authorization: `Bearer ${auth.token}` }, + }); + return response.data; + } catch (error) { + return rejectWithValue(error.response.data); + } +}); + +const weatherSlice = createSlice({ + name: 'weather', + initialState: { + weather: null, + loading: false, + error: null, + }, + extraReducers: (builder) => { + builder + .addCase(fetchWeather.pending, (state) => { + state.loading = true; + }) + .addCase(fetchWeather.fulfilled, (state, action) => { + state.loading = false; + state.weather = action.payload; + }) + .addCase(fetchWeather.rejected, (state, action) => { + state.loading = false; + state.error = action.payload.message; + }); + }, +}); + +export default weatherSlice.reducer; \ No newline at end of file diff --git a/client/src/redux/store.js b/client/src/redux/store.js index d6dab4d4..79495c7b 100644 --- a/client/src/redux/store.js +++ b/client/src/redux/store.js @@ -1,10 +1,12 @@ import { configureStore } from '@reduxjs/toolkit'; import authReducer from './slices/authSlice'; import plantReducer from './slices/plantSlice'; +import weatherReducer from './slices/weatherSlice'; export const store = configureStore({ reducer: { auth: authReducer, plants: plantReducer, + weather: weatherReducer, }, }); \ No newline at end of file From 151951ff37ab960dd32e809f8e52a41b8c198a62 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Wed, 30 Apr 2025 11:13:05 +0700 Subject: [PATCH 11/26] feat: add email reminder using Nodemailer when adding a plant and --- server/.env.example | 3 + server/__tests__/plant.test.js | 58 +++++++ server/app.js | 16 ++ server/config/cloudinary.js | 11 ++ server/config/sendEmail.js | 45 ++++++ server/controllers/plantController.js | 24 ++- .../controllers/recommendationController.js | 37 ++--- server/package-lock.json | 149 +++++++++++++++++- server/package.json | 6 +- server/routes/plants.js | 3 +- 10 files changed, 327 insertions(+), 25 deletions(-) create mode 100644 server/__tests__/plant.test.js create mode 100644 server/config/cloudinary.js create mode 100644 server/config/sendEmail.js diff --git a/server/.env.example b/server/.env.example index d471b9aa..cbad8a28 100644 --- a/server/.env.example +++ b/server/.env.example @@ -5,5 +5,8 @@ OPENAI_API_KEY=your_openai_api_key OPENWEATHERMAP_API_KEY=your_openweathermap_api_key PLANT_ID_API_KEY=your_plant_id_api_key CLOUDINARY_URL=your_cloudinary_url +CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name +CLOUDINARY_API_KEY=your_cloudinary_api_key +CLOUDINARY_API_SECRET=your_cloudinary_api_secret EMAIL_USER=your_email@gmail.com EMAIL_PASS=your_email_password \ No newline at end of file diff --git a/server/__tests__/plant.test.js b/server/__tests__/plant.test.js new file mode 100644 index 00000000..5440e883 --- /dev/null +++ b/server/__tests__/plant.test.js @@ -0,0 +1,58 @@ +const request = require('supertest'); +const app = require('../app'); +const { sequelize } = require('../models'); +const jwt = require('jsonwebtoken'); + +let server; + +beforeAll(async () => { + await sequelize.sync({ force: true }); + server = app.listen(0); // Gunakan port dinamis untuk pengujian +}); + +afterAll(async () => { + await sequelize.close(); + server.close(); // Tutup server setelah semua tes selesai +}); + +describe('Plant API', () => { + let token; + + beforeEach(() => { + token = jwt.sign({ id: 1, email: 'test@example.com' }, process.env.JWT_SECRET); + }); + + it('should create a new plant', async () => { + const res = await request(app) + .post('/api/plants') + .set('Authorization', `Bearer ${token}`) + .send({ + name: 'Monstera', + species: 'Monstera Deliciosa', + location: 'Jakarta', + light: 'Medium', + temperature: 30, + }); + expect(res.statusCode).toEqual(201); + expect(res.body).toHaveProperty('name', 'Monstera'); + }); + + it('should get all plants', async () => { + await request(app) + .post('/api/plants') + .set('Authorization', `Bearer ${token}`) + .send({ + name: 'Monstera', + species: 'Monstera Deliciosa', + location: 'Jakarta', + light: 'Medium', + temperature: 30, + }); + + const res = await request(app) + .get('/api/plants') + .set('Authorization', `Bearer ${token}`); + expect(res.statusCode).toEqual(200); + expect(res.body).toHaveLength(1); + }); +}); \ No newline at end of file diff --git a/server/app.js b/server/app.js index a97ac00b..f7e1e0cb 100644 --- a/server/app.js +++ b/server/app.js @@ -5,6 +5,22 @@ const plantRoutes = require('./routes/plants'); const recommendationRoutes = require('./routes/recommendation'); const weatherRoutes = require('./routes/weather'); +const { sendReminderEmail } = require('./config/sendEmail'); + +const main = async () => { + try { + await sendReminderEmail( + "heydhal.com@gmail.com", // Ganti dengan email tujuan yang valid + "Monstera", + "menyiram" + ); + } catch (error) { + console.error("Failed to send email:", error); + } +}; + +main(); + const app = express(); app.use(cors()); diff --git a/server/config/cloudinary.js b/server/config/cloudinary.js new file mode 100644 index 00000000..1c01f0e0 --- /dev/null +++ b/server/config/cloudinary.js @@ -0,0 +1,11 @@ +require('dotenv').config(); + +const cloudinary = require('cloudinary').v2; + +// cloudinary.config({ +// cloud_name: process.env.CLOUDINARY_CLOUD_NAME, +// api_key: process.env.CLOUDINARY_API_KEY, +// api_secret: process.env.CLOUDINARY_API_SECRET, +// }); + +module.exports = cloudinary; \ No newline at end of file diff --git a/server/config/sendEmail.js b/server/config/sendEmail.js new file mode 100644 index 00000000..fa90afc8 --- /dev/null +++ b/server/config/sendEmail.js @@ -0,0 +1,45 @@ +// server/config/sendEmail.js +require('dotenv').config(); + +const nodemailer = require('nodemailer'); + +console.log("GMAIL_EMAIL_USER:", process.env.GMAIL_EMAIL_USER); +console.log("GOOGLE_CLIENT_ID:", process.env.GOOGLE_CLIENT_ID); +console.log("GOOGLE_CLIENT_SECRET:", process.env.GOOGLE_CLIENT_SECRET); +console.log("GMAIL_REFRESH_TOKEN:", process.env.GMAIL_REFRESH_TOKEN); + +const sendReminderEmail = async (to, plantName, careTask) => { + const transporter = nodemailer.createTransport({ + host: "smtp.gmail.com", + port: 465, + secure: true, + auth: { + type: "OAuth2", + user: process.env.GMAIL_EMAIL_USER, + clientId: process.env.GOOGLE_CLIENT_ID, + clientSecret: process.env.GOOGLE_CLIENT_SECRET, + refreshToken: process.env.GMAIL_REFRESH_TOKEN, + }, + }); + + const mailOptions = { + from: process.env.GMAIL_EMAIL_USER, + to, + subject: `Pengingat Perawatan Tanaman: ${plantName}`, + text: `Jangan lupa untuk ${careTask} tanaman ${plantName} Anda hari ini!`, + }; + + try { + await transporter.sendMail(mailOptions); + console.log("Email sent successfully"); + } catch (error) { + if (error.message.includes("invalid_grant")) { + console.error("Refresh Token invalid. Please generate a new refresh token using OAuth 2.0 Playground."); + throw new Error("Refresh Token invalid. Please update GMAIL_REFRESH_TOKEN in .env with a new token."); + } + console.error("Error sending email:", error); + throw error; + } +}; + +module.exports = { sendReminderEmail }; \ No newline at end of file diff --git a/server/controllers/plantController.js b/server/controllers/plantController.js index 951160e7..59843529 100644 --- a/server/controllers/plantController.js +++ b/server/controllers/plantController.js @@ -1,4 +1,6 @@ const { Plant } = require('../models'); +const { sendReminderEmail } = require('../config/sendEmail'); +const cloudinary = require('../config/cloudinary'); const createPlant = async (req, res) => { const { name, species, location, light, temperature } = req.body; @@ -11,6 +13,7 @@ const createPlant = async (req, res) => { light, temperature, }); + await sendReminderEmail(req.user.email, name, 'menyiram'); res.status(201).json(plant); } catch (error) { res.status(500).json({ message: error.message }); @@ -51,4 +54,23 @@ const deletePlant = async (req, res) => { } }; -module.exports = { createPlant, getPlants, updatePlant, deletePlant }; \ No newline at end of file + +const uploadPlantPhoto = async (req, res) => { + const { id } = req.params; + const { photo } = req.body; + try { + const plant = await Plant.findOne({ where: { id, userId: req.user.id } }); + if (!plant) return res.status(404).json({ message: 'Plant not found' }); + + const result = await cloudinary.uploader.upload(photo, { + folder: 'plant_photos', + }); + await plant.update({ photoUrl: result.secure_url }); + res.status(200).json({ photoUrl: result.secure_url }); + } catch (error) { + res.status(500).json({ message: error.message }); + } +}; + + +module.exports = { createPlant, getPlants, updatePlant, deletePlant, uploadPlantPhoto }; \ No newline at end of file diff --git a/server/controllers/recommendationController.js b/server/controllers/recommendationController.js index 14eefdcb..acf6c7e2 100644 --- a/server/controllers/recommendationController.js +++ b/server/controllers/recommendationController.js @@ -1,31 +1,28 @@ -const axios = require('axios'); +const OpenAI = require("openai"); + +const openai = new OpenAI({ + apiKey: process.env.OPENAI_API_KEY, +}); const getCareRecommendation = async (req, res) => { const { species, location, light, temperature } = req.body; + try { - const response = await axios.post( - 'https://api.openai.com/v1/chat/completions', - { - model: 'gpt-3.5-turbo', - messages: [ - { - role: 'user', - content: `Saya memiliki tanaman ${species} di ${location} dengan kondisi cahaya ${light} dan suhu ${temperature}°C. Berikan rekomendasi perawatan.`, - }, - ], - }, - { - headers: { - Authorization: `Bearer ${process.env.OPENAI_API_KEY}`, - 'Content-Type': 'application/json', + const chatCompletion = await openai.chat.completions.create({ + model: "gpt-4", + messages: [ + { + role: "user", + content: `Saya memiliki tanaman ${species} di ${location} dengan kondisi cahaya ${light} dan suhu ${temperature}°C. Berikan rekomendasi perawatan.`, }, - } - ); - const recommendation = response.data.choices[0].message.content; + ], + }); + + const recommendation = chatCompletion.choices[0].message.content; res.status(200).json({ recommendation }); } catch (error) { res.status(500).json({ message: error.message }); } }; -module.exports = { getCareRecommendation }; \ No newline at end of file +module.exports = { getCareRecommendation }; diff --git a/server/package-lock.json b/server/package-lock.json index 1539b1ba..edd85c7a 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -10,7 +10,6 @@ "license": "ISC", "dependencies": { "axios": "^1.9.0", - "bcryptjs": "^3.0.2", "cloudinary": "^2.6.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -18,11 +17,13 @@ "google-auth-library": "^9.15.1", "jsonwebtoken": "^9.0.2", "nodemailer": "^6.10.1", + "openai": "^4.96.2", "pg": "^8.15.6", "sequelize": "^6.37.7" }, "devDependencies": { "@eslint/js": "^9.25.1", + "bcryptjs": "^3.0.2", "dotenv": "^16.5.0", "eslint": "^9.25.1", "globals": "^16.0.0", @@ -1596,6 +1597,16 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -1636,6 +1647,18 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", @@ -1681,6 +1704,18 @@ "node": ">= 14" } }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1952,6 +1987,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", "integrity": "sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==", + "dev": true, "license": "BSD-3-Clause", "bin": { "bcrypt": "bin/bcrypt" @@ -3120,6 +3156,15 @@ "es5-ext": "~0.10.14" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -3446,6 +3491,12 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "license": "MIT" + }, "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", @@ -3467,6 +3518,19 @@ "node": ">= 0.6" } }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "license": "MIT", + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, "node_modules/formidable": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", @@ -3931,6 +3995,15 @@ "node": ">=10.17.0" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -5573,6 +5646,26 @@ "dev": true, "license": "ISC" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -5722,6 +5815,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openai": { + "version": "4.96.2", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.96.2.tgz", + "integrity": "sha512-R2XnxvMsizkROr7BV3uNp1q/3skwPZ7fmPjO1bXLnfB4Tu5xKxrT1EVwzjhxn0MZKBKAvOaGWS63jTMN6KrIXA==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + }, + "bin": { + "openai": "bin/cli" + }, + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.87", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.87.tgz", + "integrity": "sha512-OIAAu6ypnVZHmsHCeJ+7CCSub38QNBS9uceMQeg7K5Ur0Jr+wG9wEOEvvMbhp09pxD5czIUy/jND7s7Tb6Nw7A==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/openai/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -7307,6 +7445,15 @@ "makeerror": "1.0.12" } }, + "node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/server/package.json b/server/package.json index 631d04fd..f8933933 100644 --- a/server/package.json +++ b/server/package.json @@ -3,7 +3,8 @@ "version": "1.0.0", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "jest --coverage", + "test:debug": "jest --verbose --detectOpenHandles --forceExit --runInBand", "dev": "npx nodemon app" }, "keywords": [], @@ -12,7 +13,6 @@ "description": "", "dependencies": { "axios": "^1.9.0", - "bcryptjs": "^3.0.2", "cloudinary": "^2.6.0", "cors": "^2.8.5", "express": "^5.1.0", @@ -20,11 +20,13 @@ "google-auth-library": "^9.15.1", "jsonwebtoken": "^9.0.2", "nodemailer": "^6.10.1", + "openai": "^4.96.2", "pg": "^8.15.6", "sequelize": "^6.37.7" }, "devDependencies": { "@eslint/js": "^9.25.1", + "bcryptjs": "^3.0.2", "dotenv": "^16.5.0", "eslint": "^9.25.1", "globals": "^16.0.0", diff --git a/server/routes/plants.js b/server/routes/plants.js index 8a04e1ad..2f7d1ccb 100644 --- a/server/routes/plants.js +++ b/server/routes/plants.js @@ -1,11 +1,12 @@ const express = require('express'); const authenticate = require('../middlewares/auth'); -const { createPlant, getPlants, updatePlant, deletePlant } = require('../controllers/plantController'); +const { createPlant, getPlants, updatePlant, deletePlant, uploadPlantPhoto } = require('../controllers/plantController'); const router = express.Router(); router.post('/', authenticate, createPlant); router.get('/', authenticate, getPlants); router.put('/:id', authenticate, updatePlant); router.delete('/:id', authenticate, deletePlant); +router.post('/:id/photo', authenticate, uploadPlantPhoto); module.exports = router; \ No newline at end of file From 727f1ec982af48f23073212aa5bd4e44d8f0fad9 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Wed, 30 Apr 2025 11:27:21 +0700 Subject: [PATCH 12/26] docs: add API documentation for all endpoints --- server/.gitignore | 2 ++ server/API_DOCS.md | 48 ++++++++++++++++++++++++++++++++++ server/__tests__/plant.test.js | 8 ------ server/app.js | 2 +- server/package-lock.json | 12 +++++++++ server/package.json | 2 +- 6 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 server/API_DOCS.md diff --git a/server/.gitignore b/server/.gitignore index 713d5006..4eb370fd 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1,2 +1,4 @@ node_modules/ +coverage/ .env +dist/ \ No newline at end of file diff --git a/server/API_DOCS.md b/server/API_DOCS.md new file mode 100644 index 00000000..b7b9a180 --- /dev/null +++ b/server/API_DOCS.md @@ -0,0 +1,48 @@ +# API Documentation - Platform Plant Planner + +## Base URL + +`http://localhost:3000/api` + +## Authentication + +- All endpoints (except `/auth/google`) require a JWT token in the header: `Authorization: Bearer ` + +## Endpoints + +### Auth + +- **POST /auth/google** + - Description: Authenticate user with Google token + - Request Body: `{ "token": "google_token" }` + - Response: `{ "token": "jwt_token", "user": { "email": "user@example.com", "name": "User Name" } }` + +### Plants + +- **POST /plants** + - Description: Create a new plant + - Request Body: `{ "name": "Monstera", "species": "Monstera Deliciosa", "location": "Jakarta", "light": "Medium", "temperature": 30 }` + - Response: `201 { "id": 1, "name": "Monstera", ... }` +- **GET /plants** + - Description: Get all plants for the authenticated user + - Response: `200 [{ "id": 1, "name": "Monstera", ... }]` +- **PUT /plants/:id** + - Description: Update a plant + - Request Body: `{ "name": "Updated Monstera" }` + - Response: `200 { "id": 1, "name": "Updated Monstera", ... }` +- **DELETE /plants/:id** + - Description: Delete a plant + - Response: `200 { "message": "Plant deleted" }` + +### Recommendation + +- **POST /recommendation/care** + - Description: Get care recommendation for a plant + - Request Body: `{ "species": "Monstera Deliciosa", "location": "Jakarta", "light": "Medium", "temperature": 30 }` + - Response: `200 { "recommendation": "Water every 3 days..." }` + +### Weather + +- **GET /weather?city=Jakarta** + - Description: Get weather information for a city + - Response: `200 { "temperature": 30, "humidity": 70, "description": "Clear" }` diff --git a/server/__tests__/plant.test.js b/server/__tests__/plant.test.js index 5440e883..f9a2405c 100644 --- a/server/__tests__/plant.test.js +++ b/server/__tests__/plant.test.js @@ -3,16 +3,8 @@ const app = require('../app'); const { sequelize } = require('../models'); const jwt = require('jsonwebtoken'); -let server; - beforeAll(async () => { await sequelize.sync({ force: true }); - server = app.listen(0); // Gunakan port dinamis untuk pengujian -}); - -afterAll(async () => { - await sequelize.close(); - server.close(); // Tutup server setelah semua tes selesai }); describe('Plant API', () => { diff --git a/server/app.js b/server/app.js index f7e1e0cb..b024d014 100644 --- a/server/app.js +++ b/server/app.js @@ -10,7 +10,7 @@ const { sendReminderEmail } = require('./config/sendEmail'); const main = async () => { try { await sendReminderEmail( - "heydhal.com@gmail.com", // Ganti dengan email tujuan yang valid + "heydhal.com@gmail.com", "Monstera", "menyiram" ); diff --git a/server/package-lock.json b/server/package-lock.json index edd85c7a..93b62949 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -23,6 +23,7 @@ }, "devDependencies": { "@eslint/js": "^9.25.1", + "@types/jest": "^29.5.14", "bcryptjs": "^3.0.2", "dotenv": "^16.5.0", "eslint": "^9.25.1", @@ -1575,6 +1576,17 @@ "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.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", diff --git a/server/package.json b/server/package.json index f8933933..ca50f38e 100644 --- a/server/package.json +++ b/server/package.json @@ -4,7 +4,6 @@ "main": "index.js", "scripts": { "test": "jest --coverage", - "test:debug": "jest --verbose --detectOpenHandles --forceExit --runInBand", "dev": "npx nodemon app" }, "keywords": [], @@ -26,6 +25,7 @@ }, "devDependencies": { "@eslint/js": "^9.25.1", + "@types/jest": "^29.5.14", "bcryptjs": "^3.0.2", "dotenv": "^16.5.0", "eslint": "^9.25.1", From 78efeacecdc86d5c817a78ba11f988055db8a399 Mon Sep 17 00:00:00 2001 From: Heydhal Heydhal Date: Thu, 1 May 2025 22:21:01 +0700 Subject: [PATCH 13/26] feat(client,server): enhance frontend and backend with new features, components, and API improvements - **Client**: - Added new favicon and manifest files for improved PWA support - Introduced new components: Button, Layout, LoadingSpinnerLottie, ProtectedRoute, Shimmer, TimeAgo - Added assets for login background and logo - Refactored README to `README FE.md` and removed old README - Updated Navbar, PlantCard, PlantForm, and page components (Home, Login, Plants, Recommendation) - Enhanced Redux slices (auth, plant, weather) and Tailwind/Vite configurations - Modified `.gitignore`, `index.html`, and `package.json` - **Server**: - Added new test suite for authController and renamed plant tests - Introduced `plantphoto` model and migration - Refactored controllers: auth, plant, weather, and replaced recommendationController with Gemini-based version - Added `authMiddleware`, `reminderScheduler`, and `server.js` for improved server setup - Updated Cloudinary, email config, and API documentation - Removed deprecated files: `users.json`, `helper.js`, old middleware, and recommendationController - Modified routes, migrations, models, and `package.json` --- client/.gitignore | 3 + client/README FE.md | 35 + client/README.md | 12 - client/index.html | 15 +- client/package-lock.json | 1507 ++++++++++++- client/package.json | 8 +- client/public/android-chrome-192x192.png | Bin 0 -> 30894 bytes client/public/android-chrome-512x512.png | Bin 0 -> 195357 bytes client/public/apple-touch-icon.png | Bin 0 -> 28366 bytes client/public/favicon-16x16.png | Bin 0 -> 592 bytes client/public/favicon-32x32.png | Bin 0 -> 1506 bytes client/public/favicon.ico | Bin 0 -> 15406 bytes client/public/site.webmanifest | 1 + client/src/App.jsx | 48 +- client/src/assets/bg-login.jpg | Bin 0 -> 133297 bytes client/src/assets/logo.jpg | Bin 0 -> 66809 bytes client/src/components/Button.jsx | 47 + client/src/components/Layout.jsx | 16 + .../src/components/LoadingSpinnerLottie.jsx | 15 + client/src/components/Navbar.jsx | 112 +- client/src/components/PlantCard.jsx | 636 +++++- client/src/components/PlantForm.jsx | 251 ++- client/src/components/ProtectedRoute.jsx | 12 + client/src/components/Shimmer.jsx | 88 + client/src/helpers/TimeAgo.jsx | 70 + client/src/helpers/api.js | 21 + client/src/index.css | 6 + client/src/main.jsx | 6 +- client/src/pages/Home.jsx | 68 +- client/src/pages/Login.jsx | 113 +- client/src/pages/Plants.jsx | 31 +- client/src/pages/Recommendation.jsx | 451 +++- client/src/redux/slices/authSlice.js | 102 +- client/src/redux/slices/plantSlice.js | 173 +- client/src/redux/slices/weatherSlice.js | 13 +- client/tailwind.config.js | 22 +- client/vite.config.js | 16 +- server/API_DOCS.md | 143 +- server/__tests__/authController.test.js | 246 ++ server/__tests__/plant.test.js | 50 - server/__tests__/plants.test.js | 396 ++++ server/app.js | 39 +- server/bin/server.js | 7 + server/config/cloudinary.js | 10 +- server/config/config.json | 6 +- server/config/sendEmail.js | 131 +- server/controllers/authController.js | 89 +- server/controllers/plantController.js | 264 ++- .../controllers/recommendationController.js | 28 - .../recommendationControllerGemini.js | 35 + server/controllers/weatherController.js | 47 +- server/data/users.json | 0 server/helpers/helper.js | 0 server/middlewares/auth.js | 16 - server/middlewares/authMiddleware.js | 32 + server/middlewares/errorHandler.js | 67 + .../migrations/20250429050304-create-user.js | 26 +- .../migrations/20250429050305-create-plant.js | 132 +- .../20250430073949-create-plant-photo.js | 64 + server/models/plant.js | 86 +- server/models/plantphoto.js | 48 + server/models/user.js | 50 +- server/package-lock.json | 1995 +++++++---------- server/package.json | 9 +- server/routes/auth.js | 6 +- server/routes/plants.js | 15 +- server/routes/recommendation.js | 6 +- server/routes/weather.js | 6 +- server/schedulers/reminderScheduler.js | 19 + 69 files changed, 6142 insertions(+), 1824 deletions(-) create mode 100644 client/README FE.md delete mode 100644 client/README.md create mode 100644 client/public/android-chrome-192x192.png create mode 100644 client/public/android-chrome-512x512.png create mode 100644 client/public/apple-touch-icon.png create mode 100644 client/public/favicon-16x16.png create mode 100644 client/public/favicon-32x32.png create mode 100644 client/public/favicon.ico create mode 100644 client/public/site.webmanifest create mode 100644 client/src/assets/bg-login.jpg create mode 100644 client/src/assets/logo.jpg create mode 100644 client/src/components/Button.jsx create mode 100644 client/src/components/Layout.jsx create mode 100644 client/src/components/LoadingSpinnerLottie.jsx create mode 100644 client/src/components/ProtectedRoute.jsx create mode 100644 client/src/components/Shimmer.jsx create mode 100644 client/src/helpers/TimeAgo.jsx create mode 100644 client/src/helpers/api.js create mode 100644 server/__tests__/authController.test.js delete mode 100644 server/__tests__/plant.test.js create mode 100644 server/__tests__/plants.test.js create mode 100644 server/bin/server.js delete mode 100644 server/controllers/recommendationController.js create mode 100644 server/controllers/recommendationControllerGemini.js delete mode 100644 server/data/users.json delete mode 100644 server/helpers/helper.js delete mode 100644 server/middlewares/auth.js create mode 100644 server/middlewares/authMiddleware.js create mode 100644 server/migrations/20250430073949-create-plant-photo.js create mode 100644 server/models/plantphoto.js create mode 100644 server/schedulers/reminderScheduler.js diff --git a/client/.gitignore b/client/.gitignore index a547bf36..3ab6bcdd 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -8,6 +8,9 @@ pnpm-debug.log* lerna-debug.log* node_modules +.env +.env.development +.env.production dist dist-ssr *.local diff --git a/client/README FE.md b/client/README FE.md new file mode 100644 index 00000000..74c8fe49 --- /dev/null +++ b/client/README FE.md @@ -0,0 +1,35 @@ +# Plant Planner - Frontend + +Plant Planner adalah platform berkebun cerdas berbasis AI yang membantu pengguna dalam merawat tanaman mereka melalui berbagai fitur, termasuk: + +## ✨ Fitur Utama + +- 🔐 **Autentikasi Google** +- 🪴 **CRUD Manajemen Tanaman** (tambah, ubah, hapus, lihat) +- 🧠 **Rekomendasi Perawatan Tanaman Berbasis AI** (OpenAI) +- 🌤️ **Informasi Cuaca Lokal** (OpenWeatherMap API) +- 🖼️ **Upload & Hapus Foto Tanaman** (Cloudinary) +- 📧 **Pengingat Perawatan via Email** + +## 📁 Struktur Routes Frontend + +| Path | Komponen | Keterangan | +| ----------------- | ---------------- | ------------------------------------------------- | +| `/` | `Home` | Halaman beranda | +| `/login` | `Login` | Halaman login menggunakan Google OAuth | +| `/plants` | `PlantList` | Daftar tanaman pengguna | +| `/plants/:id` | `PlantDetail` | Detail dan edit tanaman | +| `/add` | `PlantForm` | Tambah tanaman baru | +| `/recommendation` | `Recommendation` | Rekomendasi perawatan dari AI | +| `/weather` | `Weather` | Info cuaca lokal (bisa berupa komponen pendukung) | + +## 🛠️ Teknologi Digunakan + +- React + Vite +- Tailwind CSS +- Redux Toolkit +- Axios +- JWT Authentication +- Cloudinary +- OpenAI API +- OpenWeatherMap API diff --git a/client/README.md b/client/README.md deleted file mode 100644 index 7059a962..00000000 --- a/client/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# React + 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 using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/client/index.html b/client/index.html index bcff8dcc..e036526e 100644 --- a/client/index.html +++ b/client/index.html @@ -2,13 +2,24 @@ - + + + + + + + + + + Plant Planner
- diff --git a/client/package-lock.json b/client/package-lock.json index 01214f15..3c3725c0 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8,13 +8,19 @@ "name": "vite-project", "version": "0.0.0", "dependencies": { + "@lottiefiles/dotlottie-react": "^0.13.5", + "@radix-ui/react-toast": "^1.2.11", "@reduxjs/toolkit": "^2.7.0", "axios": "^1.9.0", + "firebase": "^11.6.1", "framer-motion": "^12.9.2", + "node-cron": "^3.0.3", + "prop-types": "^15.8.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-redux": "^9.2.0", - "react-router": "^7.5.3" + "react-router": "^7.5.3", + "yet-another-react-lightbox": "^3.23.0" }, "devDependencies": { "@eslint/js": "^9.22.0", @@ -902,6 +908,645 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@firebase/analytics": { + "version": "0.10.12", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.12.tgz", + "integrity": "sha512-iDCGnw6qdFqwI5ywkgece99WADJNoymu+nLIQI4fZM/vCZ3bEo4wlpEetW71s1HqGpI0hQStiPhqVjFxDb2yyw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/installations": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/analytics-compat": { + "version": "0.2.18", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.18.tgz", + "integrity": "sha512-Hw9mzsSMZaQu6wrTbi3kYYwGw9nBqOHr47pVLxfr5v8CalsdrG5gfs9XUlPOZjHRVISp3oQrh1j7d3E+ulHPjQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/analytics": "0.10.12", + "@firebase/analytics-types": "0.8.3", + "@firebase/component": "0.6.13", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/analytics-types": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.3.tgz", + "integrity": "sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.11.5.tgz", + "integrity": "sha512-uNp8/Rv12GrrM/dfyqzZCftA2i/5X9axmiEtUDmyQw+0S17EV5s9gudOgdIIGr849LmbAk3At2CBZMqiQJVwNw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/app-check": { + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.13.tgz", + "integrity": "sha512-ONsgml8/dplUOAP42JQO6hhiWDEwR9+RUTLenxAN9S8N6gel/sDQ9Ci721Py1oASMGdDU8v9R7xAZxzvOX5lPg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/app-check-compat": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.20.tgz", + "integrity": "sha512-/twgmlnNAaZ/wbz3kcQrL/26b+X+zUX+lBmu5LwwEcWcpnb+mrVEAKhD7/ttm52dxYiSWtLDeuXy3FXBhqBC5A==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check": "0.8.13", + "@firebase/app-check-types": "0.5.3", + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz", + "integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-check-types": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.3.tgz", + "integrity": "sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-compat": { + "version": "0.2.54", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.54.tgz", + "integrity": "sha512-Vwf29tV/5bHEnp+VPgNWOFMbFG+RSur2ntmzZ19Plp5dJOtoo2nQS817COALLaHlebG/Xf/P5PVHyeQNcSVCqQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app": "0.11.5", + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/app-types": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", + "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.10.1.tgz", + "integrity": "sha512-YsCppueiV4AsMTf4oQ49KiADvtqKnG5j9Q4mBv7xGa0hnSTAX3jpdwlTluU3n0JxUT2tbPkeOESJmF4a9GWlMQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@firebase/auth-compat": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.21.tgz", + "integrity": "sha512-FrUEcqLEWVA3mGyq96wWVxXzEIWTrdBctgQuC4MVuCyH5rJZu1kPsLKdeCYuYbqTz7i94DNuGxMNIW3Y5eFqaQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/auth": "1.10.1", + "@firebase/auth-types": "0.13.0", + "@firebase/component": "0.6.13", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz", + "integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-types": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.13.0.tgz", + "integrity": "sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/component": { + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.13.tgz", + "integrity": "sha512-I/Eg1NpAtZ8AAfq8mpdfXnuUpcLxIDdCDtTzWSh+FXnp/9eCKJ3SNbOCKrUCyhLzNa2SiPJYruei0sxVjaOTeg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/data-connect": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.4.tgz", + "integrity": "sha512-Clt0bHoth4N60RmzTdCaw20S5Eeg5PhjbsxP7tIB9FQlP9qm9pS25WW9v4C3gj9DugrBrJ8d/gh/e+H5+F276Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/database": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.14.tgz", + "integrity": "sha512-9nxYtkHAG02/Nh2Ssms1T4BbWPPjiwohCvkHDUl4hNxnki1kPgsLo5xe9kXNzbacOStmVys+RUXvwzynQSKmUQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.5.tgz", + "integrity": "sha512-CNf1UbvWh6qIaSf4sn6sx2DTDz/em/D7QxULH1LTxxDQHr9+CeYGvlAqrKnk4ZH0P0eIHyQFQU7RwkUJI0B9gQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/database": "1.0.14", + "@firebase/database-types": "1.0.10", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.10.tgz", + "integrity": "sha512-mH6RC1E9/Pv8jf1/p+M8YFTX+iu+iHDN89hecvyO7wHrI4R1V0TXjxOHvX3nLJN1sfh0CWG6CHZ0VlrSmK/cwg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.3", + "@firebase/util": "1.11.0" + } + }, + "node_modules/@firebase/firestore": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.11.tgz", + "integrity": "sha512-Ve9Q1YZKgG7Of8jhwPCy43CLe0Oi62clCDYLNYs0Rz08U75caIFZyASRmz+2FZWdMt8fLGmRLDNd0KfX16zMvA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "@firebase/webchannel-wrapper": "1.0.3", + "@grpc/grpc-js": "~1.9.0", + "@grpc/proto-loader": "^0.7.8", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/firestore-compat": { + "version": "0.3.46", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.46.tgz", + "integrity": "sha512-wwcs1aexd46z/SYHRV9ICOU3nzugSsMGdLAerInswy1SYjiilEq5jubb5KxZZk60jvirGKRbZUbTEhx7FsUkOw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/firestore": "4.7.11", + "@firebase/firestore-types": "3.0.3", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/firestore-types": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.3.tgz", + "integrity": "sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/functions": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.3.tgz", + "integrity": "sha512-Wv7JZMUkKLb1goOWRtsu3t7m97uK6XQvjQLPvn8rncY91+VgdU72crqnaYCDI/ophNuBEmuK8mn0/pAnjUeA6A==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.6.13", + "@firebase/messaging-interop-types": "0.2.3", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/functions-compat": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.20.tgz", + "integrity": "sha512-iIudmYDAML6n3c7uXO2YTlzra2/J6lnMzmJTXNthvrKVMgNMaseNoQP1wKfchK84hMuSF8EkM4AvufwbJ+Juew==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/functions": "0.12.3", + "@firebase/functions-types": "0.6.3", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/functions-types": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.3.tgz", + "integrity": "sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/installations": { + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.13.tgz", + "integrity": "sha512-6ZpkUiaygPFwgVneYxuuOuHnSPnTA4KefLEaw/sKk/rNYgC7X6twaGfYb0sYLpbi9xV4i5jXsqZ3WO+yaguNgg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/util": "1.11.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/installations-compat": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.13.tgz", + "integrity": "sha512-f/o6MqCI7LD/ulY9gvgkv6w5k6diaReD8BFHd/y/fEdpsXmFWYS/g28GXCB72bRVBOgPpkOUNl+VsMvDwlRKmw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/installations": "0.6.13", + "@firebase/installations-types": "0.5.3", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/installations-types": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.3.tgz", + "integrity": "sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/logger": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.4.tgz", + "integrity": "sha512-mH0PEh1zoXGnaR8gD1DeGeNZtWFKbnz9hDO91dIml3iou1gpOnLqXQ2dJfB71dj6dpmUjcQ6phY3ZZJbjErr9g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/messaging": { + "version": "0.12.17", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.17.tgz", + "integrity": "sha512-W3CnGhTm6Nx8XGb6E5/+jZTuxX/EK8Vur4QXvO1DwZta/t0xqWMRgO9vNsZFMYBqFV4o3j4F9qK/iddGYwWS6g==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/installations": "0.6.13", + "@firebase/messaging-interop-types": "0.2.3", + "@firebase/util": "1.11.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/messaging-compat": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.17.tgz", + "integrity": "sha512-5Q+9IG7FuedusdWHVQRjpA3OVD9KUWp/IPegcv0s5qSqRLBjib7FlAeWxN+VL0Ew43tuPJBY2HKhEecuizmO1Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/messaging": "0.12.17", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/messaging-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.3.tgz", + "integrity": "sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/performance": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.2.tgz", + "integrity": "sha512-DXLLp0R0jdxH/yTmv+WTkOzsLl8YYecXh4lGZE0dzqC0IV8k+AxpLSSWvOTCkAETze8yEU/iF+PtgYVlGjfMMQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/installations": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0", + "web-vitals": "^4.2.4" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/performance-compat": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.15.tgz", + "integrity": "sha512-wUxsw7hGBEMN6XfvYQqwPIQp5LcJXawWM5tmYp6L7ClCoTQuEiCKHWWVurJgN8Q1YHzoHVgjNfPQAOVu29iMVg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/performance": "0.7.2", + "@firebase/performance-types": "0.2.3", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/performance-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.3.tgz", + "integrity": "sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/remote-config": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.0.tgz", + "integrity": "sha512-Yrk4l5+6FJLPHC6irNHMzgTtJ3NfHXlAXVChCBdNFtgmzyGmufNs/sr8oA0auEfIJ5VpXCaThRh3P4OdQxiAlQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/installations": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/remote-config-compat": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.13.tgz", + "integrity": "sha512-UmHoO7TxAEJPIZf8e1Hy6CeFGMeyjqSCpgoBkQZYXFI2JHhzxIyDpr8jVKJJN1dmAePKZ5EX7dC13CmcdTOl7Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/remote-config": "0.6.0", + "@firebase/remote-config-types": "0.4.0", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/remote-config-types": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.4.0.tgz", + "integrity": "sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/storage": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.7.tgz", + "integrity": "sha512-FkRyc24rK+Y6EaQ1tYFm3TevBnnfSNA0VyTfew2hrYyL/aYfatBg7HOgktUdB4kWMHNA9VoTotzZTGoLuK92wg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/storage-compat": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.17.tgz", + "integrity": "sha512-CBlODWEZ5b6MJWVh21VZioxwxNwVfPA9CAdsk+ZgVocJQQbE2oDW1XJoRcgthRY1HOitgbn4cVrM+NlQtuUYhw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.13", + "@firebase/storage": "0.13.7", + "@firebase/storage-types": "0.8.3", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/storage-types": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.3.tgz", + "integrity": "sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/util": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.11.0.tgz", + "integrity": "sha512-PzSrhIr++KI6y4P6C/IdgBNMkEx0Ex6554/cYd0Hm+ovyFSJtJXqb/3OSIdnBoa2cpwZT1/GW56EmRc5qEc5fQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@firebase/vertexai": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@firebase/vertexai/-/vertexai-1.2.1.tgz", + "integrity": "sha512-cukZ5ne2RsOWB4PB1EO6nTXgOLxPMKDJfEn+XnSV5ZKWM0ID5o0DvbyS59XihFaBzmy2SwJldP5ap7/xUnW4jA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/component": "0.6.13", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.11.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/webchannel-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.3.tgz", + "integrity": "sha512-2xCRM9q9FlzGZCdgDMJwc0gyUkWFtkosy7Xxr6sFgQwn+wMNIWd7xIvYNauU1r64B5L5rsGKy/n9TKJ0aAFeqQ==", + "license": "Apache-2.0" + }, + "node_modules/@grpc/grpc-js": { + "version": "1.9.15", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz", + "integrity": "sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.7.8", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -968,57 +1613,459 @@ "url": "https://github.com/sponsors/nzakas" } }, - "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, + "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", + "@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, + "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==", + "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.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", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lottiefiles/dotlottie-react": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.13.5.tgz", + "integrity": "sha512-4U5okwjRqDPkjB572hfZtLXJ/LGfCo6vDwUB2KIPEUoSgqbIlw+UrbnaqVp3GS+dRvhMD27F2JObpHpYRlpF0Q==", + "license": "MIT", + "dependencies": { + "@lottiefiles/dotlottie-web": "0.44.0" + }, + "peerDependencies": { + "react": "^17 || ^18 || ^19" + } + }, + "node_modules/@lottiefiles/dotlottie-web": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.44.0.tgz", + "integrity": "sha512-IUWKVciDJI/BMWDWnh7j0Ngd0N8q9ySRAwm84aDqIE07qpmdZ7x1rkIpBaU1yHSNqNYHeh1Rxsl+LC3CY4f0KA==", + "license": "MIT" + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.4.tgz", + "integrity": "sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-slot": "1.2.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.7.tgz", + "integrity": "sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.6.tgz", + "integrity": "sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", + "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", + "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", + "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.11.tgz", + "integrity": "sha512-Ed2mlOmT+tktOsu2NZBK1bCSHh/uqULu1vWOkpQTVq53EoOuZUZw7FInQoDB3uil5wZc2oe0XN9a7uVZB7/6AQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "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, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "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, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "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/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": 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, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.0.tgz", + "integrity": "sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==", "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@radix-ui/react-primitive": "2.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, "node_modules/@reduxjs/toolkit": { @@ -1667,6 +2714,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "22.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz", + "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, "node_modules/@types/react": { "version": "19.1.2", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", @@ -1681,7 +2737,7 @@ "version": "19.1.2", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz", "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==", - "dev": true, + "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.0.0" @@ -1753,11 +2809,19 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "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==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1905,11 +2969,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "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" @@ -1922,7 +2999,6 @@ "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": { @@ -2047,6 +3123,12 @@ "dev": true, "license": "ISC" }, + "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/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", @@ -2151,7 +3233,6 @@ "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" @@ -2369,6 +3450,18 @@ "dev": true, "license": "MIT" }, + "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/fdir": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", @@ -2414,6 +3507,42 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/firebase": { + "version": "11.6.1", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.6.1.tgz", + "integrity": "sha512-aF00ZR+ziiq5/vxamCKpY1I0LA/ungG2qrsQIDibT+xqdvz8MaMnN0aHU4LIxxTx+Dbga/KlUXeklidRJahgHg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/analytics": "0.10.12", + "@firebase/analytics-compat": "0.2.18", + "@firebase/app": "0.11.5", + "@firebase/app-check": "0.8.13", + "@firebase/app-check-compat": "0.3.20", + "@firebase/app-compat": "0.2.54", + "@firebase/app-types": "0.9.3", + "@firebase/auth": "1.10.1", + "@firebase/auth-compat": "0.5.21", + "@firebase/data-connect": "0.3.4", + "@firebase/database": "1.0.14", + "@firebase/database-compat": "2.0.5", + "@firebase/firestore": "4.7.11", + "@firebase/firestore-compat": "0.3.46", + "@firebase/functions": "0.12.3", + "@firebase/functions-compat": "0.3.20", + "@firebase/installations": "0.6.13", + "@firebase/installations-compat": "0.2.13", + "@firebase/messaging": "0.12.17", + "@firebase/messaging-compat": "0.2.17", + "@firebase/performance": "0.7.2", + "@firebase/performance-compat": "0.2.15", + "@firebase/remote-config": "0.6.0", + "@firebase/remote-config-compat": "0.2.13", + "@firebase/storage": "0.13.7", + "@firebase/storage-compat": "0.3.17", + "@firebase/util": "1.11.0", + "@firebase/vertexai": "1.2.1" + } + }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", @@ -2531,6 +3660,15 @@ "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", @@ -2662,6 +3800,18 @@ "node": ">= 0.4" } }, + "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/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -2719,6 +3869,15 @@ "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2753,7 +3912,6 @@ "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": { @@ -3095,6 +4253,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3102,6 +4266,24 @@ "dev": true, "license": "MIT" }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "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/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3203,6 +4385,18 @@ "dev": true, "license": "MIT" }, + "node_modules/node-cron": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz", + "integrity": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==", + "license": "ISC", + "dependencies": { + "uuid": "8.3.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -3210,6 +4404,15 @@ "dev": true, "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/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -3352,6 +4555,41 @@ "node": ">= 0.8.0" } }, + "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/protobufjs": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.0.tgz", + "integrity": "sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.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", @@ -3389,6 +4627,12 @@ "react": "^19.1.0" } }, + "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/react-redux": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", @@ -3460,6 +4704,15 @@ "redux": "^5.0.0" } }, + "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/reselect": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", @@ -3516,6 +4769,26 @@ "fsevents": "~2.3.2" } }, + "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/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -3571,6 +4844,32 @@ "node": ">=0.10.0" } }, + "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/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-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3656,6 +4955,12 @@ "node": ">= 0.8.0" } }, + "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==", + "license": "MIT" + }, "node_modules/update-browserslist-db": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", @@ -3706,6 +5011,15 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.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/vite": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", @@ -3781,6 +5095,35 @@ } } }, + "node_modules/web-vitals": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", + "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==", + "license": "Apache-2.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/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3807,6 +5150,32 @@ "node": ">=0.10.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/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", @@ -3814,6 +5183,56 @@ "dev": true, "license": "ISC" }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yet-another-react-lightbox": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/yet-another-react-lightbox/-/yet-another-react-lightbox-3.23.0.tgz", + "integrity": "sha512-spSBcHYiNEqvmoZvq53ZyaOUyQeyHXYxgw/X0M8fxTYtC8Cn1Y54UlpR46w16kThROsbc+iox07iiaXUA6ao8Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@types/react": "^16 || ^17 || ^18 || ^19", + "@types/react-dom": "^16 || ^17 || ^18 || ^19", + "react": "^16.8.0 || ^17 || ^18 || ^19", + "react-dom": "^16.8.0 || ^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/client/package.json b/client/package.json index aa9eee16..f883a0b7 100644 --- a/client/package.json +++ b/client/package.json @@ -10,13 +10,19 @@ "preview": "vite preview" }, "dependencies": { + "@lottiefiles/dotlottie-react": "^0.13.5", + "@radix-ui/react-toast": "^1.2.11", "@reduxjs/toolkit": "^2.7.0", "axios": "^1.9.0", + "firebase": "^11.6.1", "framer-motion": "^12.9.2", + "node-cron": "^3.0.3", + "prop-types": "^15.8.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-redux": "^9.2.0", - "react-router": "^7.5.3" + "react-router": "^7.5.3", + "yet-another-react-lightbox": "^3.23.0" }, "devDependencies": { "@eslint/js": "^9.22.0", diff --git a/client/public/android-chrome-192x192.png b/client/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..73a29c3ec8d33d16644c0ff402d0538b92390be6 GIT binary patch literal 30894 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 VShC+>y|DlQ002ovPDHLkV1k`Yjq?Bi literal 0 HcmV?d00001 diff --git a/client/public/android-chrome-512x512.png b/client/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..f83b072eb3976d4b237c69a5785453f74219d382 GIT binary patch literal 195357 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�$p)3_9 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 literal 0 HcmV?d00001 diff --git a/client/public/favicon-16x16.png b/client/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..23d69f679b6b1d29e4cc23b2a43f79f8f996e034 GIT binary patch literal 592 zcmV-W0Px%3Q0skR5(w4lRr#TQ5431Fa1Mnu`M*FDFtdJT2h68qB3XdPY z>geER;zVN5sEH=V0iz@~p~gSNKaHRcNJT59ywcb5`l|QptGA_cm-o)S=YHq=zH^UO zDiv#*rctZa5MQyxzgTLl=BVeI0Fc>#mz}8Y*6KEM>KnU<17P@{0C0A0da2(6$K0@*2~#Pl-kQD6f|p?AhJm zmu47i(gPbcHJ_%pGs^jiOPo1)imQ*VQMIbv8NbOwKFj|2aBBv(G0*2_B*5j{SMYnc z@@C;JgWX9k9>2iXe3p^zL-h_xKU5FIM(R_V-i|09w};8}eOdkN=xJ6;1r}Gb?28T6 zeGsxY0Oa(aJe++@(Ca7jZH`^xK3TC~=$sfhN{264m$0D=g2DU6j5MyhGs+J=N5Jc6 zxtK>cbOKufB)by-mmp4V&D_P~Y{UFb{o~R+Rm+sxPYxU-5!p#B)YI5X^(9VycqZu` zNgU$d%LhaPVHvMmCaZ=n+v|3^8Qn4R@8zlh*Qah!HY*&6?`0x2NwTY-rPc4`ip#hi zE+WA&9;b)#v2(2fOv{uND`o|++bd;=@zT&F3vuRhIB_{#jR5MKZ#9+8gViv6&C|GP ea?>1$V!r@aKq^vSRAc}E0000Px)oJmAMR9HuimwilCWgN#p_wpvM7fIs9WfFuSMY>QFra|biQq0m6b7F3$>C84$ zTP>%5)NIR?{s?TgW$DIJ$5L4otgwYsG1LUbm*hox5kcPMUKFmkod?eC+~=Od_1r(s zx#yhcdA`5z@B8~czhko5`W*l!lSw(@a5$XT;>O6K+*jX|ul2^N^Jvf7`P4BcBLFfG zby0N^bpjdSXu;@#5&)FRd$ko;XLnUu68n@^$+b>rwH|gqb`tNR_Fw<=D;SRL!;O_?|rNft!(~jJE!Zb#PDcK zBo$kZb8ZB{+KhKRI;nauBLC`KCdNblmB}m*@>A{T&rYY=m9HdEalS$ zTU=7$$-)gapcP|&c_HbssVEE-SC_E;*ypTDTTWwV6E!V$G!cLOo0-!IJ^8u{KoOyGl-87U^6Dup{vmu*;!V&nlBdbKyku*{apn41>)!J$MK7$ z_))10+bT&<+y>R+P##)n2zboMAQ z;ZL(-#u6GkZ;QQPc6^#!3f#1yR)LF*HGh-=EBCKs$HHycA1MMWWO?dhiqD@Qz$bvq zt##zQFptQP2=U3m!^BSICT05a}zV@vUSsI>l6O5blM`f zs?cRX&CzEiyT!Jv{F=I&DOm9(?R_2WD%pc=aDd$DZ}L^yH#`v-N@l`rj#M9GTwoZp z;%9R3^kMSSmQmYWNAQ>+yuG~H_R1!=bO@GZBhms`kep5OQ_rD@aPH&`LFb*GcCO#K z$-Ja2e0_W=x%3-Z3A5<3cGK2-mq`(E9IZaiThkU%bNezG@#$P^|Cfzf?>Ysk)tljF z)MM)vxi*{3wDz=#vJ3F>CoCvTNgpq7@qBE6g^v68 zgk8&xj$pv3Emu)$g=us>n&TPu0qPjTPcyCC$zWtB9Id4v&0Q66k8Q;sTXxC!wT7c* z!Htp8z76%vX*5b*#5MA@t=uyL<52^$G06+a6KfYUidts!Kdxo}yLRs#XaE2J07*qo IM6N<$f)$3?G5`Po literal 0 HcmV?d00001 diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c19e065d0eb165ab08829a01223495660f372629 GIT binary patch literal 15406 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 literal 0 HcmV?d00001 diff --git a/client/public/site.webmanifest b/client/public/site.webmanifest new file mode 100644 index 00000000..45dc8a20 --- /dev/null +++ b/client/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/client/src/App.jsx b/client/src/App.jsx index e80059cf..0fcee349 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,22 +1,44 @@ -import { Routes, Route } from "react-router"; -import Navbar from "./components/Navbar"; -import Home from "./pages/Home"; +// src/App.jsx +import { useEffect } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { BrowserRouter, Routes, Route } from "react-router"; +import { restoreSession } from "./redux/slices/authSlice"; import Login from "./pages/Login"; import Plants from "./pages/Plants"; +import Home from "./pages/Home"; import Recommendation from "./pages/Recommendation"; +import ProtectedRoute from "./components/ProtectedRoute"; +import Layout from "./components/Layout"; + +export default function App() { + const dispatch = useDispatch(); + const { initialized } = useSelector((state) => state.auth); + + useEffect(() => { + dispatch(restoreSession()); + }, [dispatch]); + + // tunggu sampai restoreSession selesai (fulfilled atau rejected) + if (!initialized) { + return ( +

+

Memuat sesi...

+
+ ); + } -function App() { return ( -
- + - } /> - } /> - } /> - } /> + }> + } /> + } /> + }> + } /> + } /> + + -
+ ); } - -export default App; diff --git a/client/src/assets/bg-login.jpg b/client/src/assets/bg-login.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5c1ce050e6e09824883907033485953a2de83a9 GIT binary patch literal 133297 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 + ); +} diff --git a/client/src/components/LoadingSpinnerLottie.jsx b/client/src/components/LoadingSpinnerLottie.jsx new file mode 100644 index 00000000..424cf85e --- /dev/null +++ b/client/src/components/LoadingSpinnerLottie.jsx @@ -0,0 +1,15 @@ +// components/LoadingSpinnerLottie.jsx +import React from "react"; +import { DotLottieReact } from "@lottiefiles/dotlottie-react"; + +export default function LoadingSpinnerLottie({ size = 32, className = "" }) { + return ( + + ); +} diff --git a/client/src/components/Navbar.jsx b/client/src/components/Navbar.jsx index 405de763..4759293b 100644 --- a/client/src/components/Navbar.jsx +++ b/client/src/components/Navbar.jsx @@ -1,42 +1,108 @@ -import { useSelector, useDispatch } from "react-redux"; -import { Link } from "react-router-dom"; +import { useState } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { NavLink, useNavigate } from "react-router"; import { logout } from "../redux/slices/authSlice"; +import logo from "../assets/logo.jpg"; -function Navbar() { - const { user } = useSelector((state) => state.auth); +export default function Navbar() { const dispatch = useDispatch(); + const navigate = useNavigate(); + const { user } = useSelector((state) => state.auth); + const [isMenuOpen, setIsMenuOpen] = useState(false); + + const handleLogout = () => { + dispatch(logout()); + localStorage.clear(); + sessionStorage.clear(); + navigate("/login", { replace: true }); + setIsMenuOpen(false); + }; + + const toggleMenu = () => { + setIsMenuOpen(!isMenuOpen); + }; return ( -

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%0Dx9@Vmnt35`~QlTeeZ ze8E@%0nt?5#;mi}fphsYMZAGHF_nOMxOtq_O?H^y9vQ$Gki<>uuER;xwA=#?n9yJE z=?!u(qriQ~lMvzuXzCC`4JAs1Pz8HN!JB-|&;;cHSbHJ~73>7KQ>_NGYa70zB8T-( zp`LFSBsdY;h1}z4H^|W2;K?+hZJ2M^=og8=do{yPI3{7llMq7zvd{UpYQM>Fu~RYo z^4KKG6|kSm!7)o}sFcZ6HG6E0o$$xM<|#*DZu61Fe2=VI;wXAE>XXB%tA&!i-&xNV+m>wdYYa(!T1WL|=G?WmOlH8FbWCvtZM? z%c3fFfv%%CIsl6gn!=S7OpepxLy{uUc@kHFR?co^Us4{eAqi92a14-!i80|bw3LUy zG2n&5OEpF{K)nexr&l0-Ip51a&_mTQw@d<=N^op++Fqmpj~ZZSo`9fgHg&n*NGekY zI=^Q(QhXbUDq#JL6lP>ShCh<+fw2RX1SyXT%^gwgDBiF6YfU*K7%p5Uk6#Zdz97`dNKd_}lp5fkG6MVg&35Zabm{vv~3Bovi-0T36Q zL-IM)w<5PmOEel+b*<2B+XbpCLz8J3R)>6pSO*9NX2PxQnO`B*bh(aTzaYMi5T{Lu z$OCoQ&?b(K&^GG{SS*0nx}(-{WxNn^KiCKJZIob~K{Ji|YkX<0XJD=V}$ zxS6b&51P;^sQIWunQWPgTEkSuiF}>WASjh6|EKCCEh&2QL3v@Jsg1zRm~4XmkY<~GIfVDf%_s}s4x{DTWE8Y$ zNxdS}@dkAdd^7;-N3N4MDvxGT%@G91 zL%Y!1O*yN8d8)@GC*fCSuu!v9kS{Tah*H=u88hm}FoW>)UuXSP74uktXv6|9b+nJZy~L>bo=cQuKgLm$Y= zku`ws1VL8$YVxS0$&ln0Y;l^ymT|bpxV-`kMIz2u26gBMVi^Kj4%=sZbcGuj(_eN z#gZP5EOPgND1wfuX{tuz29iZ(0QM+z8MX|j`nGyksG0_5gA5M{x`5PU$4S>|r0P`7|}s(H%>>b5E0-{9z})h?7f2AT-D+^QI-(ZbO76fn4k z$TpRndwja_{@5I5uQy2`i!Q!oQOOiA6IRxYJ$-{QjI$!K)e}%6S8k--eA!n!>Wx&> z{$)W!3u_$BjKIv(WLM0e)GUHq@pwgmNZ*x89UJwLlRP#)?kAGIUrkuLb{L~%X!UE? zBru*9I-nw&BTCDmQq+!wHgG8t6d9_xL4WQ@yrHIL(Z@z@gJ|-2z)-m&0RY~3UxqTH z4lt*|(ub+%(WId=f|MLH3lPm+78FLgQA2aVC1v`kT(SpOQ6iJ-EvUrUU{VLw7nSfr zRb3e{NnDL$oqH3S&Oqh4NS1zl{|I0V(d*4ZRV16CYlgZ`fX+h>S_bjR^)E+(Os{0a zwv6KNB?epunjmbel?4$UeU_jJ_uX?~liR$BLkB3RArGve#h_(Dvc0Ziefv!?2E{nh z7TjAq?A8dAi)Q|9u+I-ftC9G=dovV`9XCd0L?TroQ23#{i`~sN7JSp;3zVE`aWo-N=sZ*PC zYPVO~5Eu1@fl43|W$=zd%NPBiu{?+`mEg?*yEj+^$f5a$axWntkZkf6+|AS&36O#Z z>pW^E^PIply-+-`WV(Nf&CXI-dGVJqf~2!M*4tk{s2zBsP^Z9^W(Dn=2` z1we}L%n0=gQQQs$NPO-1hE)iV!ZOm6Q4kfu@9cGuvOZ%y))ExHx`Z2h8frxQ{Us-$ z(HwGx?~0=Ztw6Aqu)k{rF&t + {children} + + ); +} diff --git a/client/src/components/Layout.jsx b/client/src/components/Layout.jsx new file mode 100644 index 00000000..65a45df8 --- /dev/null +++ b/client/src/components/Layout.jsx @@ -0,0 +1,16 @@ +import { Outlet } from "react-router"; +import Navbar from "./Navbar"; + +export default function Layout() { + return ( +