diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..7e1a1b6
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,8 @@
+PORT=3000
+
+# Discord
+DISCORD_TOKEN=xxxxxxxxxxxxxxxx
+DISCORD_STATUS_NAME=Morgane AI
+DISCORD_STATUS_STATE=Serving the multiverse
+SERVERS_PER_SHARD=150
+OWNER_ID=123456789012345678
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index 999871c..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-name: Build and Deploy
-
-on:
- push:
- branches:
- - main
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - name: Remove existing prod branch (if exists)
- run: |
- git fetch --prune
- git show-ref --verify --quiet refs/heads/prod && git branch -D prod || true
- git push origin --delete prod || true
-
- - name: Create prod branch from main
- run: |
- git checkout -b prod
- git push -u origin prod
-
- - name: Use Node.js 20.x
- uses: actions/setup-node@v2
- with:
- node-version: 20.x
-
- - name: Install pnpm
- run: npm install -g pnpm
-
- - name: Install dependencies with pnpm
- run: pnpm install
-
- - name: Build with pnpm
- run: pnpm build
-
- - name: Modify .gitignore
- run: |
- rm .gitignore || true
- echo ".env" > .gitignore
- echo "node_modules" >> .gitignore
- rm -rf src
-
- - name: Push changes to prod branch
- run: |
- git config --global user.email "contact@jeremysoler.com"
- git config --global user.name "Garder500[Bot]"
- git add .
- git commit -m "Update everythings"
- git push origin prod --force
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 37ef224..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,132 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-lerna-debug.log*
-.pnpm-debug.log*
-
-# Diagnostic reports (https://nodejs.org/api/report.html)
-report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-*.lcov
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# Snowpack dependency directory (https://snowpack.dev/)
-web_modules/
-
-# TypeScript cache
-*.tsbuildinfo
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Optional stylelint cache
-.stylelintcache
-
-# Microbundle cache
-.rpt2_cache/
-.rts2_cache_cjs/
-.rts2_cache_es/
-.rts2_cache_umd/
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variable files
-.env
-.env.development.local
-.env.test.local
-.env.production.local
-.env.local
-
-# parcel-bundler cache (https://parceljs.org/)
-.cache
-.parcel-cache
-
-# Next.js build output
-.next
-out
-
-# Nuxt.js build / generate output
-.nuxt
-dist
-
-# Gatsby files
-.cache/
-# Comment in the public line in if your project uses Gatsby and not Next.js
-# https://nextjs.org/blog/next-9-1#public-directory-support
-# public
-
-# vuepress build output
-.vuepress/dist
-
-# vuepress v2.x temp and cache directory
-.temp
-.cache
-
-# Docusaurus cache and generated files
-.docusaurus
-
-# Serverless directories
-.serverless/
-
-# FuseBox cache
-.fusebox/
-
-# DynamoDB Local files
-.dynamodb/
-
-# TernJS port file
-.tern-port
-
-# Stores VSCode versions used for testing VSCode extensions
-.vscode-test
-
-# yarn v2
-.yarn/cache
-.yarn/unplugged
-.yarn/build-state.yml
-.yarn/install-state.gz
-.pnp.*
-
-local.db
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
deleted file mode 100644
index 222861c..0000000
--- a/.prettierrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "tabWidth": 2,
- "useTabs": false
-}
diff --git a/.swcrc b/.swcrc
deleted file mode 100644
index 15605f3..0000000
--- a/.swcrc
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "jsc": {
- "parser": {
- "syntax": "typescript",
- "tsx": false
- },
- "target": "es5",
- "loose": false,
- "minify": {
- "compress": {
- "arguments": false,
- "arrows": true,
- "booleans": true,
- "booleans_as_integers": false,
- "collapse_vars": true,
- "comparisons": true,
- "computed_props": true,
- "conditionals": true,
- "dead_code": true,
- "directives": true,
- "drop_console": false,
- "drop_debugger": true,
- "evaluate": true,
- "expression": false,
- "hoist_funs": false,
- "hoist_props": true,
- "hoist_vars": false,
- "if_return": true,
- "join_vars": true,
- "keep_classnames": false,
- "keep_fargs": true,
- "keep_fnames": false,
- "keep_infinity": false,
- "loops": true,
- "negate_iife": true,
- "properties": true,
- "reduce_funcs": false,
- "reduce_vars": false,
- "side_effects": true,
- "switches": true,
- "typeofs": true,
- "unsafe": false,
- "unsafe_arrows": false,
- "unsafe_comps": false,
- "unsafe_Function": false,
- "unsafe_math": false,
- "unsafe_symbols": false,
- "unsafe_methods": false,
- "unsafe_proto": false,
- "unsafe_regexp": false,
- "unsafe_undefined": false,
- "unused": true,
- "const_to_let": true,
- "pristine_globals": true
- },
- "mangle": {
- "toplevel": false,
- "keep_classnames": false,
- "keep_fnames": false,
- "keep_private_props": false,
- "ie8": false,
- "safari10": false
- }
- }
- },
- "module": {
- "type": "commonjs"
- },
- "minify": true,
- "isModule": true
-}
diff --git a/.swcrc.example b/.swcrc.example
new file mode 100644
index 0000000..549af3b
--- /dev/null
+++ b/.swcrc.example
@@ -0,0 +1,24 @@
+{
+ "jsc": {
+ "target": "es2020",
+ "parser": {
+ "syntax": "typescript",
+ "tsx": false,
+ "decorators": true,
+ "dynamicImport": true
+ },
+ "transform": {
+ "react": {
+ "runtime": "automatic"
+ }
+ }
+ },
+ "module": {
+ "type": "commonjs",
+ "strict": true,
+ "strictMode": true,
+ "noInterop": false
+ },
+ "minify": false,
+ "sourceMaps": true
+}
diff --git a/README.md b/README.md
index 50d528e..477064d 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,184 @@
-Second test.
+
Ketsuna • Morgane AI
+
+
+Back-end Fastify/Prisma, Front-end Next.js, Bot Discord.js.
+AI assistant full-stack clés en main.
+
+
+
+
+
+
+
+
+
+---
+
+## Sommaire
+- [Fonctionnalités](#fonctionnalités)
+- [Liens rapides](#liens-rapides)
+- [Prérequis](#prérequis)
+- [Installation Ubuntu / Debian](#installation-ubuntudebian)
+- [Variables d’environnement](#variables-denvironnement)
+- [Commandes Discord](#commandes-discord)
+- [Routes Web](#routes-web)
+- [Mise à jour](#mise-à-jour)
+- [Contributors](#contributors)
+- [Licence](#licence)
+
+---
+
+## Fonctionnalités
+
+| Module | ✅ |
+|--------|:--:|
+| API REST (Fastify + SWC) | ✓ |
+| Bot Discord (discord.js v14) | ✓ |
+| Front-end React / Next 14 | ✓ |
+| Sharding, PM2, Prisma ORM | ✓ |
+| Génération img/texte (StableHorde) | ✓ |
+
+---
+
+## Liens rapides
+
+| | |
+|---|---|
+| **Support Discord** | |
+| **Top.gg** | |
+| **Inviter le bot** | |
+
+---
+
+## Prérequis
+
+* Ubuntu 22.04 LTS / Debian 12
+* **Node.js ≥ 20**
+* **PNPM ≥ 8** et **PM2** (gestionnaire de processus)
+* **ffmpeg** + **yt-dlp** (audio/vidéo)
+* Build tools (`# apt install build-essential libvips-dev`)
+
+---
+
+## Commandes Discord
+
+- `/ia imagine ` Image IA
+- `/ia animate` Diaporama + musique YouTube
+- `/ia ask` Réponse texte
+- `/ia login / logout` Lier compte StableHorde
+- `/ia give` Donner des kudos
+- `/ia config` Préférences
+- `/ia help` Aide détaillée
+
+## Routes Web
+
+- / Accueil
+- /cgu Conditions d’utilisation
+- /privacy Politique confidentialité
+
+## Installation Ubuntu/Debian
+
+```bash
+# 1. Base system
+sudo apt update && sudo apt upgrade -y
+sudo apt install -y curl git build-essential libvips-dev ffmpeg
+
+# 2. Node 20 LTS
+curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
+sudo apt install -y nodejs
+
+# 3. PNPM & PM2
+npm install -g pnpm pm2
+
+# 4. yt-dlp (stand-alone)
+sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp \
+ -o /usr/local/bin/yt-dlp && sudo chmod +x /usr/local/bin/yt-dlp
+
+# 5. Cloner le dépôt
+git clone https://github.com/celesteoffi/ketsuna-Morgane-ai.git
+cd ketsuna-Morgane-ai
+
+# 6. Dépendances projet
+pnpm install
+
+# 7. Variables d’env.
+cp .env.example .env && nano .env # → remplissez vos tokens
+# (optionnel) SWC :
+cp .swcrc.example .swcrc
+
+# 8. Base de données
+pnpm migrate # crée les tables (SQLite par défaut)
+
+# 9. Build & start
+pnpm build
+pm2 start "pnpm start" --name ketsuna
+
+# 10. (sharding Discord, si besoin)
+pm2 start "node dist/shard.js" --name ketsuna-sharder
+
+# Démarrage au boot
+pm2 save && pm2 startup
+```
+---
+
+## Variables d’environnement
+
+```
+PORT=3000
+
+# Discord
+DISCORD_TOKEN=xxxxxxxxxxxxxxxx
+DISCORD_STATUS_NAME=Morgane AI
+DISCORD_STATUS_STATE=Serving the multiverse
+SERVERS_PER_SHARD=150
+OWNER_ID=123456789012345678
+```
+Copiez .env.example, collez vos valeurs.
+
+---
+
+## mise à jour
+
+```bash
+git pull
+pnpm install
+pnpm migrate
+pnpm build
+pm2 restart ketsuna
+```
+
+## Contributors
+
+- [garder500](https://github.com/garder500) - creator and maintainer
+- [trail-l31](https://github.com/trail-l31) - contributor
+- [celesteoffi](https://github.com/celesteoffi) - Keeps the script working
+
+
+## License
+
+This project is licensed under the [MIT License](https://opensource.org/license/mit/)
+
+```
+MIT License
+-----------
+© 2023 Jeremy S.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+```
diff --git a/package.json b/package.json
index 7c7751e..e426079 100644
--- a/package.json
+++ b/package.json
@@ -43,6 +43,7 @@
"fastify": "^4.25.1",
"i18n": "^0.15.1",
"next": "^14.0.4",
+ "node-fetch": "^3.3.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2649e68..284851a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,271 +1,186 @@
-lockfileVersion: '6.0'
+lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
-dependencies:
- '@emotion/cache':
- specifier: ^11.11.0
- version: 11.11.0
- '@emotion/react':
- specifier: ^11.11.3
- version: 11.11.3(@types/react@18.2.45)(react@18.2.0)
- '@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.45)(react@18.2.0)
- '@fontsource/roboto':
- specifier: ^5.0.8
- version: 5.0.8
- '@libsql/client':
- specifier: 0.3.6
- version: 0.3.6
- '@mui/icons-material':
- specifier: ^5.15.2
- version: 5.15.2(@mui/material@5.15.2)(@types/react@18.2.45)(react@18.2.0)
- '@mui/material':
- specifier: ^5.15.2
- version: 5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)
- '@mui/material-nextjs':
- specifier: ^5.15.0
- version: 5.15.0(@emotion/cache@11.11.0)(@mui/material@5.15.2)(@types/react@18.2.45)(next@14.0.4)(react@18.2.0)
- '@prisma/adapter-libsql':
- specifier: ^5.7.1
- version: 5.7.1(@libsql/client@0.3.6)
- '@prisma/client':
- specifier: 5.8.1
- version: 5.8.1(prisma@5.8.1)
- '@zeldafan0225/ai_horde':
- specifier: ^5.0.10
- version: 5.0.10
- discord.js:
- specifier: 14.15.0-dev.1703981435-136c66c21
- version: 14.15.0-dev.1703981435-136c66c21
- dotenv:
- specifier: ^16.3.1
- version: 16.3.1
- fastify:
- specifier: ^4.25.1
- version: 4.25.1
- i18n:
- specifier: ^0.15.1
- version: 0.15.1
- next:
- specifier: ^14.0.4
- version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
- react:
- specifier: ^18.2.0
- version: 18.2.0
- react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
-
-devDependencies:
- '@swc/cli':
- specifier: ^0.1.63
- version: 0.1.63(@swc/core@1.3.101)
- '@swc/core':
- specifier: ^1.3.101
- version: 1.3.101
- '@types/centra':
- specifier: ^2.2.3
- version: 2.2.3
- '@types/i18n':
- specifier: ^0.13.10
- version: 0.13.10
- '@types/node':
- specifier: '*'
- version: 20.10.5
- '@types/react':
- specifier: ^18.0.23
- version: 18.2.45
- '@types/react-dom':
- specifier: ^18.0.7
- version: 18.2.18
- cross-env:
- specifier: ^7.0.3
- version: 7.0.3
- nodemon:
- specifier: ^3.0.2
- version: 3.0.2
- prisma:
- specifier: ^5.8.1
- version: 5.8.1
- ts-node:
- specifier: ^10.9.2
- version: 10.9.2(@swc/core@1.3.101)(@types/node@20.10.5)(typescript@5.3.3)
- typescript:
- specifier: ^5.3.3
- version: 5.3.3
+importers:
+
+ .:
+ dependencies:
+ '@emotion/cache':
+ specifier: ^11.11.0
+ version: 11.11.0
+ '@emotion/react':
+ specifier: ^11.11.3
+ version: 11.11.3(@types/react@18.2.45)(react@18.2.0)
+ '@emotion/styled':
+ specifier: ^11.11.0
+ version: 11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)
+ '@fontsource/roboto':
+ specifier: ^5.0.8
+ version: 5.0.8
+ '@libsql/client':
+ specifier: 0.3.6
+ version: 0.3.6
+ '@mui/icons-material':
+ specifier: ^5.15.2
+ version: 5.15.2(@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)
+ '@mui/material':
+ specifier: ^5.15.2
+ version: 5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@mui/material-nextjs':
+ specifier: ^5.15.0
+ version: 5.15.0(@emotion/cache@11.11.0)(@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.45)(next@14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)
+ '@prisma/adapter-libsql':
+ specifier: ^5.7.1
+ version: 5.7.1(@libsql/client@0.3.6)
+ '@prisma/client':
+ specifier: 5.8.1
+ version: 5.8.1(prisma@5.8.1)
+ '@zeldafan0225/ai_horde':
+ specifier: ^5.0.10
+ version: 5.0.10
+ discord.js:
+ specifier: 14.15.0-dev.1703981435-136c66c21
+ version: 14.15.0-dev.1703981435-136c66c21
+ dotenv:
+ specifier: ^16.3.1
+ version: 16.3.1
+ fastify:
+ specifier: ^4.25.1
+ version: 4.25.1
+ i18n:
+ specifier: ^0.15.1
+ version: 0.15.1
+ next:
+ specifier: ^14.0.4
+ version: 14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ node-fetch:
+ specifier: ^3.3.2
+ version: 3.3.2
+ react:
+ specifier: ^18.2.0
+ version: 18.2.0
+ react-dom:
+ specifier: ^18.2.0
+ version: 18.2.0(react@18.2.0)
+ devDependencies:
+ '@swc/cli':
+ specifier: ^0.1.63
+ version: 0.1.63(@swc/core@1.3.101(@swc/helpers@0.5.2))(chokidar@3.5.3)
+ '@swc/core':
+ specifier: ^1.3.101
+ version: 1.3.101(@swc/helpers@0.5.2)
+ '@types/centra':
+ specifier: ^2.2.3
+ version: 2.2.3
+ '@types/i18n':
+ specifier: ^0.13.10
+ version: 0.13.10
+ '@types/node':
+ specifier: '*'
+ version: 20.10.5
+ '@types/react':
+ specifier: ^18.0.23
+ version: 18.2.45
+ '@types/react-dom':
+ specifier: ^18.0.7
+ version: 18.2.18
+ cross-env:
+ specifier: ^7.0.3
+ version: 7.0.3
+ nodemon:
+ specifier: ^3.0.2
+ version: 3.0.2
+ prisma:
+ specifier: ^5.8.1
+ version: 5.8.1
+ ts-node:
+ specifier: ^10.9.2
+ version: 10.9.2(@swc/core@1.3.101(@swc/helpers@0.5.2))(@types/node@20.10.5)(typescript@5.3.3)
+ typescript:
+ specifier: ^5.3.3
+ version: 5.3.3
packages:
- /@babel/code-frame@7.23.5:
+ '@babel/code-frame@7.23.5':
resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.23.4
- chalk: 2.4.2
- dev: false
- /@babel/helper-module-imports@7.22.15:
+ '@babel/helper-module-imports@7.22.15':
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.6
- dev: false
- /@babel/helper-string-parser@7.23.4:
+ '@babel/helper-string-parser@7.23.4':
resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
engines: {node: '>=6.9.0'}
- dev: false
- /@babel/helper-validator-identifier@7.22.20:
+ '@babel/helper-validator-identifier@7.22.20':
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
engines: {node: '>=6.9.0'}
- dev: false
- /@babel/highlight@7.23.4:
+ '@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.22.20
- chalk: 2.4.2
- js-tokens: 4.0.0
- dev: false
- /@babel/runtime@7.23.6:
+ '@babel/runtime@7.23.6':
resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==}
engines: {node: '>=6.9.0'}
- dependencies:
- regenerator-runtime: 0.14.1
- dev: false
- /@babel/types@7.23.6:
+ '@babel/types@7.23.6':
resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==}
engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-string-parser': 7.23.4
- '@babel/helper-validator-identifier': 7.22.20
- to-fast-properties: 2.0.0
- dev: false
- /@cspotcode/source-map-support@0.8.1:
+ '@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
- dependencies:
- '@jridgewell/trace-mapping': 0.3.9
- dev: true
- /@discordjs/builders@1.7.0:
+ '@discordjs/builders@1.7.0':
resolution: {integrity: sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==}
engines: {node: '>=16.11.0'}
- dependencies:
- '@discordjs/formatters': 0.3.3
- '@discordjs/util': 1.0.2
- '@sapphire/shapeshift': 3.9.5
- discord-api-types: 0.37.61
- fast-deep-equal: 3.1.3
- ts-mixer: 6.0.3
- tslib: 2.6.2
- dev: false
- /@discordjs/collection@1.5.3:
+ '@discordjs/collection@1.5.3':
resolution: {integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==}
engines: {node: '>=16.11.0'}
- dev: false
- /@discordjs/collection@2.0.0:
+ '@discordjs/collection@2.0.0':
resolution: {integrity: sha512-YTWIXLrf5FsrLMycpMM9Q6vnZoR/lN2AWX23/Cuo8uOOtS8eHB2dyQaaGnaF8aZPYnttf2bkLMcXn/j6JUOi3w==}
engines: {node: '>=18'}
- dev: false
- /@discordjs/formatters@0.3.3:
+ '@discordjs/formatters@0.3.3':
resolution: {integrity: sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==}
engines: {node: '>=16.11.0'}
- dependencies:
- discord-api-types: 0.37.61
- dev: false
- /@discordjs/rest@2.2.0:
+ '@discordjs/rest@2.2.0':
resolution: {integrity: sha512-nXm9wT8oqrYFRMEqTXQx9DUTeEtXUDMmnUKIhZn6O2EeDY9VCdwj23XCPq7fkqMPKdF7ldAfeVKyxxFdbZl59A==}
engines: {node: '>=16.11.0'}
- dependencies:
- '@discordjs/collection': 2.0.0
- '@discordjs/util': 1.0.2
- '@sapphire/async-queue': 1.5.1
- '@sapphire/snowflake': 3.5.1
- '@vladfrangu/async_event_emitter': 2.2.4
- discord-api-types: 0.37.61
- magic-bytes.js: 1.7.0
- tslib: 2.6.2
- undici: 5.27.2
- dev: false
- /@discordjs/util@1.0.2:
+ '@discordjs/util@1.0.2':
resolution: {integrity: sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==}
engines: {node: '>=16.11.0'}
- dev: false
- /@discordjs/ws@1.0.2:
+ '@discordjs/ws@1.0.2':
resolution: {integrity: sha512-+XI82Rm2hKnFwAySXEep4A7Kfoowt6weO6381jgW+wVdTpMS/56qCvoXyFRY0slcv7c/U8My2PwIB2/wEaAh7Q==}
engines: {node: '>=16.11.0'}
- dependencies:
- '@discordjs/collection': 2.0.0
- '@discordjs/rest': 2.2.0
- '@discordjs/util': 1.0.2
- '@sapphire/async-queue': 1.5.1
- '@types/ws': 8.5.9
- '@vladfrangu/async_event_emitter': 2.2.4
- discord-api-types: 0.37.61
- tslib: 2.6.2
- ws: 8.14.2
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
- dev: false
- /@emotion/babel-plugin@11.11.0:
+ '@emotion/babel-plugin@11.11.0':
resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==}
- dependencies:
- '@babel/helper-module-imports': 7.22.15
- '@babel/runtime': 7.23.6
- '@emotion/hash': 0.9.1
- '@emotion/memoize': 0.8.1
- '@emotion/serialize': 1.1.3
- babel-plugin-macros: 3.1.0
- convert-source-map: 1.9.0
- escape-string-regexp: 4.0.0
- find-root: 1.1.0
- source-map: 0.5.7
- stylis: 4.2.0
- dev: false
- /@emotion/cache@11.11.0:
+ '@emotion/cache@11.11.0':
resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==}
- dependencies:
- '@emotion/memoize': 0.8.1
- '@emotion/sheet': 1.2.2
- '@emotion/utils': 1.2.1
- '@emotion/weak-memoize': 0.3.1
- stylis: 4.2.0
- dev: false
- /@emotion/hash@0.9.1:
+ '@emotion/hash@0.9.1':
resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==}
- dev: false
- /@emotion/is-prop-valid@1.2.1:
+ '@emotion/is-prop-valid@1.2.1':
resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==}
- dependencies:
- '@emotion/memoize': 0.8.1
- dev: false
- /@emotion/memoize@0.8.1:
+ '@emotion/memoize@0.8.1':
resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==}
- dev: false
- /@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0):
+ '@emotion/react@11.11.3':
resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==}
peerDependencies:
'@types/react': '*'
@@ -273,34 +188,14 @@ packages:
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@emotion/babel-plugin': 11.11.0
- '@emotion/cache': 11.11.0
- '@emotion/serialize': 1.1.3
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
- '@emotion/utils': 1.2.1
- '@emotion/weak-memoize': 0.3.1
- '@types/react': 18.2.45
- hoist-non-react-statics: 3.3.2
- react: 18.2.0
- dev: false
- /@emotion/serialize@1.1.3:
+ '@emotion/serialize@1.1.3':
resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==}
- dependencies:
- '@emotion/hash': 0.9.1
- '@emotion/memoize': 0.8.1
- '@emotion/unitless': 0.8.1
- '@emotion/utils': 1.2.1
- csstype: 3.1.3
- dev: false
- /@emotion/sheet@1.2.2:
+ '@emotion/sheet@1.2.2':
resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==}
- dev: false
- /@emotion/styled@11.11.0(@emotion/react@11.11.3)(@types/react@18.2.45)(react@18.2.0):
+ '@emotion/styled@11.11.0':
resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==}
peerDependencies:
'@emotion/react': ^11.0.0-rc.0
@@ -309,259 +204,132 @@ packages:
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@emotion/babel-plugin': 11.11.0
- '@emotion/is-prop-valid': 1.2.1
- '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
- '@emotion/serialize': 1.1.3
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
- '@emotion/utils': 1.2.1
- '@types/react': 18.2.45
- react: 18.2.0
- dev: false
- /@emotion/unitless@0.8.1:
+ '@emotion/unitless@0.8.1':
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
- dev: false
- /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0):
+ '@emotion/use-insertion-effect-with-fallbacks@1.0.1':
resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==}
peerDependencies:
react: '>=16.8.0'
- dependencies:
- react: 18.2.0
- dev: false
- /@emotion/utils@1.2.1:
+ '@emotion/utils@1.2.1':
resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==}
- dev: false
- /@emotion/weak-memoize@0.3.1:
+ '@emotion/weak-memoize@0.3.1':
resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==}
- dev: false
- /@fastify/ajv-compiler@3.5.0:
+ '@fastify/ajv-compiler@3.5.0':
resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==}
- dependencies:
- ajv: 8.12.0
- ajv-formats: 2.1.1(ajv@8.12.0)
- fast-uri: 2.3.0
- dev: false
- /@fastify/busboy@2.1.0:
+ '@fastify/busboy@2.1.0':
resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==}
engines: {node: '>=14'}
- dev: false
- /@fastify/deepmerge@1.3.0:
+ '@fastify/deepmerge@1.3.0':
resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==}
- dev: false
- /@fastify/error@3.4.1:
+ '@fastify/error@3.4.1':
resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==}
- dev: false
- /@fastify/fast-json-stringify-compiler@4.3.0:
+ '@fastify/fast-json-stringify-compiler@4.3.0':
resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==}
- dependencies:
- fast-json-stringify: 5.9.1
- dev: false
- /@floating-ui/core@1.5.2:
+ '@floating-ui/core@1.5.2':
resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==}
- dependencies:
- '@floating-ui/utils': 0.1.6
- dev: false
- /@floating-ui/dom@1.5.3:
+ '@floating-ui/dom@1.5.3':
resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
- dependencies:
- '@floating-ui/core': 1.5.2
- '@floating-ui/utils': 0.1.6
- dev: false
- /@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0):
+ '@floating-ui/react-dom@2.0.4':
resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- dependencies:
- '@floating-ui/dom': 1.5.3
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
- /@floating-ui/utils@0.1.6:
+ '@floating-ui/utils@0.1.6':
resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
- dev: false
- /@fontsource/roboto@5.0.8:
+ '@fontsource/roboto@5.0.8':
resolution: {integrity: sha512-XxPltXs5R31D6UZeLIV1td3wTXU3jzd3f2DLsXI8tytMGBkIsGcc9sIyiupRtA8y73HAhuSCeweOoBqf6DbWCA==}
- dev: false
- /@jridgewell/resolve-uri@3.1.1:
+ '@jridgewell/resolve-uri@3.1.1':
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
- dev: true
- /@jridgewell/sourcemap-codec@1.4.15:
+ '@jridgewell/sourcemap-codec@1.4.15':
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
- dev: true
- /@jridgewell/trace-mapping@0.3.9:
+ '@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
- dependencies:
- '@jridgewell/resolve-uri': 3.1.1
- '@jridgewell/sourcemap-codec': 1.4.15
- dev: true
- /@libsql/client@0.3.6:
+ '@libsql/client@0.3.6':
resolution: {integrity: sha512-3Mc4ZDI7X5ZLkMxX5XijiBeqhvyrny356lcj/KVVIeMXt9j6g4l+CRIsUvgcsyCAOUHqWqh0+TjI91bCKmdW+w==}
- dependencies:
- '@libsql/hrana-client': 0.5.5
- js-base64: 3.7.5
- libsql: 0.1.34
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
- dev: false
- /@libsql/darwin-arm64@0.1.34:
+ '@libsql/darwin-arm64@0.1.34':
resolution: {integrity: sha512-Wv8jvkj/fUAO8DF3A4HaddCMldUUpKcg/WW1sY95FNsSHOxktyxqU80jAp/tCuZ85GQIJozvgSr51/ARIC0gsw==}
cpu: [arm64]
os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
- /@libsql/darwin-x64@0.1.34:
+ '@libsql/darwin-x64@0.1.34':
resolution: {integrity: sha512-2NQXD9nUzC08hg7FdcZLq5uTEwGz1KbD7YvUzQb/psO1lO/E/p83wl1es1082+Pp0z5pSPDWQeRTuccD41L+3w==}
cpu: [x64]
os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
- /@libsql/hrana-client@0.5.5:
+ '@libsql/hrana-client@0.5.5':
resolution: {integrity: sha512-i+hDBpiV719poqEiHupUUZYKJ9YSbCRFe5Q2PQ0v3mHIftePH6gayLjp2u6TXbqbO/Dv6y8yyvYlBXf/kFfRZA==}
- dependencies:
- '@libsql/isomorphic-fetch': 0.1.10
- '@libsql/isomorphic-ws': 0.1.5
- js-base64: 3.7.5
- node-fetch: 3.3.2
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
- dev: false
- /@libsql/isomorphic-fetch@0.1.10:
+ '@libsql/isomorphic-fetch@0.1.10':
resolution: {integrity: sha512-dH0lMk50gKSvEKD78xWMu60SY1sjp1sY//iFLO0XMmBwfVfG136P9KOk06R4maBdlb8KMXOzJ1D28FR5ZKnHTA==}
- dependencies:
- '@types/node-fetch': 2.6.10
- node-fetch: 2.7.0
- transitivePeerDependencies:
- - encoding
- dev: false
- /@libsql/isomorphic-ws@0.1.5:
+ '@libsql/isomorphic-ws@0.1.5':
resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==}
- dependencies:
- '@types/ws': 8.5.9
- ws: 8.14.2
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
- dev: false
- /@libsql/linux-arm64-gnu@0.1.34:
+ '@libsql/linux-arm64-gnu@0.1.34':
resolution: {integrity: sha512-r3dY1FDYZ7eX5HX7HyAoYSqK5FPugj5NSB5Bt/nz+ygBWdXASgSKxkE/RqjJIM59vXwv300iJX9qhR5fXv8sTw==}
cpu: [arm64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@libsql/linux-arm64-musl@0.1.34:
+ '@libsql/linux-arm64-musl@0.1.34':
resolution: {integrity: sha512-9AE/eNb9eQRcNsLxqtpLJxVEoIMmItrdwqJDImPJtOp10rhp4U0x/9RGKerl9Mg3ObVj676pyhAR2KzyudrOfQ==}
cpu: [arm64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@libsql/linux-x64-gnu@0.1.34:
+ '@libsql/linux-x64-gnu@0.1.34':
resolution: {integrity: sha512-o8toY1Txstjt13fBhZbFe8sNAW6OaS6qVcp1Bd6bHkCLSBLZ6pjJmwzQN8rFv9QFBPAnaKP3lI4vaOXXw7huTA==}
cpu: [x64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@libsql/linux-x64-musl@0.1.34:
+ '@libsql/linux-x64-musl@0.1.34':
resolution: {integrity: sha512-EldEmcAxxNPSCjJ73oFxg81PDDIpDbPqK/QOrhmmGYLvYwrnQtVRUIbARf80JQvcy6bCxOO/Q9dh6wGhnyHyYA==}
cpu: [x64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@libsql/win32-x64-msvc@0.1.34:
+ '@libsql/win32-x64-msvc@0.1.34':
resolution: {integrity: sha512-jnv0qfVMnrVv00r+wUOe6DHrHuao9y1w1lN543cV2J1JdQNJT/eSZzhyZFSlS3T2ZUvXfZfZ5GeL8U18IAID6w==}
cpu: [x64]
os: [win32]
- requiresBuild: true
- dev: false
- optional: true
- /@messageformat/core@3.3.0:
+ '@messageformat/core@3.3.0':
resolution: {integrity: sha512-YcXd3remTDdeMxAlbvW6oV9d/01/DZ8DHUFwSttO3LMzIZj3iO0NRw+u1xlsNNORFI+u0EQzD52ZX3+Udi0T3g==}
- dependencies:
- '@messageformat/date-skeleton': 1.0.1
- '@messageformat/number-skeleton': 1.2.0
- '@messageformat/parser': 5.1.0
- '@messageformat/runtime': 3.0.1
- make-plural: 7.3.0
- safe-identifier: 0.4.2
- dev: false
- /@messageformat/date-skeleton@1.0.1:
+ '@messageformat/date-skeleton@1.0.1':
resolution: {integrity: sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg==}
- dev: false
- /@messageformat/number-skeleton@1.2.0:
+ '@messageformat/number-skeleton@1.2.0':
resolution: {integrity: sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==}
- dev: false
- /@messageformat/parser@5.1.0:
+ '@messageformat/parser@5.1.0':
resolution: {integrity: sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==}
- dependencies:
- moo: 0.5.2
- dev: false
- /@messageformat/runtime@3.0.1:
+ '@messageformat/runtime@3.0.1':
resolution: {integrity: sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==}
- dependencies:
- make-plural: 7.3.0
- dev: false
- /@mole-inc/bin-wrapper@8.0.1:
+ '@mole-inc/bin-wrapper@8.0.1':
resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- bin-check: 4.1.0
- bin-version-check: 5.1.0
- content-disposition: 0.5.4
- ext-name: 5.0.0
- file-type: 17.1.6
- filenamify: 5.1.1
- got: 11.8.6
- os-filter-obj: 2.0.0
- dev: true
- /@mui/base@5.0.0-beta.29(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0):
+ '@mui/base@5.0.0-beta.29':
resolution: {integrity: sha512-OXfUssYrB6ch/xpBVHMKAjThPlI9VyGGKdvQLMXef2j39wXfcxPlUVQlwia/lmE3rxWIGvbwkZsDtNYzLMsDUg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -571,24 +339,11 @@ packages:
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0)
- '@mui/types': 7.2.11(@types/react@18.2.45)
- '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
- '@popperjs/core': 2.11.8
- '@types/react': 18.2.45
- clsx: 2.0.0
- prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
- /@mui/core-downloads-tracker@5.15.2:
+ '@mui/core-downloads-tracker@5.15.2':
resolution: {integrity: sha512-0vk4ckS2w1F5PmkSXSd7F/QuRlNcPqWTJ8CPl+HQRLTIhJVS/VKEI+3dQufOdKfn2wS+ecnvlvXerbugs+xZ8Q==}
- dev: false
- /@mui/icons-material@5.15.2(@mui/material@5.15.2)(@types/react@18.2.45)(react@18.2.0):
+ '@mui/icons-material@5.15.2':
resolution: {integrity: sha512-Vs0Z6cd6ieTavMjqPvIJJfwsKaCLdRSErk5LjKdZlBqk7r2SR6roDyhVTQuZOeCzjEFj0qZ4iVPp2DJZRwuYbw==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -598,14 +353,8 @@ packages:
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@mui/material': 5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)
- '@types/react': 18.2.45
- react: 18.2.0
- dev: false
- /@mui/material-nextjs@5.15.0(@emotion/cache@11.11.0)(@mui/material@5.15.2)(@types/react@18.2.45)(next@14.0.4)(react@18.2.0):
+ '@mui/material-nextjs@5.15.0':
resolution: {integrity: sha512-UC3lnoRqJXoWUBeekqjxC4CpxMElz4D4bBCegOhrm80qGV1cP5TBJGjalqoSUq6HSl+COVv6u//AjjIMKCj/qA==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -622,15 +371,8 @@ packages:
optional: true
'@types/react':
optional: true
- dependencies:
- '@emotion/cache': 11.11.0
- '@mui/material': 5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)
- '@types/react': 18.2.45
- next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- dev: false
- /@mui/material@5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0):
+ '@mui/material@5.15.2':
resolution: {integrity: sha512-JnoIrpNmEHG5uC1IyEdgsnDiaiuCZnUIh7f9oeAr87AvBmNiEJPbo7XrD7kBTFWwp+b97rQ12QdSs9CLhT2n/A==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -646,27 +388,8 @@ packages:
optional: true
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.45)(react@18.2.0)
- '@mui/base': 5.0.0-beta.29(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)
- '@mui/core-downloads-tracker': 5.15.2
- '@mui/system': 5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.45)(react@18.2.0)
- '@mui/types': 7.2.11(@types/react@18.2.45)
- '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
- '@types/react': 18.2.45
- '@types/react-transition-group': 4.4.10
- clsx: 2.0.0
- csstype: 3.1.3
- prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-is: 18.2.0
- react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0)
- dev: false
- /@mui/private-theming@5.15.2(@types/react@18.2.45)(react@18.2.0):
+ '@mui/private-theming@5.15.2':
resolution: {integrity: sha512-KlXx5TH1Mw9omSY+Q6rz5TA/P71meSYaAOeopiW8s6o433+fnOxS17rZbmd1RnDZGCo+j24TfCavQuCMBAZnQA==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -675,15 +398,8 @@ packages:
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
- '@types/react': 18.2.45
- prop-types: 15.8.1
- react: 18.2.0
- dev: false
- /@mui/styled-engine@5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0):
+ '@mui/styled-engine@5.15.2':
resolution: {integrity: sha512-fYEN3IZzbebeHwAmQHhxwruiOIi8W74709qXg/7tgtHV4byQSmPgnnKsZkg0hFlzjEbcJIRZyZI0qEecgpR2cg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -695,17 +411,8 @@ packages:
optional: true
'@emotion/styled':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@emotion/cache': 11.11.0
- '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.45)(react@18.2.0)
- csstype: 3.1.3
- prop-types: 15.8.1
- react: 18.2.0
- dev: false
- /@mui/system@5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.45)(react@18.2.0):
+ '@mui/system@5.15.2':
resolution: {integrity: sha512-I7CzLiHDtU/BTobJgSk+wPGGWG95K8lYfdFEnq//wOgSrLDAdOVvl2gleDxJWO+yAbGz4RKEOnR9KuD+xQZH4A==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -720,33 +427,16 @@ packages:
optional: true
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.45)(react@18.2.0)
- '@mui/private-theming': 5.15.2(@types/react@18.2.45)(react@18.2.0)
- '@mui/styled-engine': 5.15.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0)
- '@mui/types': 7.2.11(@types/react@18.2.45)
- '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
- '@types/react': 18.2.45
- clsx: 2.0.0
- csstype: 3.1.3
- prop-types: 15.8.1
- react: 18.2.0
- dev: false
- /@mui/types@7.2.11(@types/react@18.2.45):
+ '@mui/types@7.2.11':
resolution: {integrity: sha512-KWe/QTEsFFlFSH+qRYf3zoFEj3z67s+qAuSnMMg+gFwbxG7P96Hm6g300inQL1Wy///gSRb8juX7Wafvp93m3w==}
peerDependencies:
'@types/react': ^17.0.0 || ^18.0.0
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@types/react': 18.2.45
- dev: false
- /@mui/utils@5.15.2(@types/react@18.2.45)(react@18.2.0):
+ '@mui/utils@5.15.2':
resolution: {integrity: sha512-6dGM9/guFKBlFRHA7/mbM+E7wE7CYDy9Ny4JLtD3J+NTyhi8nd8YxlzgAgTaTVqY0BpdQ2zdfB/q6+p2EdGM0w==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -755,213 +445,131 @@ packages:
peerDependenciesMeta:
'@types/react':
optional: true
- dependencies:
- '@babel/runtime': 7.23.6
- '@types/prop-types': 15.7.11
- '@types/react': 18.2.45
- prop-types: 15.8.1
- react: 18.2.0
- react-is: 18.2.0
- dev: false
- /@neon-rs/load@0.0.4:
+ '@neon-rs/load@0.0.4':
resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==}
- dev: false
- /@next/env@14.0.4:
+ '@next/env@14.0.4':
resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==}
- dev: false
- /@next/swc-darwin-arm64@14.0.4:
+ '@next/swc-darwin-arm64@14.0.4':
resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-darwin-x64@14.0.4:
+ '@next/swc-darwin-x64@14.0.4':
resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-linux-arm64-gnu@14.0.4:
+ '@next/swc-linux-arm64-gnu@14.0.4':
resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-linux-arm64-musl@14.0.4:
+ '@next/swc-linux-arm64-musl@14.0.4':
resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-linux-x64-gnu@14.0.4:
+ '@next/swc-linux-x64-gnu@14.0.4':
resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-linux-x64-musl@14.0.4:
+ '@next/swc-linux-x64-musl@14.0.4':
resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-win32-arm64-msvc@14.0.4:
+ '@next/swc-win32-arm64-msvc@14.0.4':
resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-win32-ia32-msvc@14.0.4:
+ '@next/swc-win32-ia32-msvc@14.0.4':
resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
- requiresBuild: true
- dev: false
- optional: true
- /@next/swc-win32-x64-msvc@14.0.4:
+ '@next/swc-win32-x64-msvc@14.0.4':
resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- requiresBuild: true
- dev: false
- optional: true
- /@nodelib/fs.scandir@2.1.5:
+ '@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
- dev: true
- /@nodelib/fs.stat@2.0.5:
+ '@nodelib/fs.stat@2.0.5':
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
- dev: true
- /@nodelib/fs.walk@1.2.8:
+ '@nodelib/fs.walk@1.2.8':
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.16.0
- dev: true
- /@popperjs/core@2.11.8:
+ '@popperjs/core@2.11.8':
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
- dev: false
- /@prisma/adapter-libsql@5.7.1(@libsql/client@0.3.6):
+ '@prisma/adapter-libsql@5.7.1':
resolution: {integrity: sha512-sl5xQovDzk+ouTl4yGwaaH4AV4i8GFdtQdQV63OjqllOvBwqdD48DDLDj+VVyyk/HH2w55FACf8VLhQgz14Qwg==}
peerDependencies:
'@libsql/client': ^0.3.5
- dependencies:
- '@libsql/client': 0.3.6
- '@prisma/driver-adapter-utils': 5.7.1
- async-mutex: 0.4.0
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@prisma/client@5.8.1(prisma@5.8.1):
+ '@prisma/client@5.8.1':
resolution: {integrity: sha512-xQtMPfbIwLlbm0VVIVQY2yqQVOxPwRQhvIp7Z3m2900g1bu/zRHKhYZJQWELqmjl6d8YwBy0K2NvMqh47v1ubw==}
engines: {node: '>=16.13'}
- requiresBuild: true
peerDependencies:
prisma: '*'
peerDependenciesMeta:
prisma:
optional: true
- dependencies:
- prisma: 5.8.1
- dev: false
- /@prisma/debug@5.8.1:
+ '@prisma/debug@5.8.1':
resolution: {integrity: sha512-tjuw7eA0Us3T42jx9AmAgL58rzwzpFGYc3R7Y4Ip75EBYrKMBA1YihuWMcBC92ILmjlQ/u3p8VxcIE0hr+fZfg==}
- /@prisma/driver-adapter-utils@5.7.1:
+ '@prisma/driver-adapter-utils@5.7.1':
resolution: {integrity: sha512-q4cWte5QYCH4RCeo/UBKVG4HvqjG7YoSrNmn2fzWU6da5cCqw9h8MIGO+Jkpb6S5ySSTW32t63khujYvytXsYg==}
- dependencies:
- debug: 4.3.4(supports-color@5.5.0)
- transitivePeerDependencies:
- - supports-color
- dev: false
- /@prisma/engines-version@5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2:
+ '@prisma/engines-version@5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2':
resolution: {integrity: sha512-f5C3JM3l9yhGr3cr4FMqWloFaSCpNpMi58Om22rjD2DOz3owci2mFdFXMgnAGazFPKrCbbEhcxdsRfspEYRoFQ==}
- /@prisma/engines@5.8.1:
+ '@prisma/engines@5.8.1':
resolution: {integrity: sha512-TJgYLRrZr56uhqcXO4GmP5be+zjCIHtLDK20Cnfg+o9d905hsN065QOL+3Z0zQAy6YD31Ol4u2kzSfRmbJv/uA==}
- requiresBuild: true
- dependencies:
- '@prisma/debug': 5.8.1
- '@prisma/engines-version': 5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2
- '@prisma/fetch-engine': 5.8.1
- '@prisma/get-platform': 5.8.1
- /@prisma/fetch-engine@5.8.1:
+ '@prisma/fetch-engine@5.8.1':
resolution: {integrity: sha512-+bgjjoSFa6uYEbAPlklfoVSStOEfcpheOjoBoNsNNSQdSzcwE2nM4Q0prun0+P8/0sCHo18JZ9xqa8gObvgOUw==}
- dependencies:
- '@prisma/debug': 5.8.1
- '@prisma/engines-version': 5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2
- '@prisma/get-platform': 5.8.1
- /@prisma/get-platform@5.8.1:
+ '@prisma/get-platform@5.8.1':
resolution: {integrity: sha512-wnA+6HTFcY+tkykMokix9GiAkaauPC5W/gg0O5JB0J8tCTNWrqpnQ7AsaGRfkYUbeOIioh6woDjQrGTTRf1Zag==}
- dependencies:
- '@prisma/debug': 5.8.1
- /@sapphire/async-queue@1.5.1:
+ '@sapphire/async-queue@1.5.1':
resolution: {integrity: sha512-1RdpsmDQR/aWfp8oJzPtn4dNQrbpqSL5PIA0uAB/XwerPXUf994Ug1au1e7uGcD7ei8/F63UDjr5GWps1g/HxQ==}
engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
- dev: false
- /@sapphire/shapeshift@3.9.5:
+ '@sapphire/shapeshift@3.9.5':
resolution: {integrity: sha512-AGdHe+51gF7D3W8hBfuSFLBocURDCXVQczScTHXDS3RpNjNgrktIx/amlz5y8nHhm8SAdFt/X8EF8ZSfjJ0tnA==}
engines: {node: '>=v18'}
- dependencies:
- fast-deep-equal: 3.1.3
- lodash: 4.17.21
- dev: false
- /@sapphire/snowflake@3.5.1:
+ '@sapphire/snowflake@3.5.1':
resolution: {integrity: sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==}
engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
- dev: false
- /@sindresorhus/is@4.6.0:
+ '@sindresorhus/is@4.6.0':
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
engines: {node: '>=10'}
- dev: true
- /@swc/cli@0.1.63(@swc/core@1.3.101):
+ '@swc/cli@0.1.63':
resolution: {integrity: sha512-EM9oxxHzmmsprYRbGqsS2M4M/Gr5Gkcl0ROYYIdlUyTkhOiX822EQiRCpPCwdutdnzH2GyaTN7wc6i0Y+CKd3A==}
engines: {node: '>= 12.13'}
hasBin: true
@@ -971,604 +579,351 @@ packages:
peerDependenciesMeta:
chokidar:
optional: true
- dependencies:
- '@mole-inc/bin-wrapper': 8.0.1
- '@swc/core': 1.3.101
- commander: 7.2.0
- fast-glob: 3.3.2
- semver: 7.5.4
- slash: 3.0.0
- source-map: 0.7.4
- dev: true
- /@swc/core-darwin-arm64@1.3.101:
+ '@swc/core-darwin-arm64@1.3.101':
resolution: {integrity: sha512-mNFK+uHNPRXSnfTOG34zJOeMl2waM4hF4a2NY7dkMXrPqw9CoJn4MwTXJcyMiSz1/BnNjjTCHF3Yhj0jPxmkzQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-darwin-x64@1.3.101:
+ '@swc/core-darwin-x64@1.3.101':
resolution: {integrity: sha512-B085j8XOx73Fg15KsHvzYWG262bRweGr3JooO1aW5ec5pYbz5Ew9VS5JKYS03w2UBSxf2maWdbPz2UFAxg0whw==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-linux-arm-gnueabihf@1.3.101:
+ '@swc/core-linux-arm-gnueabihf@1.3.101':
resolution: {integrity: sha512-9xLKRb6zSzRGPqdz52Hy5GuB1lSjmLqa0lST6MTFads3apmx4Vgs8Y5NuGhx/h2I8QM4jXdLbpqQlifpzTlSSw==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-linux-arm64-gnu@1.3.101:
+ '@swc/core-linux-arm64-gnu@1.3.101':
resolution: {integrity: sha512-oE+r1lo7g/vs96Weh2R5l971dt+ZLuhaUX+n3BfDdPxNHfObXgKMjO7E+QS5RbGjv/AwiPCxQmbdCp/xN5ICJA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-linux-arm64-musl@1.3.101:
+ '@swc/core-linux-arm64-musl@1.3.101':
resolution: {integrity: sha512-OGjYG3H4BMOTnJWJyBIovCez6KiHF30zMIu4+lGJTCrxRI2fAjGLml3PEXj8tC3FMcud7U2WUn6TdG0/te2k6g==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-linux-x64-gnu@1.3.101:
+ '@swc/core-linux-x64-gnu@1.3.101':
resolution: {integrity: sha512-/kBMcoF12PRO/lwa8Z7w4YyiKDcXQEiLvM+S3G9EvkoKYGgkkz4Q6PSNhF5rwg/E3+Hq5/9D2R+6nrkF287ihg==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-linux-x64-musl@1.3.101:
+ '@swc/core-linux-x64-musl@1.3.101':
resolution: {integrity: sha512-kDN8lm4Eew0u1p+h1l3JzoeGgZPQ05qDE0czngnjmfpsH2sOZxVj1hdiCwS5lArpy7ktaLu5JdRnx70MkUzhXw==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-win32-arm64-msvc@1.3.101:
+ '@swc/core-win32-arm64-msvc@1.3.101':
resolution: {integrity: sha512-9Wn8TTLWwJKw63K/S+jjrZb9yoJfJwCE2RV5vPCCWmlMf3U1AXj5XuWOLUX+Rp2sGKau7wZKsvywhheWm+qndQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-win32-ia32-msvc@1.3.101:
+ '@swc/core-win32-ia32-msvc@1.3.101':
resolution: {integrity: sha512-onO5KvICRVlu2xmr4//V2je9O2XgS1SGKpbX206KmmjcJhXN5EYLSxW9qgg+kgV5mip+sKTHTAu7IkzkAtElYA==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core-win32-x64-msvc@1.3.101:
+ '@swc/core-win32-x64-msvc@1.3.101':
resolution: {integrity: sha512-T3GeJtNQV00YmiVw/88/nxJ/H43CJvFnpvBHCVn17xbahiVUOPOduh3rc9LgAkKiNt/aV8vU3OJR+6PhfMR7UQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- requiresBuild: true
- dev: true
- optional: true
- /@swc/core@1.3.101:
+ '@swc/core@1.3.101':
resolution: {integrity: sha512-w5aQ9qYsd/IYmXADAnkXPGDMTqkQalIi+kfFf/MHRKTpaOL7DHjMXwPp/n8hJ0qNjRvchzmPtOqtPBiER50d8A==}
engines: {node: '>=10'}
- requiresBuild: true
peerDependencies:
'@swc/helpers': ^0.5.0
peerDependenciesMeta:
'@swc/helpers':
optional: true
- dependencies:
- '@swc/counter': 0.1.2
- '@swc/types': 0.1.5
- optionalDependencies:
- '@swc/core-darwin-arm64': 1.3.101
- '@swc/core-darwin-x64': 1.3.101
- '@swc/core-linux-arm-gnueabihf': 1.3.101
- '@swc/core-linux-arm64-gnu': 1.3.101
- '@swc/core-linux-arm64-musl': 1.3.101
- '@swc/core-linux-x64-gnu': 1.3.101
- '@swc/core-linux-x64-musl': 1.3.101
- '@swc/core-win32-arm64-msvc': 1.3.101
- '@swc/core-win32-ia32-msvc': 1.3.101
- '@swc/core-win32-x64-msvc': 1.3.101
- dev: true
- /@swc/counter@0.1.2:
+ '@swc/counter@0.1.2':
resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==}
- dev: true
- /@swc/helpers@0.5.2:
+ '@swc/helpers@0.5.2':
resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
- dependencies:
- tslib: 2.6.2
- dev: false
- /@swc/types@0.1.5:
+ '@swc/types@0.1.5':
resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
- dev: true
- /@szmarczak/http-timer@4.0.6:
+ '@szmarczak/http-timer@4.0.6':
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
- dependencies:
- defer-to-connect: 2.0.1
- dev: true
- /@thunder04/supermap@3.0.3:
+ '@thunder04/supermap@3.0.3':
resolution: {integrity: sha512-D6z4QHrGhVdF8eGJEzF3h9yG/Pix7WCuTD/KWlumhHcUB9K09n7Ji1oD2kRAvBxISgAutLUhOi9l/FtrMxIopA==}
- dev: false
- /@tokenizer/token@0.3.0:
+ '@tokenizer/token@0.3.0':
resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
- dev: true
- /@tsconfig/node10@1.0.9:
+ '@tsconfig/node10@1.0.9':
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
- dev: true
- /@tsconfig/node12@1.0.11:
+ '@tsconfig/node12@1.0.11':
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
- dev: true
- /@tsconfig/node14@1.0.3:
+ '@tsconfig/node14@1.0.3':
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
- dev: true
- /@tsconfig/node16@1.0.4:
+ '@tsconfig/node16@1.0.4':
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
- dev: true
- /@types/cacheable-request@6.0.3:
+ '@types/cacheable-request@6.0.3':
resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
- dependencies:
- '@types/http-cache-semantics': 4.0.4
- '@types/keyv': 3.1.4
- '@types/node': 20.10.5
- '@types/responselike': 1.0.3
- dev: true
- /@types/centra@2.2.3:
+ '@types/centra@2.2.3':
resolution: {integrity: sha512-7ylrBi66/xZuQ4nuNuXnk5RUBQcLUgMdAqls44buCssA2goua9YuqbY8cCpMTWX+U+Y5e9JDwWAaiBEN4ehMOw==}
- dependencies:
- '@types/node': 20.10.5
- dev: true
- /@types/http-cache-semantics@4.0.4:
+ '@types/http-cache-semantics@4.0.4':
resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
- dev: true
- /@types/i18n@0.13.10:
+ '@types/i18n@0.13.10':
resolution: {integrity: sha512-V5uwFXEzC1BRvDSQkd5zWB7ktZa1yfLKFimlluTFrgBGeFJQNNaLk3J67Sje+c0+m2C7r1BU47cItOk/WRfJcQ==}
- dev: true
- /@types/keyv@3.1.4:
+ '@types/keyv@3.1.4':
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
- dependencies:
- '@types/node': 20.10.5
- dev: true
- /@types/node-fetch@2.6.10:
+ '@types/node-fetch@2.6.10':
resolution: {integrity: sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA==}
- dependencies:
- '@types/node': 20.10.5
- form-data: 4.0.0
- dev: false
- /@types/node@20.10.5:
+ '@types/node@20.10.5':
resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==}
- dependencies:
- undici-types: 5.26.5
- /@types/parse-json@4.0.2:
+ '@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
- dev: false
- /@types/prop-types@15.7.11:
+ '@types/prop-types@15.7.11':
resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
- /@types/react-dom@18.2.18:
+ '@types/react-dom@18.2.18':
resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==}
- dependencies:
- '@types/react': 18.2.45
- dev: true
- /@types/react-transition-group@4.4.10:
+ '@types/react-transition-group@4.4.10':
resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==}
- dependencies:
- '@types/react': 18.2.45
- dev: false
- /@types/react@18.2.45:
+ '@types/react@18.2.45':
resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==}
- dependencies:
- '@types/prop-types': 15.7.11
- '@types/scheduler': 0.16.8
- csstype: 3.1.3
- /@types/responselike@1.0.3:
+ '@types/responselike@1.0.3':
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
- dependencies:
- '@types/node': 20.10.5
- dev: true
- /@types/scheduler@0.16.8:
+ '@types/scheduler@0.16.8':
resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
- /@types/ws@8.5.9:
+ '@types/ws@8.5.9':
resolution: {integrity: sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==}
- dependencies:
- '@types/node': 20.10.5
- dev: false
- /@vladfrangu/async_event_emitter@2.2.4:
+ '@vladfrangu/async_event_emitter@2.2.4':
resolution: {integrity: sha512-ButUPz9E9cXMLgvAW8aLAKKJJsPu1dY1/l/E8xzLFuysowXygs6GBcyunK9rnGC4zTsnIc2mQo71rGw9U+Ykug==}
engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
- dev: false
- /@zeldafan0225/ai_horde@5.0.10:
+ '@zeldafan0225/ai_horde@5.0.10':
resolution: {integrity: sha512-H8tFXFWA22T+WmWcYZHyf62i9l+6WjjILbkzdAzHJsjPkxQjLHnTpXkOkuE5UXjw1qYLwegw4UKeeE2XbvthCw==}
engines: {node: '>=18.0.0'}
- dependencies:
- '@thunder04/supermap': 3.0.3
- dev: false
- /abbrev@1.1.1:
+ abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
- dev: true
- /abort-controller@3.0.0:
+ abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
- dependencies:
- event-target-shim: 5.0.1
- dev: false
- /abstract-logging@2.0.1:
+ abstract-logging@2.0.1:
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
- dev: false
- /acorn-walk@8.3.1:
+ acorn-walk@8.3.1:
resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==}
engines: {node: '>=0.4.0'}
- dev: true
- /acorn@8.11.2:
+ acorn@8.11.2:
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
hasBin: true
- dev: true
- /ajv-formats@2.1.1(ajv@8.12.0):
+ ajv-formats@2.1.1:
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies:
ajv: ^8.0.0
peerDependenciesMeta:
ajv:
optional: true
- dependencies:
- ajv: 8.12.0
- dev: false
- /ajv@8.12.0:
+ ajv@8.12.0:
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
- dependencies:
- fast-deep-equal: 3.1.3
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
- uri-js: 4.4.1
- dev: false
- /ansi-styles@3.2.1:
+ ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
- dependencies:
- color-convert: 1.9.3
- dev: false
- /anymatch@3.1.3:
+ anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
- dev: true
- /arch@2.2.0:
+ arch@2.2.0:
resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==}
- dev: true
- /archy@1.0.0:
+ archy@1.0.0:
resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
- dev: false
- /arg@4.1.3:
+ arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
- dev: true
- /async-mutex@0.4.0:
+ async-mutex@0.4.0:
resolution: {integrity: sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==}
- dependencies:
- tslib: 2.6.2
- dev: false
- /asynckit@0.4.0:
+ asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- dev: false
- /atomic-sleep@1.0.0:
+ atomic-sleep@1.0.0:
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
engines: {node: '>=8.0.0'}
- dev: false
- /avvio@8.2.1:
+ avvio@8.2.1:
resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==}
- dependencies:
- archy: 1.0.0
- debug: 4.3.4(supports-color@5.5.0)
- fastq: 1.16.0
- transitivePeerDependencies:
- - supports-color
- dev: false
- /babel-plugin-macros@3.1.0:
+ babel-plugin-macros@3.1.0:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
- dependencies:
- '@babel/runtime': 7.23.6
- cosmiconfig: 7.1.0
- resolve: 1.22.8
- dev: false
- /balanced-match@1.0.2:
+ balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- dev: true
- /base64-js@1.5.1:
+ base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- dev: false
- /bin-check@4.1.0:
+ bin-check@4.1.0:
resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==}
engines: {node: '>=4'}
- dependencies:
- execa: 0.7.0
- executable: 4.1.1
- dev: true
- /bin-version-check@5.1.0:
+ bin-version-check@5.1.0:
resolution: {integrity: sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==}
engines: {node: '>=12'}
- dependencies:
- bin-version: 6.0.0
- semver: 7.5.4
- semver-truncate: 3.0.0
- dev: true
- /bin-version@6.0.0:
+ bin-version@6.0.0:
resolution: {integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==}
engines: {node: '>=12'}
- dependencies:
- execa: 5.1.1
- find-versions: 5.1.0
- dev: true
- /binary-extensions@2.2.0:
+ binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
- dev: true
- /boolean@3.2.0:
+ boolean@3.2.0:
resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
- dev: false
- /brace-expansion@1.1.11:
+ brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
- dev: true
- /braces@3.0.2:
+ braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
- dependencies:
- fill-range: 7.0.1
- dev: true
- /buffer@6.0.3:
+ buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
- dev: false
- /busboy@1.6.0:
+ busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
- dependencies:
- streamsearch: 1.1.0
- dev: false
- /cacheable-lookup@5.0.4:
+ cacheable-lookup@5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
engines: {node: '>=10.6.0'}
- dev: true
- /cacheable-request@7.0.4:
+ cacheable-request@7.0.4:
resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
engines: {node: '>=8'}
- dependencies:
- clone-response: 1.0.3
- get-stream: 5.2.0
- http-cache-semantics: 4.1.1
- keyv: 4.5.4
- lowercase-keys: 2.0.0
- normalize-url: 6.1.0
- responselike: 2.0.1
- dev: true
- /callsites@3.1.0:
+ callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- dev: false
- /caniuse-lite@1.0.30001571:
+ caniuse-lite@1.0.30001571:
resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==}
- dev: false
- /chalk@2.4.2:
+ chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
- dependencies:
- ansi-styles: 3.2.1
- escape-string-regexp: 1.0.5
- supports-color: 5.5.0
- dev: false
- /chokidar@3.5.3:
+ chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
- dependencies:
- anymatch: 3.1.3
- braces: 3.0.2
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- is-glob: 4.0.3
- normalize-path: 3.0.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.3
- dev: true
- /client-only@0.0.1:
+ client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
- dev: false
- /clone-response@1.0.3:
+ clone-response@1.0.3:
resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
- dependencies:
- mimic-response: 1.0.1
- dev: true
- /clsx@2.0.0:
+ clsx@2.0.0:
resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
engines: {node: '>=6'}
- dev: false
- /color-convert@1.9.3:
+ color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
- dependencies:
- color-name: 1.1.3
- dev: false
- /color-name@1.1.3:
+ color-name@1.1.3:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
- dev: false
- /combined-stream@1.0.8:
+ combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
- dependencies:
- delayed-stream: 1.0.0
- dev: false
- /commander@7.2.0:
+ commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
- dev: true
- /concat-map@0.0.1:
+ concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
- dev: true
- /content-disposition@0.5.4:
+ content-disposition@0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
- dependencies:
- safe-buffer: 5.2.1
- dev: true
- /convert-source-map@1.9.0:
+ convert-source-map@1.9.0:
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
- dev: false
- /cookie@0.5.0:
+ cookie@0.5.0:
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
engines: {node: '>= 0.6'}
- dev: false
- /cosmiconfig@7.1.0:
+ cosmiconfig@7.1.0:
resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
engines: {node: '>=10'}
- dependencies:
- '@types/parse-json': 4.0.2
- import-fresh: 3.3.0
- parse-json: 5.2.0
- path-type: 4.0.0
- yaml: 1.10.2
- dev: false
- /create-require@1.1.1:
+ create-require@1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
- dev: true
- /cross-env@7.0.3:
+ cross-env@7.0.3:
resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
hasBin: true
- dependencies:
- cross-spawn: 7.0.3
- dev: true
- /cross-spawn@5.1.0:
+ cross-spawn@5.1.0:
resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
- dependencies:
- lru-cache: 4.1.5
- shebang-command: 1.2.0
- which: 1.3.1
- dev: true
- /cross-spawn@7.0.3:
+ cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
- dev: true
- /csstype@3.1.3:
+ csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
- /data-uri-to-buffer@4.0.1:
+ data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
- dev: false
- /debug@4.3.4(supports-color@5.5.0):
+ debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
@@ -1576,692 +931,396 @@ packages:
peerDependenciesMeta:
supports-color:
optional: true
- dependencies:
- ms: 2.1.2
- supports-color: 5.5.0
- /decompress-response@6.0.0:
+ decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
- dependencies:
- mimic-response: 3.1.0
- dev: true
- /defer-to-connect@2.0.1:
+ defer-to-connect@2.0.1:
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
engines: {node: '>=10'}
- dev: true
- /delayed-stream@1.0.0:
+ delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
- dev: false
- /detect-libc@2.0.2:
+ detect-libc@2.0.2:
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
engines: {node: '>=8'}
- dev: false
- /diff@4.0.2:
+ diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
- dev: true
- /discord-api-types@0.37.61:
+ discord-api-types@0.37.61:
resolution: {integrity: sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==}
- dev: false
- /discord.js@14.15.0-dev.1703981435-136c66c21:
+ discord.js@14.15.0-dev.1703981435-136c66c21:
resolution: {integrity: sha512-Nw+OENi8b1tTofyQ+VSLEBMEEiPhe/roTbYDVJLprCsVyF1PTxc2L7bi2SfGKG4kE7GX+UQRjdxx/4t7avSaKQ==}
engines: {node: '>=16.11.0'}
- dependencies:
- '@discordjs/builders': 1.7.0
- '@discordjs/collection': 1.5.3
- '@discordjs/formatters': 0.3.3
- '@discordjs/rest': 2.2.0
- '@discordjs/util': 1.0.2
- '@discordjs/ws': 1.0.2
- '@sapphire/snowflake': 3.5.1
- '@types/ws': 8.5.9
- discord-api-types: 0.37.61
- fast-deep-equal: 3.1.3
- lodash.snakecase: 4.1.1
- tslib: 2.6.2
- undici: 5.27.2
- ws: 8.14.2
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
- dev: false
- /dom-helpers@5.2.1:
+ dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
- dependencies:
- '@babel/runtime': 7.23.6
- csstype: 3.1.3
- dev: false
- /dotenv@16.3.1:
+ dotenv@16.3.1:
resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
engines: {node: '>=12'}
- dev: false
- /end-of-stream@1.4.4:
+ end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
- dependencies:
- once: 1.4.0
- dev: true
- /error-ex@1.3.2:
+ error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
- dependencies:
- is-arrayish: 0.2.1
- dev: false
- /escape-string-regexp@1.0.5:
+ escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
- dev: false
- /escape-string-regexp@4.0.0:
+ escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- dev: false
- /escape-string-regexp@5.0.0:
+ escape-string-regexp@5.0.0:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
- dev: true
- /event-target-shim@5.0.1:
+ event-target-shim@5.0.1:
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
engines: {node: '>=6'}
- dev: false
- /events@3.3.0:
+ events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
- dev: false
- /execa@0.7.0:
+ execa@0.7.0:
resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==}
engines: {node: '>=4'}
- dependencies:
- cross-spawn: 5.1.0
- get-stream: 3.0.0
- is-stream: 1.1.0
- npm-run-path: 2.0.2
- p-finally: 1.0.0
- signal-exit: 3.0.7
- strip-eof: 1.0.0
- dev: true
- /execa@5.1.1:
+ execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
- dependencies:
- cross-spawn: 7.0.3
- get-stream: 6.0.1
- human-signals: 2.1.0
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
- dev: true
- /executable@4.1.1:
+ executable@4.1.1:
resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
engines: {node: '>=4'}
- dependencies:
- pify: 2.3.0
- dev: true
- /ext-list@2.2.2:
+ ext-list@2.2.2:
resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==}
engines: {node: '>=0.10.0'}
- dependencies:
- mime-db: 1.52.0
- dev: true
- /ext-name@5.0.0:
+ ext-name@5.0.0:
resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==}
engines: {node: '>=4'}
- dependencies:
- ext-list: 2.2.2
- sort-keys-length: 1.0.1
- dev: true
- /fast-content-type-parse@1.1.0:
+ fast-content-type-parse@1.1.0:
resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==}
- dev: false
- /fast-decode-uri-component@1.0.1:
+ fast-decode-uri-component@1.0.1:
resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==}
- dev: false
- /fast-deep-equal@3.1.3:
+ fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: false
- /fast-glob@3.3.2:
+ fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.5
- dev: true
- /fast-json-stringify@5.9.1:
+ fast-json-stringify@5.9.1:
resolution: {integrity: sha512-NMrf+uU9UJnTzfxaumMDXK1NWqtPCfGoM9DYIE+ESlaTQqjlANFBy0VAbsm6FB88Mx0nceyi18zTo5kIEUlzxg==}
- dependencies:
- '@fastify/deepmerge': 1.3.0
- ajv: 8.12.0
- ajv-formats: 2.1.1(ajv@8.12.0)
- fast-deep-equal: 3.1.3
- fast-uri: 2.3.0
- json-schema-ref-resolver: 1.0.1
- rfdc: 1.3.0
- dev: false
- /fast-printf@1.6.9:
+ fast-printf@1.6.9:
resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==}
engines: {node: '>=10.0'}
- dependencies:
- boolean: 3.2.0
- dev: false
- /fast-querystring@1.1.2:
+ fast-querystring@1.1.2:
resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==}
- dependencies:
- fast-decode-uri-component: 1.0.1
- dev: false
- /fast-redact@3.3.0:
+ fast-redact@3.3.0:
resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==}
engines: {node: '>=6'}
- dev: false
- /fast-uri@2.3.0:
+ fast-uri@2.3.0:
resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==}
- dev: false
- /fastify@4.25.1:
+ fastify@4.25.1:
resolution: {integrity: sha512-D8d0rv61TwqoAS7lom2tvIlgVMlx88lLsiwXyWNjA7CU/LC/mx/Gp2WAlC0S/ABq19U+y/aRvYFG5xLUu2aMrg==}
- dependencies:
- '@fastify/ajv-compiler': 3.5.0
- '@fastify/error': 3.4.1
- '@fastify/fast-json-stringify-compiler': 4.3.0
- abstract-logging: 2.0.1
- avvio: 8.2.1
- fast-content-type-parse: 1.1.0
- fast-json-stringify: 5.9.1
- find-my-way: 7.7.0
- light-my-request: 5.11.0
- pino: 8.17.1
- process-warning: 3.0.0
- proxy-addr: 2.0.7
- rfdc: 1.3.0
- secure-json-parse: 2.7.0
- semver: 7.5.4
- toad-cache: 3.4.1
- transitivePeerDependencies:
- - supports-color
- dev: false
- /fastq@1.16.0:
+ fastq@1.16.0:
resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==}
- dependencies:
- reusify: 1.0.4
- /fetch-blob@3.2.0:
+ fetch-blob@3.2.0:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
- dependencies:
- node-domexception: 1.0.0
- web-streams-polyfill: 3.2.1
- dev: false
- /file-type@17.1.6:
+ file-type@17.1.6:
resolution: {integrity: sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- readable-web-to-node-stream: 3.0.2
- strtok3: 7.0.0
- token-types: 5.0.1
- dev: true
- /filename-reserved-regex@3.0.0:
+ filename-reserved-regex@3.0.0:
resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
- /filenamify@5.1.1:
+ filenamify@5.1.1:
resolution: {integrity: sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==}
engines: {node: '>=12.20'}
- dependencies:
- filename-reserved-regex: 3.0.0
- strip-outer: 2.0.0
- trim-repeated: 2.0.0
- dev: true
- /fill-range@7.0.1:
+ fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
- dependencies:
- to-regex-range: 5.0.1
- dev: true
- /find-my-way@7.7.0:
+ find-my-way@7.7.0:
resolution: {integrity: sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==}
engines: {node: '>=14'}
- dependencies:
- fast-deep-equal: 3.1.3
- fast-querystring: 1.1.2
- safe-regex2: 2.0.0
- dev: false
- /find-root@1.1.0:
+ find-root@1.1.0:
resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
- dev: false
- /find-versions@5.1.0:
+ find-versions@5.1.0:
resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==}
engines: {node: '>=12'}
- dependencies:
- semver-regex: 4.0.5
- dev: true
- /form-data@4.0.0:
+ form-data@4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- mime-types: 2.1.35
- dev: false
- /formdata-polyfill@4.0.10:
+ formdata-polyfill@4.0.10:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
- dependencies:
- fetch-blob: 3.2.0
- dev: false
- /forwarded@0.2.0:
+ forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
- dev: false
- /fsevents@2.3.3:
+ fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
- /function-bind@1.1.2:
+ function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- dev: false
- /get-stream@3.0.0:
+ get-stream@3.0.0:
resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==}
engines: {node: '>=4'}
- dev: true
- /get-stream@5.2.0:
+ get-stream@5.2.0:
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
engines: {node: '>=8'}
- dependencies:
- pump: 3.0.0
- dev: true
- /get-stream@6.0.1:
+ get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
- dev: true
- /glob-parent@5.1.2:
+ glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
- dependencies:
- is-glob: 4.0.3
- dev: true
- /glob-to-regexp@0.4.1:
+ glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
- dev: false
- /got@11.8.6:
+ got@11.8.6:
resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
engines: {node: '>=10.19.0'}
- dependencies:
- '@sindresorhus/is': 4.6.0
- '@szmarczak/http-timer': 4.0.6
- '@types/cacheable-request': 6.0.3
- '@types/responselike': 1.0.3
- cacheable-lookup: 5.0.4
- cacheable-request: 7.0.4
- decompress-response: 6.0.0
- http2-wrapper: 1.0.3
- lowercase-keys: 2.0.0
- p-cancelable: 2.1.1
- responselike: 2.0.1
- dev: true
- /graceful-fs@4.2.11:
+ graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- dev: false
- /has-flag@3.0.0:
+ has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
- /hasown@2.0.0:
+ hasown@2.0.0:
resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
engines: {node: '>= 0.4'}
- dependencies:
- function-bind: 1.1.2
- dev: false
- /hoist-non-react-statics@3.3.2:
+ hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
- dependencies:
- react-is: 16.13.1
- dev: false
- /http-cache-semantics@4.1.1:
+ http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
- dev: true
- /http2-wrapper@1.0.3:
+ http2-wrapper@1.0.3:
resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
engines: {node: '>=10.19.0'}
- dependencies:
- quick-lru: 5.1.1
- resolve-alpn: 1.2.1
- dev: true
- /human-signals@2.1.0:
+ human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
- dev: true
- /i18n@0.15.1:
+ i18n@0.15.1:
resolution: {integrity: sha512-yue187t8MqUPMHdKjiZGrX+L+xcUsDClGO0Cz4loaKUOK9WrGw5pgan4bv130utOwX7fHE9w2iUeHFalVQWkXA==}
engines: {node: '>=10'}
- dependencies:
- '@messageformat/core': 3.3.0
- debug: 4.3.4(supports-color@5.5.0)
- fast-printf: 1.6.9
- make-plural: 7.3.0
- math-interval-parser: 2.0.1
- mustache: 4.2.0
- transitivePeerDependencies:
- - supports-color
- dev: false
- /ieee754@1.2.1:
+ ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- /ignore-by-default@1.0.1:
+ ignore-by-default@1.0.1:
resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
- dev: true
- /import-fresh@3.3.0:
+ import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
- dev: false
- /inherits@2.0.4:
+ inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- dev: true
- /ipaddr.js@1.9.1:
+ ipaddr.js@1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
- dev: false
- /is-arrayish@0.2.1:
+ is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- dev: false
- /is-binary-path@2.1.0:
+ is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
- dependencies:
- binary-extensions: 2.2.0
- dev: true
- /is-core-module@2.13.1:
+ is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
- dependencies:
- hasown: 2.0.0
- dev: false
- /is-extglob@2.1.1:
+ is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
- dev: true
- /is-glob@4.0.3:
+ is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
- dependencies:
- is-extglob: 2.1.1
- dev: true
- /is-number@7.0.0:
+ is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- dev: true
- /is-plain-obj@1.1.0:
+ is-plain-obj@1.1.0:
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
engines: {node: '>=0.10.0'}
- dev: true
- /is-stream@1.1.0:
+ is-stream@1.1.0:
resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
engines: {node: '>=0.10.0'}
- dev: true
- /is-stream@2.0.1:
+ is-stream@2.0.1:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: '>=8'}
- dev: true
- /isexe@2.0.0:
+ isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- dev: true
- /js-base64@3.7.5:
+ js-base64@3.7.5:
resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==}
- dev: false
- /js-tokens@4.0.0:
+ js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- dev: false
- /json-buffer@3.0.1:
+ json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
- dev: true
- /json-parse-even-better-errors@2.3.1:
+ json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- dev: false
- /json-schema-ref-resolver@1.0.1:
+ json-schema-ref-resolver@1.0.1:
resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==}
- dependencies:
- fast-deep-equal: 3.1.3
- dev: false
- /json-schema-traverse@1.0.0:
+ json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
- dev: false
- /keyv@4.5.4:
+ keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
- dependencies:
- json-buffer: 3.0.1
- dev: true
- /libsql@0.1.34:
+ libsql@0.1.34:
resolution: {integrity: sha512-LGofp7z7gi1Td6vu2GxaA4WyvSPEkuFn0f/ePSti1TsAlBU0LWxdk+bj9D8nqswzxiqe5wpAyTLhVzTIYSyXEA==}
cpu: [x64, arm64]
os: [darwin, linux, win32]
- dependencies:
- '@neon-rs/load': 0.0.4
- detect-libc: 2.0.2
- optionalDependencies:
- '@libsql/darwin-arm64': 0.1.34
- '@libsql/darwin-x64': 0.1.34
- '@libsql/linux-arm64-gnu': 0.1.34
- '@libsql/linux-arm64-musl': 0.1.34
- '@libsql/linux-x64-gnu': 0.1.34
- '@libsql/linux-x64-musl': 0.1.34
- '@libsql/win32-x64-msvc': 0.1.34
- dev: false
- /light-my-request@5.11.0:
+ light-my-request@5.11.0:
resolution: {integrity: sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==}
- dependencies:
- cookie: 0.5.0
- process-warning: 2.3.2
- set-cookie-parser: 2.6.0
- dev: false
- /lines-and-columns@1.2.4:
+ lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
- dev: false
- /lodash.snakecase@4.1.1:
+ lodash.snakecase@4.1.1:
resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
- dev: false
- /lodash@4.17.21:
+ lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
- dev: false
- /loose-envify@1.4.0:
+ loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
- dependencies:
- js-tokens: 4.0.0
- dev: false
- /lowercase-keys@2.0.0:
+ lowercase-keys@2.0.0:
resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
engines: {node: '>=8'}
- dev: true
- /lru-cache@4.1.5:
+ lru-cache@4.1.5:
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
- dependencies:
- pseudomap: 1.0.2
- yallist: 2.1.2
- dev: true
- /lru-cache@6.0.0:
+ lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
- dependencies:
- yallist: 4.0.0
- /magic-bytes.js@1.7.0:
+ magic-bytes.js@1.7.0:
resolution: {integrity: sha512-YzVU2+/hrjwx8xcgAw+ffNq3jkactpj+f1iSL4LonrFKhvnwDzHSqtFdk/MMRP53y9ScouJ7cKEnqYsJwsHoYA==}
- dev: false
- /make-error@1.3.6:
+ make-error@1.3.6:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
- dev: true
- /make-plural@7.3.0:
+ make-plural@7.3.0:
resolution: {integrity: sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==}
- dev: false
- /math-interval-parser@2.0.1:
+ math-interval-parser@2.0.1:
resolution: {integrity: sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==}
engines: {node: '>=0.10.0'}
- dev: false
- /merge-stream@2.0.0:
+ merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
- dev: true
- /merge2@1.4.1:
+ merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- dev: true
- /micromatch@4.0.5:
+ micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
- dependencies:
- braces: 3.0.2
- picomatch: 2.3.1
- dev: true
- /mime-db@1.52.0:
+ mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
- /mime-types@2.1.35:
+ mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
- dependencies:
- mime-db: 1.52.0
- dev: false
- /mimic-fn@2.1.0:
+ mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
- dev: true
- /mimic-response@1.0.1:
+ mimic-response@1.0.1:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
- dev: true
- /mimic-response@3.1.0:
+ mimic-response@3.1.0:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
- dev: true
- /minimatch@3.1.2:
+ minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
- dependencies:
- brace-expansion: 1.1.11
- dev: true
- /moo@0.5.2:
+ moo@0.5.2:
resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
- dev: false
- /ms@2.1.2:
+ ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- /mustache@4.2.0:
+ mustache@4.2.0:
resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
hasBin: true
- dev: false
- /nanoid@3.3.7:
+ nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- dev: false
- /next@14.0.4(react-dom@18.2.0)(react@18.2.0):
+ next@14.0.4:
resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==}
engines: {node: '>=18.17.0'}
hasBin: true
@@ -2275,38 +1334,12 @@ packages:
optional: true
sass:
optional: true
- dependencies:
- '@next/env': 14.0.4
- '@swc/helpers': 0.5.2
- busboy: 1.6.0
- caniuse-lite: 1.0.30001571
- graceful-fs: 4.2.11
- postcss: 8.4.31
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(react@18.2.0)
- watchpack: 2.4.0
- optionalDependencies:
- '@next/swc-darwin-arm64': 14.0.4
- '@next/swc-darwin-x64': 14.0.4
- '@next/swc-linux-arm64-gnu': 14.0.4
- '@next/swc-linux-arm64-musl': 14.0.4
- '@next/swc-linux-x64-gnu': 14.0.4
- '@next/swc-linux-x64-musl': 14.0.4
- '@next/swc-win32-arm64-msvc': 14.0.4
- '@next/swc-win32-ia32-msvc': 14.0.4
- '@next/swc-win32-x64-msvc': 14.0.4
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
- dev: false
- /node-domexception@1.0.0:
+ node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
- dev: false
- /node-fetch@2.7.0:
+ node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
@@ -2314,564 +1347,349 @@ packages:
peerDependenciesMeta:
encoding:
optional: true
- dependencies:
- whatwg-url: 5.0.0
- dev: false
- /node-fetch@3.3.2:
+ node-fetch@3.3.2:
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- data-uri-to-buffer: 4.0.1
- fetch-blob: 3.2.0
- formdata-polyfill: 4.0.10
- dev: false
- /nodemon@3.0.2:
+ nodemon@3.0.2:
resolution: {integrity: sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==}
engines: {node: '>=10'}
hasBin: true
- dependencies:
- chokidar: 3.5.3
- debug: 4.3.4(supports-color@5.5.0)
- ignore-by-default: 1.0.1
- minimatch: 3.1.2
- pstree.remy: 1.1.8
- semver: 7.5.4
- simple-update-notifier: 2.0.0
- supports-color: 5.5.0
- touch: 3.1.0
- undefsafe: 2.0.5
- dev: true
- /nopt@1.0.10:
+ nopt@1.0.10:
resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
hasBin: true
- dependencies:
- abbrev: 1.1.1
- dev: true
- /normalize-path@3.0.0:
+ normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
- dev: true
- /normalize-url@6.1.0:
+ normalize-url@6.1.0:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
engines: {node: '>=10'}
- dev: true
- /npm-run-path@2.0.2:
+ npm-run-path@2.0.2:
resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
engines: {node: '>=4'}
- dependencies:
- path-key: 2.0.1
- dev: true
- /npm-run-path@4.0.1:
+ npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
- dependencies:
- path-key: 3.1.1
- dev: true
- /object-assign@4.1.1:
+ object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- dev: false
- /on-exit-leak-free@2.1.2:
+ on-exit-leak-free@2.1.2:
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
engines: {node: '>=14.0.0'}
- dev: false
- /once@1.4.0:
+ once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
- dependencies:
- wrappy: 1.0.2
- dev: true
- /onetime@5.1.2:
+ onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
- dependencies:
- mimic-fn: 2.1.0
- dev: true
- /os-filter-obj@2.0.0:
+ os-filter-obj@2.0.0:
resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==}
engines: {node: '>=4'}
- dependencies:
- arch: 2.2.0
- dev: true
- /p-cancelable@2.1.1:
+ p-cancelable@2.1.1:
resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
engines: {node: '>=8'}
- dev: true
- /p-finally@1.0.0:
+ p-finally@1.0.0:
resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
engines: {node: '>=4'}
- dev: true
- /parent-module@1.0.1:
+ parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
- dependencies:
- callsites: 3.1.0
- dev: false
- /parse-json@5.2.0:
+ parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
- dependencies:
- '@babel/code-frame': 7.23.5
- error-ex: 1.3.2
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
- dev: false
- /path-key@2.0.1:
+ path-key@2.0.1:
resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
engines: {node: '>=4'}
- dev: true
- /path-key@3.1.1:
+ path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
- dev: true
- /path-parse@1.0.7:
+ path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- dev: false
- /path-type@4.0.0:
+ path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
- dev: false
- /peek-readable@5.0.0:
+ peek-readable@5.0.0:
resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==}
engines: {node: '>=14.16'}
- dev: true
- /picocolors@1.0.0:
+ picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
- dev: false
- /picomatch@2.3.1:
+ picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
- dev: true
- /pify@2.3.0:
+ pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
- dev: true
- /pino-abstract-transport@1.1.0:
+ pino-abstract-transport@1.1.0:
resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==}
- dependencies:
- readable-stream: 4.5.1
- split2: 4.2.0
- dev: false
- /pino-std-serializers@6.2.2:
+ pino-std-serializers@6.2.2:
resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
- dev: false
- /pino@8.17.1:
+ pino@8.17.1:
resolution: {integrity: sha512-YoN7/NJgnsJ+fkADZqjhRt96iepWBndQHeClmSBH0sQWCb8zGD74t00SK4eOtKFi/f8TUmQnfmgglEhd2kI1RQ==}
hasBin: true
- dependencies:
- atomic-sleep: 1.0.0
- fast-redact: 3.3.0
- on-exit-leak-free: 2.1.2
- pino-abstract-transport: 1.1.0
- pino-std-serializers: 6.2.2
- process-warning: 2.3.2
- quick-format-unescaped: 4.0.4
- real-require: 0.2.0
- safe-stable-stringify: 2.4.3
- sonic-boom: 3.7.0
- thread-stream: 2.4.1
- dev: false
- /postcss@8.4.31:
+ postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
- dependencies:
- nanoid: 3.3.7
- picocolors: 1.0.0
- source-map-js: 1.0.2
- dev: false
- /prisma@5.8.1:
+ prisma@5.8.1:
resolution: {integrity: sha512-N6CpjzECnUHZ5beeYpDzkt2rYpEdAeqXX2dweu6BoQaeYkNZrC/WJHM+5MO/uidFHTak8QhkPKBWck1o/4MD4A==}
engines: {node: '>=16.13'}
hasBin: true
- requiresBuild: true
- dependencies:
- '@prisma/engines': 5.8.1
- /process-warning@2.3.2:
+ process-warning@2.3.2:
resolution: {integrity: sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==}
- dev: false
- /process-warning@3.0.0:
+ process-warning@3.0.0:
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
- dev: false
- /process@0.11.10:
+ process@0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
- dev: false
- /prop-types@15.8.1:
+ prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
- dev: false
- /proxy-addr@2.0.7:
+ proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
- dependencies:
- forwarded: 0.2.0
- ipaddr.js: 1.9.1
- dev: false
- /pseudomap@1.0.2:
+ pseudomap@1.0.2:
resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
- dev: true
- /pstree.remy@1.1.8:
+ pstree.remy@1.1.8:
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
- dev: true
- /pump@3.0.0:
+ pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
- dependencies:
- end-of-stream: 1.4.4
- once: 1.4.0
- dev: true
- /punycode@2.3.1:
+ punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- dev: false
- /queue-microtask@1.2.3:
+ queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- dev: true
- /quick-format-unescaped@4.0.4:
+ quick-format-unescaped@4.0.4:
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
- dev: false
- /quick-lru@5.1.1:
+ quick-lru@5.1.1:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
- dev: true
- /react-dom@18.2.0(react@18.2.0):
+ react-dom@18.2.0:
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
react: ^18.2.0
- dependencies:
- loose-envify: 1.4.0
- react: 18.2.0
- scheduler: 0.23.0
- dev: false
- /react-is@16.13.1:
+ react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
- dev: false
- /react-is@18.2.0:
+ react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
- dev: false
- /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0):
+ react-transition-group@4.4.5:
resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
peerDependencies:
react: '>=16.6.0'
react-dom: '>=16.6.0'
- dependencies:
- '@babel/runtime': 7.23.6
- dom-helpers: 5.2.1
- loose-envify: 1.4.0
- prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
- /react@18.2.0:
+ react@18.2.0:
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
engines: {node: '>=0.10.0'}
- dependencies:
- loose-envify: 1.4.0
- dev: false
- /readable-stream@3.6.2:
+ readable-stream@3.6.2:
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
engines: {node: '>= 6'}
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
- dev: true
- /readable-stream@4.5.1:
+ readable-stream@4.5.1:
resolution: {integrity: sha512-uQjbf34vmf/asGnOHQEw07Q4llgMACQZTWWa4MmICS0IKJoHbLwKCy71H3eR99Dw5iYejc6W+pqZZEeqRtUFAw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- abort-controller: 3.0.0
- buffer: 6.0.3
- events: 3.3.0
- process: 0.11.10
- string_decoder: 1.3.0
- dev: false
- /readable-web-to-node-stream@3.0.2:
+ readable-web-to-node-stream@3.0.2:
resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==}
engines: {node: '>=8'}
- dependencies:
- readable-stream: 3.6.2
- dev: true
- /readdirp@3.6.0:
+ readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
- dependencies:
- picomatch: 2.3.1
- dev: true
- /real-require@0.2.0:
+ real-require@0.2.0:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
engines: {node: '>= 12.13.0'}
- dev: false
- /regenerator-runtime@0.14.1:
+ regenerator-runtime@0.14.1:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
- dev: false
- /require-from-string@2.0.2:
+ require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
- dev: false
- /resolve-alpn@1.2.1:
+ resolve-alpn@1.2.1:
resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
- dev: true
- /resolve-from@4.0.0:
+ resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
- dev: false
- /resolve@1.22.8:
+ resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
- dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
- dev: false
- /responselike@2.0.1:
+ responselike@2.0.1:
resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
- dependencies:
- lowercase-keys: 2.0.0
- dev: true
- /ret@0.2.2:
+ ret@0.2.2:
resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==}
engines: {node: '>=4'}
- dev: false
- /reusify@1.0.4:
+ reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- /rfdc@1.3.0:
+ rfdc@1.3.0:
resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
- dev: false
- /run-parallel@1.2.0:
+ run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- dependencies:
- queue-microtask: 1.2.3
- dev: true
- /safe-buffer@5.2.1:
+ safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- /safe-identifier@0.4.2:
+ safe-identifier@0.4.2:
resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==}
- dev: false
- /safe-regex2@2.0.0:
+ safe-regex2@2.0.0:
resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==}
- dependencies:
- ret: 0.2.2
- dev: false
- /safe-stable-stringify@2.4.3:
+ safe-stable-stringify@2.4.3:
resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
engines: {node: '>=10'}
- dev: false
- /scheduler@0.23.0:
+ scheduler@0.23.0:
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
- dependencies:
- loose-envify: 1.4.0
- dev: false
- /secure-json-parse@2.7.0:
+ secure-json-parse@2.7.0:
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
- dev: false
- /semver-regex@4.0.5:
+ semver-regex@4.0.5:
resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==}
engines: {node: '>=12'}
- dev: true
- /semver-truncate@3.0.0:
+ semver-truncate@3.0.0:
resolution: {integrity: sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==}
engines: {node: '>=12'}
- dependencies:
- semver: 7.5.4
- dev: true
- /semver@7.5.4:
+ semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
- dependencies:
- lru-cache: 6.0.0
- /set-cookie-parser@2.6.0:
+ set-cookie-parser@2.6.0:
resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
- dev: false
- /shebang-command@1.2.0:
+ shebang-command@1.2.0:
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
engines: {node: '>=0.10.0'}
- dependencies:
- shebang-regex: 1.0.0
- dev: true
- /shebang-command@2.0.0:
+ shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
- dependencies:
- shebang-regex: 3.0.0
- dev: true
- /shebang-regex@1.0.0:
+ shebang-regex@1.0.0:
resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
engines: {node: '>=0.10.0'}
- dev: true
- /shebang-regex@3.0.0:
+ shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- dev: true
- /signal-exit@3.0.7:
+ signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
- dev: true
- /simple-update-notifier@2.0.0:
+ simple-update-notifier@2.0.0:
resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
engines: {node: '>=10'}
- dependencies:
- semver: 7.5.4
- dev: true
- /slash@3.0.0:
+ slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
- dev: true
- /sonic-boom@3.7.0:
+ sonic-boom@3.7.0:
resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==}
- dependencies:
- atomic-sleep: 1.0.0
- dev: false
- /sort-keys-length@1.0.1:
+ sort-keys-length@1.0.1:
resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==}
engines: {node: '>=0.10.0'}
- dependencies:
- sort-keys: 1.1.2
- dev: true
- /sort-keys@1.1.2:
+ sort-keys@1.1.2:
resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==}
engines: {node: '>=0.10.0'}
- dependencies:
- is-plain-obj: 1.1.0
- dev: true
- /source-map-js@1.0.2:
+ source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
- dev: false
- /source-map@0.5.7:
+ source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: '>=0.10.0'}
- dev: false
- /source-map@0.7.4:
+ source-map@0.7.4:
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
engines: {node: '>= 8'}
- dev: true
- /split2@4.2.0:
+ split2@4.2.0:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'}
- dev: false
- /streamsearch@1.1.0:
+ streamsearch@1.1.0:
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
engines: {node: '>=10.0.0'}
- dev: false
- /string_decoder@1.3.0:
+ string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- dependencies:
- safe-buffer: 5.2.1
- /strip-eof@1.0.0:
+ strip-eof@1.0.0:
resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
engines: {node: '>=0.10.0'}
- dev: true
- /strip-final-newline@2.0.0:
+ strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
- dev: true
- /strip-outer@2.0.0:
+ strip-outer@2.0.0:
resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
- /strtok3@7.0.0:
+ strtok3@7.0.0:
resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==}
engines: {node: '>=14.16'}
- dependencies:
- '@tokenizer/token': 0.3.0
- peek-readable: 5.0.0
- dev: true
- /styled-jsx@5.1.1(react@18.2.0):
+ styled-jsx@5.1.1:
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
engines: {node: '>= 12.0.0'}
peerDependencies:
@@ -2883,80 +1701,52 @@ packages:
optional: true
babel-plugin-macros:
optional: true
- dependencies:
- client-only: 0.0.1
- react: 18.2.0
- dev: false
- /stylis@4.2.0:
+ stylis@4.2.0:
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
- dev: false
- /supports-color@5.5.0:
+ supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
- dependencies:
- has-flag: 3.0.0
- /supports-preserve-symlinks-flag@1.0.0:
+ supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- dev: false
- /thread-stream@2.4.1:
+ thread-stream@2.4.1:
resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==}
- dependencies:
- real-require: 0.2.0
- dev: false
- /to-fast-properties@2.0.0:
+ to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
- dev: false
- /to-regex-range@5.0.1:
+ to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
- dependencies:
- is-number: 7.0.0
- dev: true
- /toad-cache@3.4.1:
+ toad-cache@3.4.1:
resolution: {integrity: sha512-T0m3MxP3wcqW0LaV3dF1mHBU294sgYSm4FOpa5eEJaYO7PqJZBOjZEQI1y4YaKNnih1FXCEYTWDS9osCoTUefg==}
engines: {node: '>=12'}
- dev: false
- /token-types@5.0.1:
+ token-types@5.0.1:
resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==}
engines: {node: '>=14.16'}
- dependencies:
- '@tokenizer/token': 0.3.0
- ieee754: 1.2.1
- dev: true
- /touch@3.1.0:
+ touch@3.1.0:
resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==}
hasBin: true
- dependencies:
- nopt: 1.0.10
- dev: true
- /tr46@0.0.3:
+ tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- dev: false
- /trim-repeated@2.0.0:
+ trim-repeated@2.0.0:
resolution: {integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==}
engines: {node: '>=12'}
- dependencies:
- escape-string-regexp: 5.0.0
- dev: true
- /ts-mixer@6.0.3:
+ ts-mixer@6.0.3:
resolution: {integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==}
- dev: false
- /ts-node@10.9.2(@swc/core@1.3.101)(@types/node@20.10.5)(typescript@5.3.3):
+ ts-node@10.9.2:
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
peerDependencies:
@@ -2969,107 +1759,61 @@ packages:
optional: true
'@swc/wasm':
optional: true
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@swc/core': 1.3.101
- '@tsconfig/node10': 1.0.9
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 20.10.5
- acorn: 8.11.2
- acorn-walk: 8.3.1
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.3.3
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- dev: true
- /tslib@2.6.2:
+ tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
- dev: false
- /typescript@5.3.3:
+ typescript@5.3.3:
resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
engines: {node: '>=14.17'}
hasBin: true
- dev: true
- /undefsafe@2.0.5:
+ undefsafe@2.0.5:
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
- dev: true
- /undici-types@5.26.5:
+ undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- /undici@5.27.2:
+ undici@5.27.2:
resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==}
engines: {node: '>=14.0'}
- dependencies:
- '@fastify/busboy': 2.1.0
- dev: false
- /uri-js@4.4.1:
+ uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- dependencies:
- punycode: 2.3.1
- dev: false
- /util-deprecate@1.0.2:
+ util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- dev: true
- /v8-compile-cache-lib@3.0.1:
+ v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
- dev: true
- /watchpack@2.4.0:
+ watchpack@2.4.0:
resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
engines: {node: '>=10.13.0'}
- dependencies:
- glob-to-regexp: 0.4.1
- graceful-fs: 4.2.11
- dev: false
- /web-streams-polyfill@3.2.1:
+ web-streams-polyfill@3.2.1:
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
engines: {node: '>= 8'}
- dev: false
- /webidl-conversions@3.0.1:
+ webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
- dev: false
- /whatwg-url@5.0.0:
+ whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
- dependencies:
- tr46: 0.0.3
- webidl-conversions: 3.0.1
- dev: false
- /which@1.3.1:
+ which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
- dependencies:
- isexe: 2.0.0
- dev: true
- /which@2.0.2:
+ which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
- dependencies:
- isexe: 2.0.0
- dev: true
- /wrappy@1.0.2:
+ wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- dev: true
- /ws@8.14.2:
+ ws@8.14.2:
resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==}
engines: {node: '>=10.0.0'}
peerDependencies:
@@ -3080,21 +1824,1715 @@ packages:
optional: true
utf-8-validate:
optional: true
- dev: false
- /yallist@2.1.2:
+ yallist@2.1.2:
resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
- dev: true
- /yallist@4.0.0:
+ yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
- /yaml@1.10.2:
+ yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
- dev: false
- /yn@3.1.1:
+ yn@3.1.1:
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
engines: {node: '>=6'}
- dev: true
+
+snapshots:
+
+ '@babel/code-frame@7.23.5':
+ dependencies:
+ '@babel/highlight': 7.23.4
+ chalk: 2.4.2
+
+ '@babel/helper-module-imports@7.22.15':
+ dependencies:
+ '@babel/types': 7.23.6
+
+ '@babel/helper-string-parser@7.23.4': {}
+
+ '@babel/helper-validator-identifier@7.22.20': {}
+
+ '@babel/highlight@7.23.4':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.20
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+
+ '@babel/runtime@7.23.6':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@babel/types@7.23.6':
+ dependencies:
+ '@babel/helper-string-parser': 7.23.4
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
+ '@discordjs/builders@1.7.0':
+ dependencies:
+ '@discordjs/formatters': 0.3.3
+ '@discordjs/util': 1.0.2
+ '@sapphire/shapeshift': 3.9.5
+ discord-api-types: 0.37.61
+ fast-deep-equal: 3.1.3
+ ts-mixer: 6.0.3
+ tslib: 2.6.2
+
+ '@discordjs/collection@1.5.3': {}
+
+ '@discordjs/collection@2.0.0': {}
+
+ '@discordjs/formatters@0.3.3':
+ dependencies:
+ discord-api-types: 0.37.61
+
+ '@discordjs/rest@2.2.0':
+ dependencies:
+ '@discordjs/collection': 2.0.0
+ '@discordjs/util': 1.0.2
+ '@sapphire/async-queue': 1.5.1
+ '@sapphire/snowflake': 3.5.1
+ '@vladfrangu/async_event_emitter': 2.2.4
+ discord-api-types: 0.37.61
+ magic-bytes.js: 1.7.0
+ tslib: 2.6.2
+ undici: 5.27.2
+
+ '@discordjs/util@1.0.2': {}
+
+ '@discordjs/ws@1.0.2':
+ dependencies:
+ '@discordjs/collection': 2.0.0
+ '@discordjs/rest': 2.2.0
+ '@discordjs/util': 1.0.2
+ '@sapphire/async-queue': 1.5.1
+ '@types/ws': 8.5.9
+ '@vladfrangu/async_event_emitter': 2.2.4
+ discord-api-types: 0.37.61
+ tslib: 2.6.2
+ ws: 8.14.2
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@emotion/babel-plugin@11.11.0':
+ dependencies:
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/runtime': 7.23.6
+ '@emotion/hash': 0.9.1
+ '@emotion/memoize': 0.8.1
+ '@emotion/serialize': 1.1.3
+ babel-plugin-macros: 3.1.0
+ convert-source-map: 1.9.0
+ escape-string-regexp: 4.0.0
+ find-root: 1.1.0
+ source-map: 0.5.7
+ stylis: 4.2.0
+
+ '@emotion/cache@11.11.0':
+ dependencies:
+ '@emotion/memoize': 0.8.1
+ '@emotion/sheet': 1.2.2
+ '@emotion/utils': 1.2.1
+ '@emotion/weak-memoize': 0.3.1
+ stylis: 4.2.0
+
+ '@emotion/hash@0.9.1': {}
+
+ '@emotion/is-prop-valid@1.2.1':
+ dependencies:
+ '@emotion/memoize': 0.8.1
+
+ '@emotion/memoize@0.8.1': {}
+
+ '@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@emotion/babel-plugin': 11.11.0
+ '@emotion/cache': 11.11.0
+ '@emotion/serialize': 1.1.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
+ '@emotion/utils': 1.2.1
+ '@emotion/weak-memoize': 0.3.1
+ hoist-non-react-statics: 3.3.2
+ react: 18.2.0
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@emotion/serialize@1.1.3':
+ dependencies:
+ '@emotion/hash': 0.9.1
+ '@emotion/memoize': 0.8.1
+ '@emotion/unitless': 0.8.1
+ '@emotion/utils': 1.2.1
+ csstype: 3.1.3
+
+ '@emotion/sheet@1.2.2': {}
+
+ '@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@emotion/babel-plugin': 11.11.0
+ '@emotion/is-prop-valid': 1.2.1
+ '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
+ '@emotion/serialize': 1.1.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
+ '@emotion/utils': 1.2.1
+ react: 18.2.0
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@emotion/unitless@0.8.1': {}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)':
+ dependencies:
+ react: 18.2.0
+
+ '@emotion/utils@1.2.1': {}
+
+ '@emotion/weak-memoize@0.3.1': {}
+
+ '@fastify/ajv-compiler@3.5.0':
+ dependencies:
+ ajv: 8.12.0
+ ajv-formats: 2.1.1(ajv@8.12.0)
+ fast-uri: 2.3.0
+
+ '@fastify/busboy@2.1.0': {}
+
+ '@fastify/deepmerge@1.3.0': {}
+
+ '@fastify/error@3.4.1': {}
+
+ '@fastify/fast-json-stringify-compiler@4.3.0':
+ dependencies:
+ fast-json-stringify: 5.9.1
+
+ '@floating-ui/core@1.5.2':
+ dependencies:
+ '@floating-ui/utils': 0.1.6
+
+ '@floating-ui/dom@1.5.3':
+ dependencies:
+ '@floating-ui/core': 1.5.2
+ '@floating-ui/utils': 0.1.6
+
+ '@floating-ui/react-dom@2.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ '@floating-ui/dom': 1.5.3
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+
+ '@floating-ui/utils@0.1.6': {}
+
+ '@fontsource/roboto@5.0.8': {}
+
+ '@jridgewell/resolve-uri@3.1.1': {}
+
+ '@jridgewell/sourcemap-codec@1.4.15': {}
+
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ '@libsql/client@0.3.6':
+ dependencies:
+ '@libsql/hrana-client': 0.5.5
+ js-base64: 3.7.5
+ libsql: 0.1.34
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@libsql/darwin-arm64@0.1.34':
+ optional: true
+
+ '@libsql/darwin-x64@0.1.34':
+ optional: true
+
+ '@libsql/hrana-client@0.5.5':
+ dependencies:
+ '@libsql/isomorphic-fetch': 0.1.10
+ '@libsql/isomorphic-ws': 0.1.5
+ js-base64: 3.7.5
+ node-fetch: 3.3.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@libsql/isomorphic-fetch@0.1.10':
+ dependencies:
+ '@types/node-fetch': 2.6.10
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@libsql/isomorphic-ws@0.1.5':
+ dependencies:
+ '@types/ws': 8.5.9
+ ws: 8.14.2
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@libsql/linux-arm64-gnu@0.1.34':
+ optional: true
+
+ '@libsql/linux-arm64-musl@0.1.34':
+ optional: true
+
+ '@libsql/linux-x64-gnu@0.1.34':
+ optional: true
+
+ '@libsql/linux-x64-musl@0.1.34':
+ optional: true
+
+ '@libsql/win32-x64-msvc@0.1.34':
+ optional: true
+
+ '@messageformat/core@3.3.0':
+ dependencies:
+ '@messageformat/date-skeleton': 1.0.1
+ '@messageformat/number-skeleton': 1.2.0
+ '@messageformat/parser': 5.1.0
+ '@messageformat/runtime': 3.0.1
+ make-plural: 7.3.0
+ safe-identifier: 0.4.2
+
+ '@messageformat/date-skeleton@1.0.1': {}
+
+ '@messageformat/number-skeleton@1.2.0': {}
+
+ '@messageformat/parser@5.1.0':
+ dependencies:
+ moo: 0.5.2
+
+ '@messageformat/runtime@3.0.1':
+ dependencies:
+ make-plural: 7.3.0
+
+ '@mole-inc/bin-wrapper@8.0.1':
+ dependencies:
+ bin-check: 4.1.0
+ bin-version-check: 5.1.0
+ content-disposition: 0.5.4
+ ext-name: 5.0.0
+ file-type: 17.1.6
+ filenamify: 5.1.1
+ got: 11.8.6
+ os-filter-obj: 2.0.0
+
+ '@mui/base@5.0.0-beta.29(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@mui/types': 7.2.11(@types/react@18.2.45)
+ '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
+ '@popperjs/core': 2.11.8
+ clsx: 2.0.0
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@mui/core-downloads-tracker@5.15.2': {}
+
+ '@mui/icons-material@5.15.2(@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@mui/material': 5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react: 18.2.0
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@mui/material-nextjs@5.15.0(@emotion/cache@11.11.0)(@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.45)(next@14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ '@mui/material': 5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react: 18.2.0
+ optionalDependencies:
+ '@emotion/cache': 11.11.0
+ '@types/react': 18.2.45
+
+ '@mui/material@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@mui/base': 5.0.0-beta.29(@types/react@18.2.45)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@mui/core-downloads-tracker': 5.15.2
+ '@mui/system': 5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)
+ '@mui/types': 7.2.11(@types/react@18.2.45)
+ '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
+ '@types/react-transition-group': 4.4.10
+ clsx: 2.0.0
+ csstype: 3.1.3
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-is: 18.2.0
+ react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ optionalDependencies:
+ '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)
+ '@types/react': 18.2.45
+
+ '@mui/private-theming@5.15.2(@types/react@18.2.45)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
+ prop-types: 15.8.1
+ react: 18.2.0
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@mui/styled-engine@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@emotion/cache': 11.11.0
+ csstype: 3.1.3
+ prop-types: 15.8.1
+ react: 18.2.0
+ optionalDependencies:
+ '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)
+
+ '@mui/system@5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@mui/private-theming': 5.15.2(@types/react@18.2.45)(react@18.2.0)
+ '@mui/styled-engine': 5.15.2(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0))(react@18.2.0)
+ '@mui/types': 7.2.11(@types/react@18.2.45)
+ '@mui/utils': 5.15.2(@types/react@18.2.45)(react@18.2.0)
+ clsx: 2.0.0
+ csstype: 3.1.3
+ prop-types: 15.8.1
+ react: 18.2.0
+ optionalDependencies:
+ '@emotion/react': 11.11.3(@types/react@18.2.45)(react@18.2.0)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.2.45)(react@18.2.0))(@types/react@18.2.45)(react@18.2.0)
+ '@types/react': 18.2.45
+
+ '@mui/types@7.2.11(@types/react@18.2.45)':
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@mui/utils@5.15.2(@types/react@18.2.45)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/prop-types': 15.7.11
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-is: 18.2.0
+ optionalDependencies:
+ '@types/react': 18.2.45
+
+ '@neon-rs/load@0.0.4': {}
+
+ '@next/env@14.0.4': {}
+
+ '@next/swc-darwin-arm64@14.0.4':
+ optional: true
+
+ '@next/swc-darwin-x64@14.0.4':
+ optional: true
+
+ '@next/swc-linux-arm64-gnu@14.0.4':
+ optional: true
+
+ '@next/swc-linux-arm64-musl@14.0.4':
+ optional: true
+
+ '@next/swc-linux-x64-gnu@14.0.4':
+ optional: true
+
+ '@next/swc-linux-x64-musl@14.0.4':
+ optional: true
+
+ '@next/swc-win32-arm64-msvc@14.0.4':
+ optional: true
+
+ '@next/swc-win32-ia32-msvc@14.0.4':
+ optional: true
+
+ '@next/swc-win32-x64-msvc@14.0.4':
+ optional: true
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.16.0
+
+ '@popperjs/core@2.11.8': {}
+
+ '@prisma/adapter-libsql@5.7.1(@libsql/client@0.3.6)':
+ dependencies:
+ '@libsql/client': 0.3.6
+ '@prisma/driver-adapter-utils': 5.7.1
+ async-mutex: 0.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@prisma/client@5.8.1(prisma@5.8.1)':
+ optionalDependencies:
+ prisma: 5.8.1
+
+ '@prisma/debug@5.8.1': {}
+
+ '@prisma/driver-adapter-utils@5.7.1':
+ dependencies:
+ debug: 4.3.4(supports-color@5.5.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@prisma/engines-version@5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2': {}
+
+ '@prisma/engines@5.8.1':
+ dependencies:
+ '@prisma/debug': 5.8.1
+ '@prisma/engines-version': 5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2
+ '@prisma/fetch-engine': 5.8.1
+ '@prisma/get-platform': 5.8.1
+
+ '@prisma/fetch-engine@5.8.1':
+ dependencies:
+ '@prisma/debug': 5.8.1
+ '@prisma/engines-version': 5.8.1-1.78caf6feeaed953168c64e15a249c3e9a033ebe2
+ '@prisma/get-platform': 5.8.1
+
+ '@prisma/get-platform@5.8.1':
+ dependencies:
+ '@prisma/debug': 5.8.1
+
+ '@sapphire/async-queue@1.5.1': {}
+
+ '@sapphire/shapeshift@3.9.5':
+ dependencies:
+ fast-deep-equal: 3.1.3
+ lodash: 4.17.21
+
+ '@sapphire/snowflake@3.5.1': {}
+
+ '@sindresorhus/is@4.6.0': {}
+
+ '@swc/cli@0.1.63(@swc/core@1.3.101(@swc/helpers@0.5.2))(chokidar@3.5.3)':
+ dependencies:
+ '@mole-inc/bin-wrapper': 8.0.1
+ '@swc/core': 1.3.101(@swc/helpers@0.5.2)
+ commander: 7.2.0
+ fast-glob: 3.3.2
+ semver: 7.5.4
+ slash: 3.0.0
+ source-map: 0.7.4
+ optionalDependencies:
+ chokidar: 3.5.3
+
+ '@swc/core-darwin-arm64@1.3.101':
+ optional: true
+
+ '@swc/core-darwin-x64@1.3.101':
+ optional: true
+
+ '@swc/core-linux-arm-gnueabihf@1.3.101':
+ optional: true
+
+ '@swc/core-linux-arm64-gnu@1.3.101':
+ optional: true
+
+ '@swc/core-linux-arm64-musl@1.3.101':
+ optional: true
+
+ '@swc/core-linux-x64-gnu@1.3.101':
+ optional: true
+
+ '@swc/core-linux-x64-musl@1.3.101':
+ optional: true
+
+ '@swc/core-win32-arm64-msvc@1.3.101':
+ optional: true
+
+ '@swc/core-win32-ia32-msvc@1.3.101':
+ optional: true
+
+ '@swc/core-win32-x64-msvc@1.3.101':
+ optional: true
+
+ '@swc/core@1.3.101(@swc/helpers@0.5.2)':
+ dependencies:
+ '@swc/counter': 0.1.2
+ '@swc/types': 0.1.5
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.3.101
+ '@swc/core-darwin-x64': 1.3.101
+ '@swc/core-linux-arm-gnueabihf': 1.3.101
+ '@swc/core-linux-arm64-gnu': 1.3.101
+ '@swc/core-linux-arm64-musl': 1.3.101
+ '@swc/core-linux-x64-gnu': 1.3.101
+ '@swc/core-linux-x64-musl': 1.3.101
+ '@swc/core-win32-arm64-msvc': 1.3.101
+ '@swc/core-win32-ia32-msvc': 1.3.101
+ '@swc/core-win32-x64-msvc': 1.3.101
+ '@swc/helpers': 0.5.2
+
+ '@swc/counter@0.1.2': {}
+
+ '@swc/helpers@0.5.2':
+ dependencies:
+ tslib: 2.6.2
+
+ '@swc/types@0.1.5': {}
+
+ '@szmarczak/http-timer@4.0.6':
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ '@thunder04/supermap@3.0.3': {}
+
+ '@tokenizer/token@0.3.0': {}
+
+ '@tsconfig/node10@1.0.9': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
+ '@types/cacheable-request@6.0.3':
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.10.5
+ '@types/responselike': 1.0.3
+
+ '@types/centra@2.2.3':
+ dependencies:
+ '@types/node': 20.10.5
+
+ '@types/http-cache-semantics@4.0.4': {}
+
+ '@types/i18n@0.13.10': {}
+
+ '@types/keyv@3.1.4':
+ dependencies:
+ '@types/node': 20.10.5
+
+ '@types/node-fetch@2.6.10':
+ dependencies:
+ '@types/node': 20.10.5
+ form-data: 4.0.0
+
+ '@types/node@20.10.5':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/parse-json@4.0.2': {}
+
+ '@types/prop-types@15.7.11': {}
+
+ '@types/react-dom@18.2.18':
+ dependencies:
+ '@types/react': 18.2.45
+
+ '@types/react-transition-group@4.4.10':
+ dependencies:
+ '@types/react': 18.2.45
+
+ '@types/react@18.2.45':
+ dependencies:
+ '@types/prop-types': 15.7.11
+ '@types/scheduler': 0.16.8
+ csstype: 3.1.3
+
+ '@types/responselike@1.0.3':
+ dependencies:
+ '@types/node': 20.10.5
+
+ '@types/scheduler@0.16.8': {}
+
+ '@types/ws@8.5.9':
+ dependencies:
+ '@types/node': 20.10.5
+
+ '@vladfrangu/async_event_emitter@2.2.4': {}
+
+ '@zeldafan0225/ai_horde@5.0.10':
+ dependencies:
+ '@thunder04/supermap': 3.0.3
+
+ abbrev@1.1.1: {}
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ abstract-logging@2.0.1: {}
+
+ acorn-walk@8.3.1: {}
+
+ acorn@8.11.2: {}
+
+ ajv-formats@2.1.1(ajv@8.12.0):
+ optionalDependencies:
+ ajv: 8.12.0
+
+ ajv@8.12.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
+ ansi-styles@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ arch@2.2.0: {}
+
+ archy@1.0.0: {}
+
+ arg@4.1.3: {}
+
+ async-mutex@0.4.0:
+ dependencies:
+ tslib: 2.6.2
+
+ asynckit@0.4.0: {}
+
+ atomic-sleep@1.0.0: {}
+
+ avvio@8.2.1:
+ dependencies:
+ archy: 1.0.0
+ debug: 4.3.4(supports-color@5.5.0)
+ fastq: 1.16.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-macros@3.1.0:
+ dependencies:
+ '@babel/runtime': 7.23.6
+ cosmiconfig: 7.1.0
+ resolve: 1.22.8
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ bin-check@4.1.0:
+ dependencies:
+ execa: 0.7.0
+ executable: 4.1.1
+
+ bin-version-check@5.1.0:
+ dependencies:
+ bin-version: 6.0.0
+ semver: 7.5.4
+ semver-truncate: 3.0.0
+
+ bin-version@6.0.0:
+ dependencies:
+ execa: 5.1.1
+ find-versions: 5.1.0
+
+ binary-extensions@2.2.0: {}
+
+ boolean@3.2.0: {}
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ braces@3.0.2:
+ dependencies:
+ fill-range: 7.0.1
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ busboy@1.6.0:
+ dependencies:
+ streamsearch: 1.1.0
+
+ cacheable-lookup@5.0.4: {}
+
+ cacheable-request@7.0.4:
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001571: {}
+
+ chalk@2.4.2:
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ client-only@0.0.1: {}
+
+ clone-response@1.0.3:
+ dependencies:
+ mimic-response: 1.0.1
+
+ clsx@2.0.0: {}
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
+ color-name@1.1.3: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@7.2.0: {}
+
+ concat-map@0.0.1: {}
+
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ convert-source-map@1.9.0: {}
+
+ cookie@0.5.0: {}
+
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+
+ create-require@1.1.1: {}
+
+ cross-env@7.0.3:
+ dependencies:
+ cross-spawn: 7.0.3
+
+ cross-spawn@5.1.0:
+ dependencies:
+ lru-cache: 4.1.5
+ shebang-command: 1.2.0
+ which: 1.3.1
+
+ cross-spawn@7.0.3:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ csstype@3.1.3: {}
+
+ data-uri-to-buffer@4.0.1: {}
+
+ debug@4.3.4(supports-color@5.5.0):
+ dependencies:
+ ms: 2.1.2
+ optionalDependencies:
+ supports-color: 5.5.0
+
+ decompress-response@6.0.0:
+ dependencies:
+ mimic-response: 3.1.0
+
+ defer-to-connect@2.0.1: {}
+
+ delayed-stream@1.0.0: {}
+
+ detect-libc@2.0.2: {}
+
+ diff@4.0.2: {}
+
+ discord-api-types@0.37.61: {}
+
+ discord.js@14.15.0-dev.1703981435-136c66c21:
+ dependencies:
+ '@discordjs/builders': 1.7.0
+ '@discordjs/collection': 1.5.3
+ '@discordjs/formatters': 0.3.3
+ '@discordjs/rest': 2.2.0
+ '@discordjs/util': 1.0.2
+ '@discordjs/ws': 1.0.2
+ '@sapphire/snowflake': 3.5.1
+ '@types/ws': 8.5.9
+ discord-api-types: 0.37.61
+ fast-deep-equal: 3.1.3
+ lodash.snakecase: 4.1.1
+ tslib: 2.6.2
+ undici: 5.27.2
+ ws: 8.14.2
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ dom-helpers@5.2.1:
+ dependencies:
+ '@babel/runtime': 7.23.6
+ csstype: 3.1.3
+
+ dotenv@16.3.1: {}
+
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
+ error-ex@1.3.2:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ escape-string-regexp@5.0.0: {}
+
+ event-target-shim@5.0.1: {}
+
+ events@3.3.0: {}
+
+ execa@0.7.0:
+ dependencies:
+ cross-spawn: 5.1.0
+ get-stream: 3.0.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ executable@4.1.1:
+ dependencies:
+ pify: 2.3.0
+
+ ext-list@2.2.2:
+ dependencies:
+ mime-db: 1.52.0
+
+ ext-name@5.0.0:
+ dependencies:
+ ext-list: 2.2.2
+ sort-keys-length: 1.0.1
+
+ fast-content-type-parse@1.1.0: {}
+
+ fast-decode-uri-component@1.0.1: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-glob@3.3.2:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+
+ fast-json-stringify@5.9.1:
+ dependencies:
+ '@fastify/deepmerge': 1.3.0
+ ajv: 8.12.0
+ ajv-formats: 2.1.1(ajv@8.12.0)
+ fast-deep-equal: 3.1.3
+ fast-uri: 2.3.0
+ json-schema-ref-resolver: 1.0.1
+ rfdc: 1.3.0
+
+ fast-printf@1.6.9:
+ dependencies:
+ boolean: 3.2.0
+
+ fast-querystring@1.1.2:
+ dependencies:
+ fast-decode-uri-component: 1.0.1
+
+ fast-redact@3.3.0: {}
+
+ fast-uri@2.3.0: {}
+
+ fastify@4.25.1:
+ dependencies:
+ '@fastify/ajv-compiler': 3.5.0
+ '@fastify/error': 3.4.1
+ '@fastify/fast-json-stringify-compiler': 4.3.0
+ abstract-logging: 2.0.1
+ avvio: 8.2.1
+ fast-content-type-parse: 1.1.0
+ fast-json-stringify: 5.9.1
+ find-my-way: 7.7.0
+ light-my-request: 5.11.0
+ pino: 8.17.1
+ process-warning: 3.0.0
+ proxy-addr: 2.0.7
+ rfdc: 1.3.0
+ secure-json-parse: 2.7.0
+ semver: 7.5.4
+ toad-cache: 3.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ fastq@1.16.0:
+ dependencies:
+ reusify: 1.0.4
+
+ fetch-blob@3.2.0:
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 3.2.1
+
+ file-type@17.1.6:
+ dependencies:
+ readable-web-to-node-stream: 3.0.2
+ strtok3: 7.0.0
+ token-types: 5.0.1
+
+ filename-reserved-regex@3.0.0: {}
+
+ filenamify@5.1.1:
+ dependencies:
+ filename-reserved-regex: 3.0.0
+ strip-outer: 2.0.0
+ trim-repeated: 2.0.0
+
+ fill-range@7.0.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-my-way@7.7.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-querystring: 1.1.2
+ safe-regex2: 2.0.0
+
+ find-root@1.1.0: {}
+
+ find-versions@5.1.0:
+ dependencies:
+ semver-regex: 4.0.5
+
+ form-data@4.0.0:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ formdata-polyfill@4.0.10:
+ dependencies:
+ fetch-blob: 3.2.0
+
+ forwarded@0.2.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ get-stream@3.0.0: {}
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.0
+
+ get-stream@6.0.1: {}
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-to-regexp@0.4.1: {}
+
+ got@11.8.6:
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
+
+ graceful-fs@4.2.11: {}
+
+ has-flag@3.0.0: {}
+
+ hasown@2.0.0:
+ dependencies:
+ function-bind: 1.1.2
+
+ hoist-non-react-statics@3.3.2:
+ dependencies:
+ react-is: 16.13.1
+
+ http-cache-semantics@4.1.1: {}
+
+ http2-wrapper@1.0.3:
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+
+ human-signals@2.1.0: {}
+
+ i18n@0.15.1:
+ dependencies:
+ '@messageformat/core': 3.3.0
+ debug: 4.3.4(supports-color@5.5.0)
+ fast-printf: 1.6.9
+ make-plural: 7.3.0
+ math-interval-parser: 2.0.1
+ mustache: 4.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ ieee754@1.2.1: {}
+
+ ignore-by-default@1.0.1: {}
+
+ import-fresh@3.3.0:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ inherits@2.0.4: {}
+
+ ipaddr.js@1.9.1: {}
+
+ is-arrayish@0.2.1: {}
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.2.0
+
+ is-core-module@2.13.1:
+ dependencies:
+ hasown: 2.0.0
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ is-plain-obj@1.1.0: {}
+
+ is-stream@1.1.0: {}
+
+ is-stream@2.0.1: {}
+
+ isexe@2.0.0: {}
+
+ js-base64@3.7.5: {}
+
+ js-tokens@4.0.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-ref-resolver@1.0.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+
+ json-schema-traverse@1.0.0: {}
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ libsql@0.1.34:
+ dependencies:
+ '@neon-rs/load': 0.0.4
+ detect-libc: 2.0.2
+ optionalDependencies:
+ '@libsql/darwin-arm64': 0.1.34
+ '@libsql/darwin-x64': 0.1.34
+ '@libsql/linux-arm64-gnu': 0.1.34
+ '@libsql/linux-arm64-musl': 0.1.34
+ '@libsql/linux-x64-gnu': 0.1.34
+ '@libsql/linux-x64-musl': 0.1.34
+ '@libsql/win32-x64-msvc': 0.1.34
+
+ light-my-request@5.11.0:
+ dependencies:
+ cookie: 0.5.0
+ process-warning: 2.3.2
+ set-cookie-parser: 2.6.0
+
+ lines-and-columns@1.2.4: {}
+
+ lodash.snakecase@4.1.1: {}
+
+ lodash@4.17.21: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lowercase-keys@2.0.0: {}
+
+ lru-cache@4.1.5:
+ dependencies:
+ pseudomap: 1.0.2
+ yallist: 2.1.2
+
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
+ magic-bytes.js@1.7.0: {}
+
+ make-error@1.3.6: {}
+
+ make-plural@7.3.0: {}
+
+ math-interval-parser@2.0.1: {}
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ micromatch@4.0.5:
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mimic-fn@2.1.0: {}
+
+ mimic-response@1.0.1: {}
+
+ mimic-response@3.1.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ moo@0.5.2: {}
+
+ ms@2.1.2: {}
+
+ mustache@4.2.0: {}
+
+ nanoid@3.3.7: {}
+
+ next@14.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ dependencies:
+ '@next/env': 14.0.4
+ '@swc/helpers': 0.5.2
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001571
+ graceful-fs: 4.2.11
+ postcss: 8.4.31
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ styled-jsx: 5.1.1(react@18.2.0)
+ watchpack: 2.4.0
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 14.0.4
+ '@next/swc-darwin-x64': 14.0.4
+ '@next/swc-linux-arm64-gnu': 14.0.4
+ '@next/swc-linux-arm64-musl': 14.0.4
+ '@next/swc-linux-x64-gnu': 14.0.4
+ '@next/swc-linux-x64-musl': 14.0.4
+ '@next/swc-win32-arm64-msvc': 14.0.4
+ '@next/swc-win32-ia32-msvc': 14.0.4
+ '@next/swc-win32-x64-msvc': 14.0.4
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+
+ node-domexception@1.0.0: {}
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-fetch@3.3.2:
+ dependencies:
+ data-uri-to-buffer: 4.0.1
+ fetch-blob: 3.2.0
+ formdata-polyfill: 4.0.10
+
+ nodemon@3.0.2:
+ dependencies:
+ chokidar: 3.5.3
+ debug: 4.3.4(supports-color@5.5.0)
+ ignore-by-default: 1.0.1
+ minimatch: 3.1.2
+ pstree.remy: 1.1.8
+ semver: 7.5.4
+ simple-update-notifier: 2.0.0
+ supports-color: 5.5.0
+ touch: 3.1.0
+ undefsafe: 2.0.5
+
+ nopt@1.0.10:
+ dependencies:
+ abbrev: 1.1.1
+
+ normalize-path@3.0.0: {}
+
+ normalize-url@6.1.0: {}
+
+ npm-run-path@2.0.2:
+ dependencies:
+ path-key: 2.0.1
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ object-assign@4.1.1: {}
+
+ on-exit-leak-free@2.1.2: {}
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ os-filter-obj@2.0.0:
+ dependencies:
+ arch: 2.2.0
+
+ p-cancelable@2.1.1: {}
+
+ p-finally@1.0.0: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ path-key@2.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-type@4.0.0: {}
+
+ peek-readable@5.0.0: {}
+
+ picocolors@1.0.0: {}
+
+ picomatch@2.3.1: {}
+
+ pify@2.3.0: {}
+
+ pino-abstract-transport@1.1.0:
+ dependencies:
+ readable-stream: 4.5.1
+ split2: 4.2.0
+
+ pino-std-serializers@6.2.2: {}
+
+ pino@8.17.1:
+ dependencies:
+ atomic-sleep: 1.0.0
+ fast-redact: 3.3.0
+ on-exit-leak-free: 2.1.2
+ pino-abstract-transport: 1.1.0
+ pino-std-serializers: 6.2.2
+ process-warning: 2.3.2
+ quick-format-unescaped: 4.0.4
+ real-require: 0.2.0
+ safe-stable-stringify: 2.4.3
+ sonic-boom: 3.7.0
+ thread-stream: 2.4.1
+
+ postcss@8.4.31:
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+
+ prisma@5.8.1:
+ dependencies:
+ '@prisma/engines': 5.8.1
+
+ process-warning@2.3.2: {}
+
+ process-warning@3.0.0: {}
+
+ process@0.11.10: {}
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ proxy-addr@2.0.7:
+ dependencies:
+ forwarded: 0.2.0
+ ipaddr.js: 1.9.1
+
+ pseudomap@1.0.2: {}
+
+ pstree.remy@1.1.8: {}
+
+ pump@3.0.0:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
+ punycode@2.3.1: {}
+
+ queue-microtask@1.2.3: {}
+
+ quick-format-unescaped@4.0.4: {}
+
+ quick-lru@5.1.1: {}
+
+ react-dom@18.2.0(react@18.2.0):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.2.0
+ scheduler: 0.23.0
+
+ react-is@16.13.1: {}
+
+ react-is@18.2.0: {}
+
+ react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ dependencies:
+ '@babel/runtime': 7.23.6
+ dom-helpers: 5.2.1
+ loose-envify: 1.4.0
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+
+ react@18.2.0:
+ dependencies:
+ loose-envify: 1.4.0
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readable-stream@4.5.1:
+ dependencies:
+ abort-controller: 3.0.0
+ buffer: 6.0.3
+ events: 3.3.0
+ process: 0.11.10
+ string_decoder: 1.3.0
+
+ readable-web-to-node-stream@3.0.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ real-require@0.2.0: {}
+
+ regenerator-runtime@0.14.1: {}
+
+ require-from-string@2.0.2: {}
+
+ resolve-alpn@1.2.1: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve@1.22.8:
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ responselike@2.0.1:
+ dependencies:
+ lowercase-keys: 2.0.0
+
+ ret@0.2.2: {}
+
+ reusify@1.0.4: {}
+
+ rfdc@1.3.0: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-buffer@5.2.1: {}
+
+ safe-identifier@0.4.2: {}
+
+ safe-regex2@2.0.0:
+ dependencies:
+ ret: 0.2.2
+
+ safe-stable-stringify@2.4.3: {}
+
+ scheduler@0.23.0:
+ dependencies:
+ loose-envify: 1.4.0
+
+ secure-json-parse@2.7.0: {}
+
+ semver-regex@4.0.5: {}
+
+ semver-truncate@3.0.0:
+ dependencies:
+ semver: 7.5.4
+
+ semver@7.5.4:
+ dependencies:
+ lru-cache: 6.0.0
+
+ set-cookie-parser@2.6.0: {}
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@1.0.0: {}
+
+ shebang-regex@3.0.0: {}
+
+ signal-exit@3.0.7: {}
+
+ simple-update-notifier@2.0.0:
+ dependencies:
+ semver: 7.5.4
+
+ slash@3.0.0: {}
+
+ sonic-boom@3.7.0:
+ dependencies:
+ atomic-sleep: 1.0.0
+
+ sort-keys-length@1.0.1:
+ dependencies:
+ sort-keys: 1.1.2
+
+ sort-keys@1.1.2:
+ dependencies:
+ is-plain-obj: 1.1.0
+
+ source-map-js@1.0.2: {}
+
+ source-map@0.5.7: {}
+
+ source-map@0.7.4: {}
+
+ split2@4.2.0: {}
+
+ streamsearch@1.1.0: {}
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-eof@1.0.0: {}
+
+ strip-final-newline@2.0.0: {}
+
+ strip-outer@2.0.0: {}
+
+ strtok3@7.0.0:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ peek-readable: 5.0.0
+
+ styled-jsx@5.1.1(react@18.2.0):
+ dependencies:
+ client-only: 0.0.1
+ react: 18.2.0
+
+ stylis@4.2.0: {}
+
+ supports-color@5.5.0:
+ dependencies:
+ has-flag: 3.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ thread-stream@2.4.1:
+ dependencies:
+ real-require: 0.2.0
+
+ to-fast-properties@2.0.0: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toad-cache@3.4.1: {}
+
+ token-types@5.0.1:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ ieee754: 1.2.1
+
+ touch@3.1.0:
+ dependencies:
+ nopt: 1.0.10
+
+ tr46@0.0.3: {}
+
+ trim-repeated@2.0.0:
+ dependencies:
+ escape-string-regexp: 5.0.0
+
+ ts-mixer@6.0.3: {}
+
+ ts-node@10.9.2(@swc/core@1.3.101(@swc/helpers@0.5.2))(@types/node@20.10.5)(typescript@5.3.3):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.9
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.10.5
+ acorn: 8.11.2
+ acorn-walk: 8.3.1
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.3.3
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+ optionalDependencies:
+ '@swc/core': 1.3.101(@swc/helpers@0.5.2)
+
+ tslib@2.6.2: {}
+
+ typescript@5.3.3: {}
+
+ undefsafe@2.0.5: {}
+
+ undici-types@5.26.5: {}
+
+ undici@5.27.2:
+ dependencies:
+ '@fastify/busboy': 2.1.0
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ util-deprecate@1.0.2: {}
+
+ v8-compile-cache-lib@3.0.1: {}
+
+ watchpack@2.4.0:
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+
+ web-streams-polyfill@3.2.1: {}
+
+ webidl-conversions@3.0.1: {}
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ wrappy@1.0.2: {}
+
+ ws@8.14.2: {}
+
+ yallist@2.1.2: {}
+
+ yallist@4.0.0: {}
+
+ yaml@1.10.2: {}
+
+ yn@3.1.1: {}
diff --git a/prisma/local.db b/prisma/local.db
new file mode 100644
index 0000000..06f36ba
Binary files /dev/null and b/prisma/local.db differ
diff --git a/src/bot/commands/ai.ts b/src/bot/commands/ai.ts
index 7a98eb6..5c3286f 100644
--- a/src/bot/commands/ai.ts
+++ b/src/bot/commands/ai.ts
@@ -21,6 +21,7 @@ import Give from "./ai/give";
import { bt } from "../../main";
import Config from "./ai/config";
+
const commandData = new SlashCommandBuilder()
.setName("ia")
.setDescription("Commandes IA")
@@ -740,7 +741,7 @@ export class IaCommand extends CommandsBase {
super(client, commandData);
}
- async run(interaction: CommandInteraction) {
+ async run(interaction: CommandInteraction) {
let options = interaction.options;
if (options instanceof CommandInteractionOptionResolver) {
let subcommand = options.getSubcommandGroup() ?? options.getSubcommand();
@@ -768,6 +769,7 @@ export class IaCommand extends CommandsBase {
break;
case "give":
await Give(this, interaction);
+ break;
case "interogate":
await Interogate(this, interaction);
break;
diff --git a/src/bot/commands/ai/advanced/imagine.ts b/src/bot/commands/ai/advanced/imagine.ts
index 9d82f54..a85a904 100644
--- a/src/bot/commands/ai/advanced/imagine.ts
+++ b/src/bot/commands/ai/advanced/imagine.ts
@@ -79,7 +79,7 @@ export default async function AdvancedImagine(
options.getString("sampler_name") ||
ModelGenerationInputStableSamplers.k_dpm_adaptive;
let n =
- (options.getNumber("n") || 4) > 10 ? 10 : options.getNumber("n") || 4;
+ (options.getNumber("n") || 10) > 10 ? 10 : options.getNumber("n") || 10;
let loras = options.getString("loras") || null;
if (image) {
let textChannel =
@@ -217,7 +217,7 @@ export default async function AdvancedImagine(
processed +=
bt.__(
{
- phrase: "(Position in the queue: %s -",
+ phrase: "(Position in the queue: %s )",
locale: interaction.locale,
},
String(stat.queue_position),
diff --git a/src/bot/commands/ai/imagine.ts b/src/bot/commands/ai/imagine.ts
deleted file mode 100644
index f8d85cb..0000000
--- a/src/bot/commands/ai/imagine.ts
+++ /dev/null
@@ -1,456 +0,0 @@
-import type CommandsBase from '../baseCommands'
-import {
- type APIActionRowComponent,
- type APIButtonComponent,
- type AttachmentPayload,
- ButtonBuilder,
- ButtonStyle,
- Colors,
- type CommandInteraction,
- CommandInteractionOptionResolver,
- EmbedBuilder,
- type MessageEditOptions,
- MessageFlags,
- TextChannel,
- codeBlock
-} from 'discord.js'
-import {
- type ImageGenerationInput,
- ModelGenerationInputPostProcessingTypes,
- ModelGenerationInputStableSamplers
-} from '@zeldafan0225/ai_horde'
-import { bt } from '../../../main'
-import { getUser } from '../../functions/database'
-export default async function Imagine(
- command: CommandsBase,
- interaction: CommandInteraction
-) {
- const userDatabase = await getUser(interaction.user.id, command.client.database)
- let defaultToken = '0000000000'
- if (userDatabase && userDatabase.horde_token) {
- defaultToken = command.client.decryptString(userDatabase.horde_token)
- }
- const timeout = command.client.timeouts.get(interaction.commandName)
- if (!timeout) {
- interaction.reply({
- content: bt.__({
- phrase: 'An error occured, please try again later',
- locale: interaction.locale
- }),
- flags: MessageFlags.Ephemeral
- })
- return
- }
- if (timeout.has(interaction.user.id)) {
- interaction.reply({
- content: bt.__({
- phrase:
- 'You must wait the current generation before using this command again',
- locale: interaction.locale
- }),
- flags: MessageFlags.Ephemeral
- })
- return
- }
- const ai = command.client.aiHorde
- const config = userDatabase.horde_config ? userDatabase.horde_config : null
-
- // get the option value
- const msgToSend = await interaction.reply({
- "content": bt.__({
- phrase: 'Generation started..',
- locale: interaction.locale
- }),
- });
- const modelMoreDemanded = await ai.getModels()
- const options = interaction.options
- if (options instanceof CommandInteractionOptionResolver) {
- const image = options.getString('prompt') || ''
- // the model the more demanded is the one with the most count of Workers
- const model =
- options.getString('model') || config?.model ||
- modelMoreDemanded.sort((a, b) => {
- return b.count - a.count
- })[0].name
- const negative_prompt =
- options.getString('negative_prompt') ||
- ''
- // first let's check if userDatabase is null, if it is, we set the default value to false
- const nsfw = options.getBoolean('nsfw') || config?.nsfw || false
- let lorasListFromDatabase = Array(5).fill(null).map((_, index) => {
- return config?.loras[index]?.loras_id || null
- })
- // we now need to check for each Loras if it's set or not, if it's not, we set it to null and if it is, we set it to the value
- const loras = options.getString('loras') ||
- lorasListFromDatabase[0] || null
- const loras2 = options.getString('loras_2') ||
- lorasListFromDatabase[1] ||
- null
- const loras3 = options.getString('loras_3') ||
- lorasListFromDatabase[2] ||
- null
- const loras4 = options.getString('loras_4') ||
- lorasListFromDatabase[3] ||
- null
- const loras5 = options.getString('loras_5') ||
- lorasListFromDatabase[4] ||
- null
- const preprompt = options.getBoolean('preprompt') || config?.preprompt_loras || false
- if (image) {
- const textChannel =
- interaction.channel instanceof TextChannel ? interaction.channel : null
- let nsfwchannel = true
- if (textChannel) {
- nsfwchannel = textChannel.nsfw
- }
- command.client.timeouts
- .get(interaction.commandName)
- ?.set(interaction.user.id, true)
-
- const predefinedPrompt = config?.definedPrompt || '{p}###{ng}'
- const prompt: ImageGenerationInput = {
- prompt: predefinedPrompt.replace('{p}', image).replace('{ng}', negative_prompt),
- params: {
- sampler_name: config?.sampler as ImageGenerationInput['params']['sampler_name'] || ModelGenerationInputStableSamplers.k_euler,
- cfg_scale: config?.cfg_scale || 7,
- height: config?.height || 512,
- width: config?.width || 512,
- post_processing: [
- config?.upscaller as ImageGenerationInput['params']['post_processing'][0] || ModelGenerationInputPostProcessingTypes.RealESRGAN_x4plus
- ],
- clip_skip: config?.clip_skip || 3,
- facefixer_strength: 1,
- steps: config?.steps || 25,
- n: config?.gen_numbers || 4
- },
- censor_nsfw: nsfwchannel ? (!nsfw) : true,
- models: [model],
- nsfw: nsfwchannel ? (!!nsfw) : false,
- shared: true
- }
-
- const lorasList = [loras, loras2, loras3, loras4, loras5].filter((loras) => {
- return loras !== null
- })
- if (lorasList.length > 0) {
- // if preprompt is selected, we get a random model, and a random image from this model to use as prompt
- if (preprompt) {
- try {
- const lorasDatas = await command.client.getLorasModel(lorasList[0])
- const randomModelVersion =
- lorasDatas.modelVersions[
- Math.floor(Math.random() * lorasDatas.modelVersions.length)
- ]
- const randomMetaImage =
- randomModelVersion.images[
- Math.floor(Math.random() * randomModelVersion.images.length)
- ].meta
- prompt.params.steps = randomMetaImage.steps
- prompt.params.cfg_scale = randomMetaImage.cfgScale
- prompt.prompt =
- randomMetaImage.prompt +
- image.substring(0, 1024) +
- '### ' +
- randomMetaImage.negativePrompt
- } catch (e) {
- console.log('Loras was not found')
- }
- }
-
- prompt.params.loras = lorasList.map((loras, index) => {
- return {
- name: loras,
- model: index,
- clip: index + 1,
- inject_trigger: 'any'
- }
- })
- }
- if (model.toLowerCase().includes('sdxl')) {
- prompt.params.hires_fix = false
- } else {
- prompt.params.hires_fix = true
- }
- ai.postAsyncImageGenerate(prompt, {
- token: defaultToken
- })
- .then(async (result) => {
- const id = result.id
- let finished = 0
- const collector = await msgToSend.createMessageComponentCollector({
- filter: (componentInteraction) => {
- return (
- componentInteraction.customId === 'cancel' &&
- componentInteraction.user.id === interaction.user.id
- )
- },
- max: 1
- })
- const interval: NodeJS.Timeout = setInterval(() => {
- if (id) {
- ai.getImageGenerationCheck(id, {
- force: true
- }).then((stat) => {
- if (stat.is_possible) {
- if (stat.done) {
- clearInterval(interval)
- collector.stop('done')
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- ai.getImageGenerationStatus(id).then((status) => {
- console.log({
- generations: status.generations.map((generation) => {
- return {
- url: generation.img,
- workerName: generation.worker_name,
- workerId: generation.worker_id,
- model: generation.model
- }
- }),
- prompt: JSON.stringify(prompt),
- guildName: interaction.guild?.name || 'DM'
- })
- const generations = status.generations
- if (generations && generations.length > 0) {
- msgToSend.edit({
- content: '',
- files: generations.map((generation, i) => {
- return {
- attachment: generation.img,
- name: 'image' + i + '.webp'
- }
- }),
- components: []
- })
- }
- })
- } else {
- const components: Array> =
- [
- {
- type: 1,
- components: [
- new ButtonBuilder()
- .setCustomId('cancel')
- .setLabel(
- bt.__({
- phrase: 'Cancel',
- locale: interaction.locale
- })
- )
- .setStyle(ButtonStyle.Danger)
- .setEmoji('🚫')
- .setDisabled(false)
- .toJSON()
- ]
- }
- ]
- // attachment
- const wait_time = stat.wait_time || 1
- const files: AttachmentPayload[] = []
- let processed =
- bt.__({
- phrase: 'Generation started..',
- locale: interaction.locale
- }) + '\n'
- if (stat.queue_position && stat.queue_position > 0) {
- processed +=
- bt.__(
- {
- phrase: '(Position in the queue: %s -',
- locale: interaction.locale
- },
- String(stat.queue_position)
- ) + '\n'
- }
- if (stat.waiting && stat.waiting > 0) {
- processed +=
- bt.__(
- {
- phrase: 'Waiting : %s',
- locale: interaction.locale
- },
- String(stat.waiting)
- ) + '\n'
- }
- if (stat.finished && stat.finished > 0) {
- processed +=
- bt.__(
- {
- phrase: 'Finished : %s',
- locale: interaction.locale
- },
- String(stat.finished)
- ) + '\n'
- }
- if (stat.processing && stat.processing > 0) {
- processed +=
- bt.__(
- {
- phrase: 'Processing : %s',
- locale: interaction.locale
- },
- String(stat.processing)
- ) + '\n'
- processed += bt.__(
- {
- phrase: '(Estimated waiting time: )',
- locale: interaction.locale
- },
- String(
- parseInt(
- ((Date.now() + wait_time * 1000) / 1000).toString()
- )
- )
- ) + '\n'
- }
- if (stat.kudos && stat.kudos > 0) {
- processed += bt.__(
- {
- phrase: 'Kudos used: %s',
- locale: interaction.locale
- },
- String(stat.kudos)
- )
- }
- const message: MessageEditOptions = {
- content: processed,
- components
- }
- if (stat.finished && stat.finished > finished) {
- finished = stat.finished
- ai.getImageGenerationStatus(id).then((status) => {
- if (
- status.generations &&
- status.generations.length > 0
- ) {
- status.generations.forEach((generation, i) => {
- files.push({
- attachment: generation.img,
- name: 'image' + i + '.webp'
- })
- })
- }
- if (files.length > 0) {
- message.files = files
- }
- msgToSend.edit(message).catch((e) => {
- clearInterval(interval)
- collector.stop('cancel')
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- command.client.aiHorde.deleteImageGenerationRequest(
- id
- )
- })
- })
- } else {
- msgToSend.edit(message).catch((e) => {
- clearInterval(interval)
- collector.stop('cancel')
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- command.client.aiHorde.deleteImageGenerationRequest(id)
- })
- }
- }
- } else {
- clearInterval(interval)
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- interaction
- .editReply({
- content: bt.__({
- phrase: 'Request impossible, model not available',
- locale: interaction.locale
- }),
- components: []
- })
- .catch((e) => {
- clearInterval(interval)
- collector.stop('cancel')
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- command.client.aiHorde.deleteImageGenerationRequest(id)
- })
- }
- })
- }
- }, 5000)
-
- collector.on('collect', (componentInteraction) => {
- collector.stop('cancel')
- clearInterval(interval)
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- componentInteraction.update({
- content: bt.__({
- phrase: 'Request canceled',
- locale: interaction.locale
- }),
- components: []
- })
- command.client.aiHorde.deleteImageGenerationRequest(id)
- })
- })
- .catch((err) => {
- if (command.client.application.id === '1100859965616427068') {
- command.client.users.fetch('243117191774470146').then((user) => {
- user.send({
- embeds: [
- new EmbedBuilder()
- .setTimestamp(new Date())
- .setDescription(codeBlock('json', JSON.stringify(err)))
- .setTitle("Erreur lors de la génération d'une image")
- .setColor(Colors.Red)
- .addFields([
- {
- name: 'Utilisateur',
- value: `${interaction.user.tag} (${interaction.user.id})`
- },
- {
- name: 'Commande',
- value: `${interaction.commandName}`
- },
- {
- name: 'Options',
- value: codeBlock('json', JSON.stringify(options))
- }
- ])
- .toJSON()
- ]
- })
- })
- }
- command.client.timeouts
- .get(interaction.commandName)
- ?.delete(interaction.user.id)
- if (interaction.deferred) {
- msgToSend.edit({
- content: bt.__({
- phrase:
- 'An error occured, content too long or too complex, or request too unethical to be processed.',
- locale: interaction.locale
- }),
- components: []
- })
- } else {
- msgToSend.edit({
- content: bt.__({
- phrase:
- 'An error occured, content too long or too complex, or request too unethical to be processed.',
- locale: interaction.locale
- }),
- components: []
- })
- }
- })
- }
- }
-}
diff --git a/src/bot/commands/aiinfo.ts b/src/bot/commands/aiinfo.ts
new file mode 100644
index 0000000..444f0bc
--- /dev/null
+++ b/src/bot/commands/aiinfo.ts
@@ -0,0 +1,62 @@
+import { CommandInteraction, SlashCommandBuilder, EmbedBuilder } from "discord.js";
+import https from "https"; // Module natif de Node.js
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const commandData = new SlashCommandBuilder()
+ .setName("aiinfo")
+ .setDescription("AI performance information");
+
+export class AIInfoCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction): Promise {
+ await interaction.deferReply(); // Indique que le bot traite la commande
+
+ // Fonction pour effectuer la requête HTTPS
+ const fetchAPI = (url: string): Promise =>
+ new Promise((resolve, reject) => {
+ https.get(url, (res) => {
+ let data = "";
+
+ res.on("data", (chunk) => {
+ data += chunk;
+ });
+
+ res.on("end", () => {
+ try {
+ resolve(JSON.parse(data));
+ } catch (error) {
+ reject(new Error("Failed to parse JSON"));
+ }
+ });
+ }).on("error", (err) => {
+ reject(err);
+ });
+ });
+
+ try {
+ const data = await fetchAPI("https://stablehorde.net/api/v2/status/performance");
+
+ const embed = new EmbedBuilder()
+ .setTitle("AI Performance Information")
+ .setColor(0x00ff00) // Couleur verte
+ .addFields(
+ { name: "Queued Requests", value: data.queued_requests.toString(), inline: true },
+ { name: "Number of active Image workers", value: data.worker_count.toString(), inline: true },
+ { name: "Number of active Text Workers", value: data.text_worker_count.toString(), inline: true }
+ )
+ .setFooter({ text: "Data provided by Stable Horde API" })
+ .setTimestamp();
+
+ await interaction.editReply({ embeds: [embed] });
+ } catch (error) {
+ console.error("Error fetching AI info:", error);
+ await interaction.editReply({
+ content: "Unable to fetch AI information. Please try again later.",
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/bot/commands/animate.ts b/src/bot/commands/animate.ts
new file mode 100644
index 0000000..84ff857
--- /dev/null
+++ b/src/bot/commands/animate.ts
@@ -0,0 +1,231 @@
+// -----------------------------------------------------------------------------
+// animate.ts — /ia animate (v2.6)
+// -----------------------------------------------------------------------------
+// • Diaporama GIF/MP4 + musique YouTube (optionnelle, sans coupure audio)
+// • Barre de progression 0-100 %, ETA, charge CPU
+// • yt-dlp : SABR, fallback android_music
+// • Audio étendu par silence (apad) et vidéo coupée à la fin du diaporama (-shortest)
+// • Dépendances : ffmpeg, yt-dlp ≥ 2024-xx-xx, sharp, Node ≥ 18
+// -----------------------------------------------------------------------------
+
+import {
+ AttachmentBuilder,
+ CommandInteraction,
+ CommandInteractionOptionResolver,
+ SlashCommandBuilder,
+} from "discord.js";
+import fs from "fs";
+import os from "os";
+import path from "path";
+import { promisify } from "util";
+import { spawn, exec } from "child_process";
+import sharp from "sharp";
+
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const execAsync = promisify(exec);
+const MAX_IMAGES = 12; // image1 … image12
+const BAR_LEN = 22;
+
+/* -------------------------------------------------------------------------- */
+/* Slash-command — toutes les options obligatoires AVANT les facultatives */
+/* -------------------------------------------------------------------------- */
+const commandData = new SlashCommandBuilder()
+ .setName("animate")
+ .setDescription("Crée un diaporama GIF/MP4 (+ musique YouTube facultative)")
+ // deux images minimales, required = true
+ .addAttachmentOption((o) =>
+ o.setName("image1").setDescription("Image #1").setRequired(true),
+ )
+ .addAttachmentOption((o) =>
+ o.setName("image2").setDescription("Image #2").setRequired(true),
+ );
+
+// images 3-12 facultatives
+for (let i = 3; i <= MAX_IMAGES; i++) {
+ commandData.addAttachmentOption((o) =>
+ o.setName(`image${i}`).setDescription(`Image #${i}`).setRequired(false),
+ );
+}
+
+// autres options facultatives
+commandData
+ .addIntegerOption((o) =>
+ o.setName("duration").setDescription("Durée par image (1-4 s)").setMinValue(1).setMaxValue(4),
+ )
+ .addStringOption((o) =>
+ o
+ .setName("format")
+ .setDescription("Format de sortie")
+ .addChoices({ name: "GIF", value: "gif" }, { name: "MP4", value: "mp4" }),
+ )
+ .addStringOption((o) =>
+ o.setName("youtube").setDescription("URL YouTube pour la musique (MP4)"),
+ )
+ .addIntegerOption((o) =>
+ o.setName("audio_offset").setDescription("Début musique (s)").setMinValue(0),
+ );
+
+/* -------------------------------------------------------------------------- */
+/* Helpers */
+/* -------------------------------------------------------------------------- */
+const bar = (p: number) =>
+ "▮".repeat(Math.round((p / 100) * BAR_LEN)) +
+ "▯".repeat(BAR_LEN - Math.round((p / 100) * BAR_LEN));
+const cpu = () => os.loadavg()[0].toFixed(2);
+
+const spawnP = (cmd: string, args: string[], onErr?: (s: string) => void) =>
+ new Promise((ok, fail) => {
+ const p = spawn(cmd, args);
+ p.stderr.on("data", (d) => onErr?.(d.toString()));
+ p.on("error", fail);
+ p.on("close", (c) => (c === 0 ? ok() : fail(new Error(`${cmd} exited ${c}`))));
+ });
+
+async function ytDlpTry(url: string, out: string, extractor: string, prog: (p: number) => void) {
+ let last = 2; // progression 2-10 %
+ const args = [
+ "--quiet",
+ "--no-playlist",
+ "--extractor-args",
+ extractor,
+ "-f",
+ "bestaudio",
+ "-o",
+ out,
+ "-x",
+ "--audio-format",
+ "m4a",
+ url,
+ ];
+ await spawnP("yt-dlp", args, (l) => {
+ const m = /([0-9.]+)%/.exec(l);
+ if (m) {
+ const pct = 2 + Math.min(8, (parseFloat(m[1]) * 8) / 100); // 2→10%
+ if (pct > last) {
+ last = pct;
+ prog(pct);
+ }
+ }
+ });
+}
+
+/* -------------------------------------------------------------------------- */
+/* Command class */
+/* -------------------------------------------------------------------------- */
+export class animateCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+ const o = interaction.options as CommandInteractionOptionResolver;
+ const dur = o.getInteger("duration") ?? 2;
+ const fmt = (o.getString("format") ?? "gif") as "gif" | "mp4";
+ const yt = o.getString("youtube");
+ const offset = o.getInteger("audio_offset") ?? 0;
+
+ if (yt && fmt === "gif")
+ return interaction.reply("🎵 La musique n’est disponible qu’en MP4.");
+
+ const imgs = Array.from({ length: MAX_IMAGES })
+ .map((_, i) => o.getAttachment(`image${i + 1}`))
+ .filter(Boolean);
+ if (imgs.length < 2)
+ return interaction.reply("📷 Il faut au moins 2 images.");
+
+ await interaction.deferReply();
+ const upd = (p: number, stage: string) =>
+ interaction.editReply(`Progress ${p}%\n\`${bar(p)}\`\n${stage}\nCPU : ${cpu()}`);
+
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), "ia-anim-"));
+ let audioPath = "";
+
+ try {
+ /* 1) Téléchargement musique : 2-10 % */
+ if (yt) {
+ audioPath = path.join(tmp, "audio.m4a");
+ upd(1, "Audio : démarrage…");
+ try {
+ await ytDlpTry(yt, audioPath, "youtube:sabr=yes,player_client=web", (p) => upd(p, "Audio : SABR"));
+ } catch {
+ await ytDlpTry(yt, audioPath, "youtube:player_client=android_music", (p) => upd(p, "Audio : fallback"));
+ }
+ }
+
+ /* 2) Normalisation images : 10-30 % */
+ let i = 0;
+ for (const img of imgs) {
+ const r = await fetch((img as any).url);
+ const b = Buffer.from(await r.arrayBuffer());
+ await sharp(b).png().toFile(path.join(tmp, `f_${i.toString().padStart(3, "0")}.png`));
+ i++;
+ upd(10 + Math.round((i / imgs.length) * 20), `Images ${i}/${imgs.length}`);
+ }
+
+ /* 3) concat list */
+ const frames = fs.readdirSync(tmp).filter((f) => f.startsWith("f_"));
+ const concatLines = frames.flatMap((f) => [`file '${path.join(tmp, f)}'`, `duration ${dur}`]);
+ concatLines.push(`file '${path.join(tmp, frames.at(-1)!) }'`);
+ const concatPath = path.join(tmp, "frames.txt");
+ fs.writeFileSync(concatPath, concatLines.join("\n"));
+
+ /* 4) Encodage vidéo : 30-90 % */
+ const raw = path.join(tmp, `video.${fmt}`);
+ const ff = [
+ "-y", "-hide_banner", "-loglevel", "error",
+ "-f", "concat", "-safe", "0", "-i", concatPath,
+ "-vsync", "vfr", "-progress", "pipe:1",
+ ];
+ if (fmt === "gif")
+ ff.push("-pix_fmt", "rgb24", raw);
+ else
+ ff.push("-r", `${Math.round(30 / dur)}`, "-c:v", "libx264", "-pix_fmt", "yuv420p", "-movflags", "+faststart", raw);
+
+ await new Promise((ok, fail) => {
+ const p = spawn("ffmpeg", ff);
+ p.stdout.on("data", (d) => {
+ const m = /out_time_ms=(\\d+)/.exec(d.toString());
+ if (m) {
+ const pct = 30 + Math.min(60, Math.round((parseInt(m[1]) / (imgs.length * dur * 1e3)) * 60));
+ upd(pct, "Vidéo");
+ }
+ });
+ p.on("error", fail);
+ p.on("close", (c) => (c ? fail(new Error("ffmpeg fail")) : ok()));
+ });
+
+ /* 5) Fusion audio + vidéo : 90-100 % */
+ let fin = raw;
+ if (fmt === "mp4" && audioPath) {
+ upd(95, "Fusion audio/vidéo…");
+ const out = path.join(tmp, "output.mp4");
+ const merge = [
+ "-y", "-hide_banner", "-loglevel", "error",
+ "-i", raw,
+ ...(offset > 0 ? ["-ss", `${offset}`] : []),
+ "-i", audioPath,
+ "-c:v", "copy",
+ "-af", "apad", // ajoute silence si musique plus courte
+ "-c:a", "aac",
+ "-shortest", // coupe la vidéo à la fin du diaporama
+ out,
+ ];
+ await execAsync(`ffmpeg ${merge.map((s) => (s.includes(" ") ? `"${s}"` : s)).join(" ")}`);
+ fin = out;
+ }
+
+ /* 6) Envoi */
+ upd(100, "Terminé");
+ await interaction.editReply({
+ content: "✅ Fini !",
+ files: [new AttachmentBuilder(fs.readFileSync(fin), { name: path.basename(fin) })],
+ });
+ } catch (e: any) {
+ await interaction.editReply(`❌ Erreur : ${e.message}`);
+ } finally {
+ fs.rmSync(tmp, { recursive: true, force: true });
+ }
+ }
+}
diff --git a/src/bot/commands/avatar.ts b/src/bot/commands/avatar.ts
new file mode 100644
index 0000000..d059916
--- /dev/null
+++ b/src/bot/commands/avatar.ts
@@ -0,0 +1,33 @@
+import { CommandInteraction, SlashCommandBuilder } from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+import { bt } from "../../main";
+
+// Commande pour afficher l'avatar de l'utilisateur
+const commandData = new SlashCommandBuilder()
+ .setName("avatar")
+ .setDescription("Show your avatar");
+
+export class AvatarCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+ // Si l'utilisateur n'est pas blacklisté, continuer avec la commande
+ const i = await interaction.deferReply();
+
+ // Affiche l'avatar de l'utilisateur qui a exécuté la commande
+ i.edit({
+ content: bt.__({
+ phrase: "Your avatar :",
+ locale: interaction.locale,
+ }),
+ embeds: [{
+ image: {
+ url: interaction.user.displayAvatarURL(),
+ },
+ }],
+ });
+ }
+}
diff --git a/src/bot/commands/botstats.ts b/src/bot/commands/botstats.ts
new file mode 100644
index 0000000..0b88036
--- /dev/null
+++ b/src/bot/commands/botstats.ts
@@ -0,0 +1,47 @@
+import {
+ CommandInteraction,
+ SlashCommandBuilder,
+ EmbedBuilder,
+} from "discord.js";
+import os from "os";
+import process from "process";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const commandData = new SlashCommandBuilder()
+ .setName("botstats")
+ .setDescription("Show bot system and performance stats.");
+
+export class BotStatsCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+ await interaction.deferReply();
+
+ const memoryUsage = process.memoryUsage();
+ const uptime = process.uptime();
+
+ const embed = new EmbedBuilder()
+ .setTitle("📈 Bot Stats")
+ .setColor("Green")
+ .addFields([
+ { name: "🧠 RAM", value: `${(memoryUsage.rss / 1024 / 1024).toFixed(2)} MB`, inline: true },
+ { name: "🕒 Uptime", value: formatUptime(uptime), inline: true },
+ { name: "💻 Platform", value: `${os.type()} ${os.release()} (${os.arch()})`, inline: false },
+ { name: "🧰 Node.js", value: process.version, inline: true },
+ { name: "📦 Discord.js", value: `v${require("discord.js").version}`, inline: true },
+ ])
+ .setTimestamp();
+
+ return interaction.editReply({ embeds: [embed] });
+ }
+}
+
+function formatUptime(seconds: number): string {
+ const d = Math.floor(seconds / 86400);
+ const h = Math.floor((seconds % 86400) / 3600);
+ const m = Math.floor((seconds % 3600) / 60);
+ return `${d}d ${h}h ${m}m`;
+}
diff --git a/src/bot/commands/help.ts b/src/bot/commands/help.ts
new file mode 100644
index 0000000..be124e4
--- /dev/null
+++ b/src/bot/commands/help.ts
@@ -0,0 +1,61 @@
+import { CommandInteraction, SlashCommandBuilder } from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const commandData = new SlashCommandBuilder()
+ .setName("help")
+ .setDescription("List all available commands and their descriptions");
+
+export class HelpCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+
+ // Liste des commandes et descriptions
+ const commandsList = [
+ {
+ name: "/luck",
+ description: "Check your luck with a random percentage.",
+ },
+ {
+ name: "/help",
+ description: "List all available commands and their descriptions.",
+ },
+ {
+ name: "/worker",
+ description: "Show AI Horde Worker Information",
+ },
+ {
+ name: "/ping",
+ description: "Shows the bot's ping on the discord api",
+ },
+ {
+ name: "/vote",
+ description: "vote",
+ },
+ {
+ name: "/avatar",
+ description: "Show your avatar",
+ },
+ {
+ name: "/ai help",
+ description: "Show IA help",
+ },
+ // Ajoutez d'autres commandes ici
+ ];
+
+ // Création du message avec les commandes disponibles
+ const commandDescriptions = commandsList
+ .map(
+ (cmd) => `**${cmd.name}**: ${cmd.description}`
+ )
+ .join("\n");
+
+ // Répondre à l'interaction avec la liste des commandes
+ await interaction.reply({
+ content: `Here are all the available commands:\n\n${commandDescriptions}`,
+ });
+ }
+}
diff --git a/src/bot/commands/luck.ts b/src/bot/commands/luck.ts
new file mode 100644
index 0000000..f60620d
--- /dev/null
+++ b/src/bot/commands/luck.ts
@@ -0,0 +1,35 @@
+import {
+ ApplicationCommandOptionChoiceData,
+ AutocompleteInteraction,
+ CommandInteraction,
+ CommandInteractionOptionResolver,
+ MessageFlags,
+ SlashCommandBuilder,
+} from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+import { bt } from "../../main";
+
+const commandData = new SlashCommandBuilder()
+ .setName("luck")
+ .setDescription("your luck");
+
+export class luckCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+
+ // Si l'utilisateur n'est pas blacklisté, continuer avec la commande
+ let i = await interaction.deferReply();
+ const randomPercentage = Math.floor(Math.random() * 101);
+
+ i.edit({
+ content: bt.__({
+ phrase: "Your luck is %s%",
+ locale: interaction.locale,
+ }, randomPercentage.toString()),
+ });
+ }
+}
diff --git a/src/bot/commands/ping.ts b/src/bot/commands/ping.ts
new file mode 100644
index 0000000..1460748
--- /dev/null
+++ b/src/bot/commands/ping.ts
@@ -0,0 +1,27 @@
+import { CommandInteraction, SlashCommandBuilder } from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+// Définition des données de la commande
+const commandData = new SlashCommandBuilder()
+ .setName("ping")
+ .setDescription("Shows the bot's ping on the discord api");
+
+export class PingCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON()); // Appel du constructeur parent
+ }
+
+ // Méthode qui sera exécutée lorsque la commande sera lancée
+ async run(interaction: CommandInteraction) {
+
+ let i = await interaction.deferReply(); // Délai pour attendre la réponse
+
+ // Mesure du temps de réponse du bot
+ const ping = this.client.ws.ping;
+
+ i.edit({
+ content: `The bot's ping to the Discord API is ${ping} ms`,
+ });
+ }
+}
diff --git a/src/bot/commands/serverinfo.ts b/src/bot/commands/serverinfo.ts
new file mode 100644
index 0000000..c72b981
--- /dev/null
+++ b/src/bot/commands/serverinfo.ts
@@ -0,0 +1,30 @@
+import { CommandInteraction, SlashCommandBuilder } from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const commandData = new SlashCommandBuilder()
+ .setName("serverinfo")
+ .setDescription("Displays information about the server");
+
+export class ServerInfoCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+
+ const guild = interaction.guild;
+ const memberCount = guild?.memberCount;
+ const createdAt = guild?.createdAt.toDateString();
+ const owner = await guild?.fetchOwner();
+
+ await interaction.reply({
+ content: `Server Info:
+ - Name: ${guild?.name}
+ - ID: ${guild?.id}
+ - Created on: ${createdAt}
+ - Owner: ${owner?.user.tag}
+ - Members: ${memberCount}`,
+ });
+ }
+}
diff --git a/src/bot/commands/shard.ts b/src/bot/commands/shard.ts
new file mode 100644
index 0000000..3c5b8e3
--- /dev/null
+++ b/src/bot/commands/shard.ts
@@ -0,0 +1,84 @@
+import {
+ CommandInteraction,
+ EmbedBuilder,
+ SlashCommandBuilder,
+} from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+import { bt } from "../../main";
+
+// Définir la commande
+const commandData = new SlashCommandBuilder()
+ .setName("shardinfsrv")
+ .setDescription("Get detailed shard information");
+
+// Classe pour la commande
+export class ShardInfoCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+ let i = await interaction.deferReply();
+
+ // Vérifier si le bot utilise le sharding
+ if (interaction.client.shard) {
+ const shardId = interaction.client.shard.ids[0]; // Utiliser ids[0] pour obtenir l'ID du shard actuel
+
+ // Récupérer des informations sur tous les shards
+ const shardInfo = await interaction.client.shard!.broadcastEval(client => {
+ return {
+ id: client.shard.ids[0],
+ guilds: client.guilds.cache.size,
+ members: client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0),
+ uptime: client.uptime || 0,
+ };
+ });
+
+ const shardCount = shardInfo.length; // Nombre total de shards
+ const currentShard = shardInfo.find(info => info.id === shardId); // Trouver les informations pour le shard actuel
+
+ if (!currentShard) {
+ await i.edit("Error retrieving shard information.");
+ return;
+ }
+
+ // Calculer l'uptime au format lisible (en secondes)
+ const uptimeInSeconds = Math.floor(currentShard.uptime / 1000);
+ const uptime = `${Math.floor(uptimeInSeconds / 3600)}h ${Math.floor((uptimeInSeconds % 3600) / 60)}m ${uptimeInSeconds % 60}s`;
+
+ // Création de l'embed avec toutes les informations
+ const embed = new EmbedBuilder()
+ .setTitle("Shard Information")
+ .setColor("Blue")
+ .setDescription(`Your is shard **${shardId}**`)
+ .addFields([
+ {
+ name: "Servers on this Shard",
+ value: `${currentShard.guilds} servers`,
+ inline: true,
+ },
+ {
+ name: "Users on this Shard",
+ value: `${currentShard.members} users`,
+ inline: true,
+ },
+ {
+ name: "Total Shards",
+ value: `${shardCount} shards online`,
+ inline: true,
+ },
+ {
+ name: "Shard Uptime",
+ value: `${uptime}`,
+ inline: true,
+ },
+ ]);
+
+ // Répondre avec l'embed
+ await i.edit({ embeds: [embed] });
+ } else {
+ await i.edit("The bot is not using sharding.");
+ }
+ }
+}
diff --git a/src/bot/commands/shardstats.ts b/src/bot/commands/shardstats.ts
new file mode 100644
index 0000000..2a3aa37
--- /dev/null
+++ b/src/bot/commands/shardstats.ts
@@ -0,0 +1,54 @@
+import {
+ CommandInteraction,
+ SlashCommandBuilder,
+ EmbedBuilder,
+} from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const commandData = new SlashCommandBuilder()
+ .setName("shardstats")
+ .setDescription("Displays statistics for all bot shards.");
+
+export class ShardStatsCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+ await interaction.deferReply();
+
+ const shardData = await interaction.client.shard?.broadcastEval(client => ({
+ shardId: client.shard?.ids[0] ?? 0,
+ guildCount: client.guilds.cache.size,
+ memberCount: client.guilds.cache.reduce((acc, g) => acc + g.memberCount, 0),
+ ping: client.ws.ping
+ }));
+
+ if (!shardData) {
+ return interaction.editReply({ content: "⚠️ Failed to fetch shard stats." });
+ }
+
+ const totalServers = shardData.reduce((acc, s) => acc + s.guildCount, 0);
+ const totalMembers = shardData.reduce((acc, s) => acc + s.memberCount, 0);
+
+ const embed = new EmbedBuilder()
+ .setTitle("📊 Shard Statistics")
+ .setColor("Blue")
+ .addFields(
+ ...shardData.map((s) => ({
+ name: `Shard ${s.shardId}`,
+ value: `🧩 Servers: **${s.guildCount}**\n👥 Members: **${s.memberCount}**\n📡 Ping: **${s.ping}ms**`,
+ inline: true,
+ })),
+ {
+ name: "🌍 Total",
+ value: `**Servers:** ${totalServers}\n**Members:** ${totalMembers}`,
+ inline: false,
+ }
+ )
+ .setTimestamp();
+
+ return interaction.editReply({ embeds: [embed] });
+ }
+}
diff --git a/src/bot/commands/uptime.ts b/src/bot/commands/uptime.ts
new file mode 100644
index 0000000..54ce79f
--- /dev/null
+++ b/src/bot/commands/uptime.ts
@@ -0,0 +1,30 @@
+import {
+ CommandInteraction,
+ SlashCommandBuilder,
+} from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+const commandData = new SlashCommandBuilder()
+ .setName("uptime")
+ .setDescription("Show how long the bot has been online.");
+
+export class UptimeCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction) {
+ const uptime = process.uptime();
+ const formatted = formatUptime(uptime);
+ await interaction.reply(`🕒 The bot has been online for **${formatted}**.`);
+ }
+}
+
+function formatUptime(seconds: number): string {
+ const d = Math.floor(seconds / 86400);
+ const h = Math.floor((seconds % 86400) / 3600);
+ const m = Math.floor((seconds % 3600) / 60);
+ const s = Math.floor(seconds % 60);
+ return `${d}d ${h}h ${m}m ${s}s`;
+}
diff --git a/src/bot/commands/vote.ts b/src/bot/commands/vote.ts
new file mode 100644
index 0000000..930ca4d
--- /dev/null
+++ b/src/bot/commands/vote.ts
@@ -0,0 +1,32 @@
+import {
+ ApplicationCommandOptionChoiceData,
+ AutocompleteInteraction,
+ CommandInteraction,
+ CommandInteractionOptionResolver,
+ MessageFlags,
+ SlashCommandBuilder,
+} from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+import { bt } from "../../main";
+
+const commandData = new SlashCommandBuilder()
+ .setName("vote")
+ .setDescription("vote")
+
+export class GayCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ async run(interaction: CommandInteraction){
+ let i = await interaction.deferReply();
+ const randomPercentage = Math.floor(Math.random() * 101);
+ i.edit({
+ content: bt.__({
+ phrase: "https://top.gg/fr/bot/1190014646351036577",
+ locale: interaction.locale,
+ }, randomPercentage.toString()),
+ });
+ }
+}
\ No newline at end of file
diff --git a/src/bot/commands/worker.ts b/src/bot/commands/worker.ts
new file mode 100644
index 0000000..14d22c8
--- /dev/null
+++ b/src/bot/commands/worker.ts
@@ -0,0 +1,141 @@
+import {
+ SlashCommandBuilder,
+ CommandInteraction,
+ CommandInteractionOptionResolver,
+ AutocompleteInteraction,
+ EmbedBuilder,
+ Colors,
+} from "discord.js";
+import CommandsBase from "./baseCommands";
+import Bot from "../index";
+
+// Définition du nouveau slash command avec un champ de recherche optionnel
+const commandData = new SlashCommandBuilder()
+ .setName("worker")
+ .setDescription("Show AI Horde Worker Information")
+ .addStringOption((option) =>
+ option
+ .setName("query")
+ .setDescription("Name or ID of the worker to search for")
+ .setRequired(true) // Rendre l'option 'query' obligatoire
+ .setAutocomplete(true) // Activer l'autocomplétion
+ );
+
+export class workerCommand extends CommandsBase {
+ constructor(client: Bot) {
+ super(client, commandData.toJSON());
+ }
+
+ // Exécution de la commande lorsqu'elle est appelée par l'utilisateur
+ async run(interaction: CommandInteraction) {
+ let i = await interaction.deferReply(); // Réponse différée pour éviter un délai de traitement long
+
+ try {
+ // Récupération des données depuis l'API
+ const response = await fetch("https://stablehorde.net/api/v2/workers");
+ if (!response.ok) throw new Error("Error retrieving API data.");
+
+ const workers: {
+ name: string;
+ id: string;
+ requests_fulfilled: number;
+ kudos_rewards: number;
+ performance: string;
+ uptime: number;
+ maintenance_mode: boolean;
+ nsfw: boolean;
+ trusted: boolean;
+ models: string[] | null;
+ team: { name: string | null };
+ }[] = await response.json();
+
+ // Récupérer l'option 'query' de l'utilisateur (si elle existe)
+ const query = (interaction.options as CommandInteractionOptionResolver).getString("query");
+
+ if (query) {
+ // Si une recherche spécifique est effectuée
+ const worker = workers.find(
+ (w) =>
+ w.name?.toLowerCase() === query?.toLowerCase() ||
+ w.id?.toLowerCase() === query?.toLowerCase()
+ );
+
+ if (worker) {
+ // Si un worker correspondant est trouvé, afficher ses détails
+ const embed = new EmbedBuilder()
+ .setTitle(`Worker Details : ${worker.name}`)
+ .setColor(Colors.Blue)
+ .setDescription(
+ `**Name :** ${worker.name}\n` +
+ `**ID :** ${worker.id}\n` +
+ `**Team :** ${worker.team?.name ?? "null"}\n` +
+ `**Performance :** ${worker.performance}\n` +
+ `**NSFW :** ${worker.nsfw ? "Yes" : "No"}\n` +
+ `**Maintenance :** ${worker.maintenance_mode ? "On" : "Off"}\n` +
+ `**Trusted :** ${worker.trusted ? "Yes" : "No"}\n` +
+ `**Models :** ${worker.models ? worker.models.join(", ") : "Aucun"}\n` +
+ `**Requests Completed :** ${worker.requests_fulfilled}\n` +
+ `**Kudos :** ${worker.kudos_rewards}\n` +
+ `**Uptime :** ${Math.floor(worker.uptime / 3600)}h ${Math.floor(
+ (worker.uptime % 3600) / 60
+ )}m`
+ );
+
+ await i.edit({ embeds: [embed] });
+ } else {
+ // Si aucun worker n'est trouvé, afficher un message d'erreur
+ await i.edit({ content: "No workers found for this search." });
+ }
+ } else {
+ // Si aucune recherche spécifique n'est effectuée, afficher une liste des 10 premiers workers
+ const workerList = workers
+ .slice(0, 10) // Limiter la liste des workers à 10 pour éviter un message trop long
+ .map((w) =>
+ `**${w.name}** (ID: \`${w.id}\`, Models : ${w.models ? w.models.join(", ") : "Aucun"})`
+ )
+ .join("\n");
+
+ const embed = new EmbedBuilder()
+ .setTitle("Liste des Workers")
+ .setColor(Colors.Green)
+ .setDescription(workerList || "No workers available.");
+
+ await i.edit({ embeds: [embed] });
+ }
+ } catch (error) {
+ console.error(error);
+ await i.edit({
+ content: "An error occurred while retrieving worker data.",
+ });
+ }
+ }
+
+ // Fonction d'autocomplétion pour les suggestions de recherche
+ async autocomplete(interaction: AutocompleteInteraction) {
+ try {
+ // Récupérer les données des workers
+ const response = await fetch("https://stablehorde.net/api/v2/workers");
+ if (!response.ok) throw new Error("Error retrieving API data.");
+
+ const workers: { name: string; id: string }[] = await response.json();
+
+ // Filtrer les suggestions en fonction de l'entrée de l'utilisateur
+ const focusedValue = interaction.options.getFocused();
+ const suggestions = workers
+ .filter((worker) =>
+ worker.name.toLowerCase().includes(focusedValue.toLowerCase()) ||
+ worker.id.toLowerCase().includes(focusedValue.toLowerCase())
+ )
+ .slice(0, 25) // Limite de 25 suggestions pour Discord
+ .map((worker) => ({
+ name: worker.name,
+ value: worker.id,
+ }));
+
+ await interaction.respond(suggestions);
+ } catch (error) {
+ console.error("Error during autocomplete : ", error);
+ await interaction.respond([]); // Répondre avec aucune suggestion en cas d'erreur
+ }
+ }
+}
diff --git a/src/bot/index.ts b/src/bot/index.ts
index 00e87bb..f8f68a5 100644
--- a/src/bot/index.ts
+++ b/src/bot/index.ts
@@ -22,7 +22,7 @@ export default class Bot extends Client {
cache: {
generations_check: 1000 * 30,
},
- client_agent: "Ketsuna;Discordbot;1.0.1;",
+ client_agent: "Morgane AI ;Discordbot;1.0.1;",
default_token: "0000000000",
});
commands: Map = new Map();
@@ -46,10 +46,10 @@ export default class Bot extends Client {
{
name: isDev
? "in development"
- : process.env.DISCORD_STATUS_NAME || "Ketsuna is the Best Bot",
+ : process.env.DISCORD_STATUS_NAME || "Morgane AI is the Best Bot",
type: ActivityType.Playing,
state:
- process.env.DISCORD_STATUS_STATE || "Ketsuna is the Best Bot",
+ process.env.DISCORD_STATUS_STATE || "Morgane AI is the Best Bot",
},
],
},
@@ -66,25 +66,25 @@ export default class Bot extends Client {
this.on(Events.ClientReady, () => {
console.log("Bot is ready!");
this.loadCommands();
- if (this.application.id === "1100859965616427068") {
+ if (this.application.id === "1190014646351036577") {
this.on(Events.EntitlementCreate, async (entitlement) => {
let user = await entitlement.fetchUser()
// send message on support server
- this.channels.fetch("1174557566773252146").then((channel) => {
+ this.channels.fetch("1312408529507713066").then((channel) => {
if(!channel.isTextBased()) return;
channel.send({
- content: `<@${entitlement.userId}> (${user.tag}) has purchased Ketsuna Premium!`,
+ content: `<@${entitlement.userId}> (${user.tag}) has purchased Morgane AI Premium!`,
});
});
// send dm to user
user.send({
- content: `If you are not yet in the support server, please join it here: https://discord.gg/wqvBzHe8YQ \n\n This way we can give you your Rewards for suscribing to Ketsuna Premium!`,
+ content: `If you are not yet in the support server, please join it here: https://discord.gg/Usc9ZY6W \n\n This way we can give you your Rewards for suscribing to Morgane AI Premium!`,
embeds: [
{
title: "Join the Support Server",
- url: "https://discord.gg/wqvBzHe8YQ",
- description: `Thank you for purchasing Ketsuna Premium! You need to be Logged in to the bot to use it.\nPlease use {
+ console.log(`[Bot] Logged in as ${client.user?.tag}.`);
+});
+
+client.on("messageCreate", async (message) => {
+ if (message.author.bot) return;
+
+ // Commande !shardinfsrv
+ if (message.content === "!shardinfsrv") {
+ if (message.client.shard) {
+ const shardId = message.client.shard.ids[0];
+
+ const embed = new EmbedBuilder()
+ .setTitle("Shard Information")
+ .setColor("Blue")
+ .setDescription(`This command was executed on shard **${shardId}**.`);
+
+ await message.reply({ embeds: [embed] });
+ } else {
+ await message.reply("The bot is not using sharding.");
+ }
+ }
+
+ // Commande !shardstats
+ if (message.content === "!shardstats") {
+ if (message.client.shard) {
+ try {
+ // Récupérer les statistiques des shards
+ const results = await message.client.shard.broadcastEval(client => {
+ return {
+ shardId: client.shard?.ids[0] || 0,
+ guildCount: client.guilds.cache.size,
+ memberCount: client.guilds.cache.reduce((acc, guild) => acc + (guild.memberCount || 0), 0),
+ };
+ });
+
+ // Construction de l'embed avec les informations
+ const embed = new EmbedBuilder()
+ .setTitle("Shard Statistics")
+ .setColor("Green");
+
+ results.forEach((shard: any) => {
+ embed.addFields([
+ { name: `Shard ${shard.shardId}`, value: `Servers: ${shard.guildCount}\nMembers: ${shard.memberCount}`, inline: false },
+ ]);
+ });
+
+ // Réponse avec l'embed
+ await message.reply({ embeds: [embed] });
+ } catch (err) {
+ console.error("Error fetching shard stats:", err);
+ await message.reply("An error occurred while fetching shard stats.");
+ }
+ } else {
+ await message.reply("The bot is not using sharding.");
+ }
+ }
+});
+
+client.login(process.env.DISCORD_TOKEN).catch(console.error);
diff --git a/src/shard.ts b/src/shard.ts
new file mode 100644
index 0000000..8707a8e
--- /dev/null
+++ b/src/shard.ts
@@ -0,0 +1,232 @@
+import { ShardingManager, Client, GatewayIntentBits, EmbedBuilder } from "discord.js";
+import dotenv from "dotenv";
+import fs from "fs";
+import path from "path";
+
+dotenv.config();
+
+// Vérification des variables d'environnement
+const TOKEN = process.env.DISCORD_TOKEN;
+const SERVERS_PER_SHARD = parseInt(process.env.SERVERS_PER_SHARD || "50", 10);
+const OWNER_ID = process.env.OWNER_ID;
+
+if (!TOKEN) {
+ console.error("The bot's token is not defined. Please check your .env file.");
+ process.exit(1);
+}
+
+if (!SERVERS_PER_SHARD) {
+ console.error("The variable SERVERS_PER_SHARD is not correctly defined. Please check your .env file.");
+ process.exit(1);
+}
+
+if (!OWNER_ID) {
+ console.error("The OWNER_ID variable is not defined. Please check your .env file.");
+ process.exit(1);
+}
+
+// Initialisation du client Discord
+const client = new Client({
+ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent],
+});
+
+client.once("ready", () => {
+ console.log(`[Bot] Logged in as ${client.user?.tag}.`);
+
+ // Calculer dynamiquement le nombre de guildes
+ const GUILD_COUNT = client.guilds.cache.size;
+
+ if (GUILD_COUNT === 0) {
+ console.log("[ShardManager] The bot is not in any guilds. Exiting...");
+ process.exit(1); // Si le bot n'est dans aucune guilde, sortir
+ }
+
+ // Calculer dynamiquement le nombre de shards nécessaires
+ const shardCount = Math.max(1, Math.ceil(GUILD_COUNT / SERVERS_PER_SHARD));
+ console.log(`[ShardManager] Calculated number of shards: ${shardCount} shard(s) needed.`);
+
+ // Chemin pour stocker la whitelist
+ const whitelistFilePath = path.resolve(__dirname, "../whitelist.json");
+
+ // Fonction utilitaire pour gérer la whitelist
+ function readWhitelist(): Set {
+ if (!fs.existsSync(whitelistFilePath)) return new Set();
+ const data = JSON.parse(fs.readFileSync(whitelistFilePath, "utf-8"));
+ return new Set(data);
+ }
+
+ function writeWhitelist(whitelistSet: Set) {
+ fs.writeFileSync(whitelistFilePath, JSON.stringify(Array.from(whitelistSet)), "utf-8");
+ }
+
+ // Charger la whitelist existante
+ const whitelist: Set = readWhitelist();
+
+ // Variables pour suivre les états des shards
+ const shardStatuses: string[] = new Array(shardCount).fill("Unknown");
+
+ // Initialisation du ShardingManager
+ const manager = new ShardingManager("./dist/main.js", {
+ token: TOKEN,
+ totalShards: shardCount,
+ respawn: true,
+ });
+
+ // Suivi des événements des shards
+ manager.on("shardCreate", (shard) => {
+ console.log(`[ShardManager] Shard ${shard.id} has been created.`);
+ shardStatuses[shard.id] = "Launching";
+
+ shard.once("ready", () => {
+ shardStatuses[shard.id] = "Online";
+ });
+
+ shard.once("disconnect", () => {
+ shardStatuses[shard.id] = "Disconnected";
+ });
+
+ shard.once("death", () => {
+ shardStatuses[shard.id] = "Dead";
+ });
+ });
+
+ // Lancer les shards
+ manager
+ .spawn({ delay: 5500, timeout: 30000 })
+ .then(() => console.log("[ShardManager] All shards have been launched."))
+ .catch((err) => console.error("[ShardManager] Error while launching shards:", err));
+
+ // Commande pour lister les shards
+ client.on("messageCreate", async (message) => {
+ if (message.author.bot) return;
+
+ // Commande `!shhelp`
+ if (message.content === "!shhelp") {
+ const embed = new EmbedBuilder()
+ .setTitle("Available Commands")
+ .setColor("Green")
+ .setDescription(
+ "Here are the commands you can use:\n\n" +
+ "**!addwhitelist **: Adds a user to the whitelist (Owner only).\n" +
+ "**!removewhitelist **: Removes a user from the whitelist (Owner only).\n" +
+ "**!listwhitelist**: Lists all users in the whitelist (Owner only).\n" +
+ "**!restartshard **: Restarts a specific shard (whitelisted users only).\n" +
+ "**!shardstart**: Starts a new shard (whitelisted users only).\n" +
+ "**!shard**: Displays information about all shards.\n" +
+ "**!srvshard**: Lists servers managed by each shard (Owner only)."
+ )
+ .setFooter({ text: "Use each command with the correct format." });
+
+ message.reply({ embeds: [embed] });
+ }
+
+ // Commande `!addwhitelist`
+ if (message.content.startsWith("!addwhitelist")) {
+ const args = message.content.split(" ");
+ if (args.length !== 2 || !args[1].match(/\d{18}/)) {
+ return message.reply("Usage: `!addwhitelist `.");
+ }
+
+ const userId = args[1];
+ if (message.author.id !== OWNER_ID) {
+ return message.reply("You do not have permission.");
+ }
+
+ whitelist.add(userId);
+ writeWhitelist(whitelist); // Ne pas oublier d'écrire la whitelist après modification
+ return message.reply(`${userId} has been added to the whitelist.`);
+ }
+
+ // Commande `!removewhitelist`
+ if (message.content.startsWith("!removewhitelist")) {
+ const args = message.content.split(" ");
+ if (args.length !== 2 || !args[1].match(/^\d{18}$/)) {
+ return message.reply("Usage: `!removewhitelist `.");
+ }
+
+ const userId = args[1];
+ if (message.author.id !== OWNER_ID) {
+ return message.reply("You do not have permission.");
+ }
+
+ whitelist.delete(userId);
+ writeWhitelist(whitelist);
+ return message.reply(`${userId} has been removed from the whitelist.`);
+ }
+
+ // Commande `!listwhitelist`
+ if (message.content === "!listwhitelist") {
+ if (message.author.id !== OWNER_ID) {
+ return message.reply("You do not have permission.");
+ }
+
+ if (whitelist.size === 0) {
+ return message.reply("The whitelist is empty.");
+ }
+
+ const whitelistList = Array.from(whitelist).join("\n");
+ return message.reply(`Users in the whitelist:\n${whitelistList}`);
+ }
+
+ // Commande `!restartshard`
+ if (message.content.startsWith("!restartshard")) {
+ const args = message.content.split(" ");
+ if (args.length !== 2 || isNaN(parseInt(args[1], 10))) {
+ return message.reply("Usage: `!restartshard `.");
+ }
+
+ const shardId = parseInt(args[1], 10);
+ if (!whitelist.has(message.author.id)) {
+ return message.reply("You do not have permission.");
+ }
+
+ const shard = manager.shards.get(shardId);
+ if (!shard) {
+ return message.reply(`Shard ${shardId} does not exist.`);
+ }
+
+ shard.respawn();
+ return message.reply(`Shard ${shardId} has been restarted.`);
+ }
+
+ // Commande `!shardstart`
+ if (message.content === "!shardstart") {
+ let totalShards = manager.totalShards;
+
+ if (typeof totalShards !== "number") {
+ totalShards = Number(totalShards);
+ if (isNaN(totalShards)) {
+ return message.reply("Failed to determine the current total shards.");
+ }
+ }
+
+ const nextShardId = totalShards; // Le nouvel ID est après le dernier shard existant
+ manager.totalShards = totalShards + 1; // Augmenter le nombre total de shards
+
+ try {
+ const newShard = manager.createShard(nextShardId);
+ newShard.spawn(); // Lancer le nouveau shard
+ return message.reply(`A new shard (ID: ${nextShardId}) has been started.`);
+ } catch (error) {
+ console.error("Error starting a new shard:", error);
+ return message.reply(
+ "Failed to start a new shard. Please check the logs for more details."
+ );
+ }
+ }
+
+ // Commande `!shard`
+ if (message.content === "!shard") {
+ const status = shardStatuses
+ .map((state, index) => `Shard ${index}: ${state}`)
+ .join("\n");
+
+ message.reply(`Shard statuses:\n${status}`);
+ }
+ });
+});
+
+// Connexion du bot
+client.login(TOKEN).catch((err) => {
+ console.error("[Bot] Login failed:", err);
+});
diff --git a/src/utils/blacklist.ts b/src/utils/blacklist.ts
new file mode 100644
index 0000000..6386096
--- /dev/null
+++ b/src/utils/blacklist.ts
@@ -0,0 +1,25 @@
+import fs from 'fs';
+
+// Fonction pour vérifier si un utilisateur est blacklisté
+export function isBlacklisted(userId: string): boolean {
+ const blacklist = loadBlacklist(); // Charger la blacklist à chaque vérification
+ return blacklist.includes(userId);
+}
+
+// Fonction pour charger la liste noire à partir du fichier JSON
+export function loadBlacklist(): string[] {
+ try {
+ const data = fs.readFileSync("../blacklist.json", "utf8");
+ const json = JSON.parse(data);
+ return json.blacklist || [];
+ } catch (err) {
+ console.error("Erreur de chargement de la blacklist : ", err);
+ return [];
+ }
+}
+
+// Fonction pour sauvegarder la liste noire dans le fichier JSON
+export function saveBlacklist(blacklist: string[]): void {
+ const jsonData = JSON.stringify({ blacklist }, null, 2);
+ fs.writeFileSync("../blacklist.json", jsonData, "utf8");
+}
\ No newline at end of file
diff --git a/whitelist.json b/whitelist.json
new file mode 100644
index 0000000..8539c60
--- /dev/null
+++ b/whitelist.json
@@ -0,0 +1 @@
+["1185603511577235572"]
\ No newline at end of file