aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.eslintignore35
-rw-r--r--.eslintrc.cjs (renamed from .eslintrc.js)27
-rw-r--r--.prettierrc.cjs (renamed from .prettierrc.js)2
-rw-r--r--Dockerfile4
-rw-r--r--README.md100
-rw-r--r--ace16
-rw-r--r--ace-manifest.json616
-rw-r--r--ace.js24
-rw-r--r--adonisrc.ts83
-rw-r--r--app/Controllers/Http/Api/Static/AnnouncementsController.ts20
-rw-r--r--app/Controllers/Http/Api/Static/EmptyController.ts6
-rw-r--r--app/Controllers/Http/Api/Static/FeaturesController.ts6
-rw-r--r--app/Controllers/Http/Dashboard/AccountController.ts40
-rw-r--r--app/Controllers/Http/Dashboard/DataController.ts12
-rw-r--r--app/Controllers/Http/Dashboard/DeleteController.ts14
-rw-r--r--app/Controllers/Http/Dashboard/ExportController.ts29
-rw-r--r--app/Controllers/Http/Dashboard/ForgotPasswordController.ts22
-rw-r--r--app/Controllers/Http/Dashboard/LogOutController.ts8
-rw-r--r--app/Controllers/Http/Dashboard/LoginController.ts58
-rw-r--r--app/Controllers/Http/Dashboard/ResetPasswordController.ts51
-rw-r--r--app/Controllers/Http/Dashboard/TransferController.ts77
-rw-r--r--app/Controllers/Http/DashboardController.ts2
-rw-r--r--app/Controllers/Http/HealthController.ts2
-rw-r--r--app/Controllers/Http/HomeController.ts4
-rw-r--r--app/Controllers/Http/RecipeController.ts179
-rw-r--r--app/Controllers/Http/ServiceController.ts204
-rw-r--r--app/Controllers/Http/StaticsController.ts2
-rw-r--r--app/Controllers/Http/UserController.ts239
-rw-r--r--app/Controllers/Http/WorkspaceController.ts98
-rw-r--r--app/Exceptions/Handler.ts8
-rw-r--r--app/Middleware/AllowGuestOnly.ts33
-rw-r--r--app/Middleware/Auth.ts61
-rw-r--r--app/Middleware/Dashboard.ts15
-rw-r--r--app/Middleware/SilentAuth.ts11
-rw-r--r--app/Models/Recipe.ts16
-rw-r--r--app/Models/Service.ts25
-rw-r--r--app/Models/Token.ts27
-rw-r--r--app/Models/User.ts85
-rw-r--r--app/Models/Workspace.ts27
-rw-r--r--bin/console.ts47
-rw-r--r--bin/server.ts45
-rw-r--r--bin/test.ts60
-rw-r--r--commands/index.ts21
-rw-r--r--config/app.ts43
-rw-r--r--config/auth.ts18
-rw-r--r--config/bodyparser.ts9
-rw-r--r--config/cors.ts15
-rw-r--r--config/dashboard.ts6
-rw-r--r--config/database.ts54
-rw-r--r--config/drive.ts12
-rw-r--r--config/hash.ts30
-rw-r--r--config/mail.ts64
-rw-r--r--config/session.ts14
-rw-r--r--config/shield.ts363
-rw-r--r--config/static.ts8
-rw-r--r--contracts/env.ts23
-rw-r--r--contracts/hash.ts26
-rw-r--r--contracts/mail.ts13
-rw-r--r--database/factories/ServiceFactory.ts6
-rw-r--r--database/factories/TokenFactory.ts15
-rw-r--r--database/factories/UserFactory.ts17
-rw-r--r--database/factories/WorkspaceFactory.ts6
-rw-r--r--database/migrations/1503250034279_user.ts22
-rw-r--r--database/migrations/1503250034280_token.ts22
-rw-r--r--database/migrations/1566385379883_service_schema.ts24
-rw-r--r--database/migrations/1566554231482_recipe_schema.ts20
-rw-r--r--database/migrations/1566554359294_workspace_schema.ts26
-rw-r--r--database/migrations/1612629845398_users_update_schema.ts14
-rw-r--r--database/migrations/1658076326250_correct_token_relations.ts16
-rw-r--r--database/migrations/1696110557648_jwt_tokens.ts34
-rw-r--r--helpers/PasswordHash.ts19
-rw-r--r--package.json121
-rw-r--r--pnpm-lock.yaml9396
-rw-r--r--providers/AppProvider.ts4
-rw-r--r--providers/LegacyHashDriver.ts9
-rw-r--r--providers/LegacyHasherProvider.ts12
-rw-r--r--public/js/new.js32
-rw-r--r--public/js/transfer.js20
-rw-r--r--server.ts19
-rw-r--r--start/env.ts (renamed from env.ts)7
-rw-r--r--start/events.ts20
-rw-r--r--start/kernel.ts10
-rw-r--r--start/routes.ts4
-rw-r--r--start/routes/api.ts82
-rw-r--r--start/routes/web.ts104
-rw-r--r--test.ts49
-rw-r--r--tests/bootstrap.ts29
-rw-r--r--tests/config.ts2
-rw-r--r--tests/functional/api/static/announcements.spec.ts26
-rw-r--r--tests/functional/api/static/features.spec.ts24
-rw-r--r--tests/functional/api/static/news.spec.ts14
-rw-r--r--tests/functional/api/static/services.spec.ts14
-rw-r--r--tests/functional/dashboard/account.spec.ts129
-rw-r--r--tests/functional/dashboard/data.spec.ts38
-rw-r--r--tests/functional/dashboard/delete.spec.ts49
-rw-r--r--tests/functional/dashboard/disabled-dashboard.spec.ts82
-rw-r--r--tests/functional/dashboard/export.spec.ts91
-rw-r--r--tests/functional/dashboard/forgot-password.spec.ts66
-rw-r--r--tests/functional/dashboard/import-stubs/services-workspaces.json5
-rw-r--r--tests/functional/dashboard/login.spec.ts62
-rw-r--r--tests/functional/dashboard/logout.spec.ts26
-rw-r--r--tests/functional/dashboard/reset-password.spec.ts84
-rw-r--r--tests/functional/dashboard/transfer.spec.ts200
-rw-r--r--tests/functional/health.spec.ts12
-rw-r--r--tests/functional/static-pages/home.spec.ts12
-rw-r--r--tests/functional/static-pages/privacy.spec.ts12
-rw-r--r--tests/functional/static-pages/terms.spec.ts12
-rw-r--r--tests/utils.ts4
-rw-r--r--tsconfig.json34
-rw-r--r--types/auth.ts (renamed from contracts/auth.ts)34
-rw-r--r--types/drive.ts (renamed from contracts/drive.ts)4
-rw-r--r--types/events.ts (renamed from contracts/events.ts)4
-rw-r--r--types/tests.ts (renamed from contracts/tests.ts)2
-rw-r--r--vite.config.ts19
-rw-r--r--webpack.config.js213
115 files changed, 4244 insertions, 10348 deletions
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 606431b..0000000
--- a/.eslintignore
+++ /dev/null
@@ -1,35 +0,0 @@
1# Logs
2logs
3*.log
4
5# Runtime data
6pids
7*.pid
8*.seed
9
10# Coverage directory used by tools like istanbul
11coverage
12.eslintcache
13
14# Dependency directory
15# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
16node_modules
17
18# OSX
19.DS_Store
20
21.idea
22.pnpm-debug.log*
23*.css.d.ts
24*.sass.d.ts
25*.scss.d.ts
26
27/build/
28/out/
29/recipes/
30
31# package files
32pnpm-lock.yaml
33
34# Json
35tests/functional/dashboard/import-stubs/invalid.json
diff --git a/.eslintrc.js b/.eslintrc.cjs
index 2660c04..2be48ef 100644
--- a/.eslintrc.js
+++ b/.eslintrc.cjs
@@ -2,20 +2,13 @@
2module.exports = { 2module.exports = {
3 root: true, 3 root: true,
4 parserOptions: { 4 parserOptions: {
5 ecmaVersion: 2018, 5 ecmaVersion: 'latest',
6 sourceType: 'module', 6 sourceType: 'module',
7 project: './tsconfig.json', 7 project: './tsconfig.json',
8 }, 8 },
9 ignorePatterns: ['node_modules', 'build', 'recipes', '.eslintrc.js'], 9 ignorePatterns: ['node_modules', 'build', 'recipes', '.eslintrc.js'],
10 extends: [ 10 extends: ['@adonisjs/eslint-config/app', 'plugin:unicorn/recommended', 'prettier'],
11 'plugin:adonis/typescriptApp', 11 plugins: ['@adonisjs/eslint-plugin'],
12 'plugin:unicorn/recommended',
13 'prettier',
14 ],
15 plugins: [],
16 globals: {
17 use: true,
18 },
19 env: { 12 env: {
20 es6: true, 13 es6: true,
21 node: true, 14 node: true,
@@ -25,7 +18,7 @@ module.exports = {
25 { 18 {
26 files: ['**/*.ts'], 19 files: ['**/*.ts'],
27 extends: [ 20 extends: [
28 'plugin:adonis/typescriptApp', 21 '@adonisjs/eslint-config/app',
29 'plugin:@typescript-eslint/eslint-recommended', 22 'plugin:@typescript-eslint/eslint-recommended',
30 'plugin:@typescript-eslint/strict', 23 'plugin:@typescript-eslint/strict',
31 // TODO: Opt-in to a stricter ruleset in the future 24 // TODO: Opt-in to a stricter ruleset in the future
@@ -47,6 +40,16 @@ module.exports = {
47 '@typescript-eslint/no-extraneous-class': 0, 40 '@typescript-eslint/no-extraneous-class': 0,
48 '@typescript-eslint/ban-ts-comment': 0, 41 '@typescript-eslint/ban-ts-comment': 0,
49 '@typescript-eslint/prefer-ts-expect-error': 0, 42 '@typescript-eslint/prefer-ts-expect-error': 0,
43 '@typescript-eslint/explicit-member-accessibility': 0,
44 '@typescript-eslint/no-shadow': 0,
45 '@typescript-eslint/prefer-nullish-coalescing': 0,
46
47 // @adonisjs/eslint-plugin
48 '@adonisjs/prefer-lazy-controller-import': 2,
49 '@adonisjs/prefer-lazy-listener-import': 2,
50
51 // eslint-plugin-unicorn
52 'unicorn/filename-case': 0,
50 }, 53 },
51 }, 54 },
52 ], 55 ],
@@ -83,4 +86,4 @@ module.exports = {
83 'unicorn/no-empty-file': 0, 86 'unicorn/no-empty-file': 0,
84 'unicorn/prefer-top-level-await': 0, 87 'unicorn/prefer-top-level-await': 0,
85 }, 88 },
86}; 89}
diff --git a/.prettierrc.js b/.prettierrc.cjs
index f2feee8..f8073e9 100644
--- a/.prettierrc.js
+++ b/.prettierrc.cjs
@@ -2,4 +2,4 @@
2module.exports = { 2module.exports = {
3 singleQuote: true, 3 singleQuote: true,
4 arrowParens: 'avoid', 4 arrowParens: 'avoid',
5}; 5}
diff --git a/Dockerfile b/Dockerfile
index df1c96a..35adbad 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
1FROM node:20.11.0-alpine as build 1FROM node:20.11.0-alpine AS build
2 2
3WORKDIR /server-build 3WORKDIR /server-build
4 4
@@ -7,7 +7,7 @@ RUN apk add --no-cache python3 make gcc g++ libc-dev sqlite-dev
7COPY . /server-build 7COPY . /server-build
8 8
9ENV CI=true 9ENV CI=true
10RUN PNPM_VERSION=$(node -p 'require("./package.json").engines.pnpm'); npm i -g pnpm@$PNPM_VERSION 10RUN PNPM_VERSION=$(node -p 'require("./package.json").engines.pnpm'); npm i -g pnpm@"$PNPM_VERSION"
11RUN pnpm install --config.build-from-source=sqlite --config.sqlite=/usr/local 11RUN pnpm install --config.build-from-source=sqlite --config.sqlite=/usr/local
12RUN pnpm build 12RUN pnpm build
13 13
diff --git a/README.md b/README.md
index dc5b648..09669fb 100644
--- a/README.md
+++ b/README.md
@@ -3,10 +3,13 @@
3</p> 3</p>
4 4
5# Server 5# Server
6 [![Docker Build and Publish](https://github.com/ferdium/ferdium-server/actions/workflows/docker.yml/badge.svg)](https://github.com/ferdium/ferdium-server/actions/workflows/docker.yml) 6
7[![Docker Build and Publish](https://github.com/ferdium/ferdium-server/actions/workflows/docker.yml/badge.svg)](https://github.com/ferdium/ferdium-server/actions/workflows/docker.yml)
7 8
8<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> 9<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
10
9<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-17-default.svg?logo=github' alt='Contributors'/></a> 11<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-17-default.svg?logo=github' alt='Contributors'/></a>
12
10<!-- ALL-CONTRIBUTORS-BADGE:END --> 13<!-- ALL-CONTRIBUTORS-BADGE:END -->
11 14
12> 👨🏾‍🍳 Server for [Ferdium](https://ferdium.org) that you can re-use to run your own 15> 👨🏾‍🍳 Server for [Ferdium](https://ferdium.org) that you can re-use to run your own
@@ -23,6 +26,7 @@ A custom server allows you to manage the data of all registered users yourself a
23</details> 26</details>
24 27
25## Features 28## Features
29
26- [x] User registration and login 30- [x] User registration and login
27- [x] Service creation, download, listing and removing 31- [x] Service creation, download, listing and removing
28- [x] Workspace support 32- [x] Workspace support
@@ -45,47 +49,49 @@ After setting up the docker container we recommend you set up an NGINX reverse p
45 49
461. Pull the Docker image 501. Pull the Docker image
47 51
48 ```sh 52 ```sh
49 docker pull ferdium/ferdium-server:latest 53 docker pull ferdium/ferdium-server:latest
50 ``` 54 ```
512. Create a *new* Docker container with your desired configuration **Existing users please seee the warning above.** 55
52 562. Create a _new_ Docker container with your desired configuration **Existing users please seee the warning above.**
53 ```sh 57
54 docker create \ 58 ```sh
55 --name=ferdium-server \ 59 docker create \
56 -e NODE_ENV=development \ 60 --name=ferdium-server \
57 -e APP_URL=<ferdium-server-url> \ 61 -e NODE_ENV=development \
58 -e DB_CONNECTION=<database> \ 62 -e APP_URL=<ferdium-server-url> \
59 -e DB_HOST=<yourdbhost> \ 63 -e DB_CONNECTION=<database> \
60 -e DB_PORT=<yourdbport> \ 64 -e DB_HOST=<yourdbhost> \
61 -e DB_USER=<yourdbuser> \ 65 -e DB_PORT=<yourdbport> \
62 -e DB_PASSWORD=<yourdbpass> \ 66 -e DB_USER=<yourdbuser> \
63 -e DB_DATABASE=<yourdbdatabase> \ 67 -e DB_PASSWORD=<yourdbpass> \
64 -e DB_SSL=false \ 68 -e DB_DATABASE=<yourdbdatabase> \
65 -e MAIL_CONNECTION=smtp \ 69 -e DB_SSL=false \
66 -e SMTP_HOST=<smtpmailserver> \ 70 -e MAIL_CONNECTION=smtp \
67 -e SMTP_PORT=<smtpport> \ 71 -e SMTP_HOST=<smtpmailserver> \
68 -e MAIL_SSL=true/false \ 72 -e SMTP_PORT=<smtpport> \
69 -e MAIL_USERNAME=<yourmailusername> \ 73 -e MAIL_SSL=true/false \
70 -e MAIL_PASSWORD=<yourmailpassword> \ 74 -e MAIL_USERNAME=<yourmailusername> \
71 -e MAIL_SENDER=<sendemailaddress> \ 75 -e MAIL_PASSWORD=<yourmailpassword> \
72 -e IS_CREATION_ENABLED=true \ 76 -e MAIL_SENDER=<sendemailaddress> \
73 -e IS_DASHBOARD_ENABLED=true \ 77 -e IS_CREATION_ENABLED=true \
74 -e IS_REGISTRATION_ENABLED=true \ 78 -e IS_DASHBOARD_ENABLED=true \
75 -e CONNECT_WITH_FRANZ=true \ 79 -e IS_REGISTRATION_ENABLED=true \
76 -e DATA_DIR=data \ 80 -e CONNECT_WITH_FRANZ=true \
77 -p <port>:3333 \ 81 -e DATA_DIR=data \
78 -v <path to data>:/data \ 82 -p <port>:3333 \
79 -v <path to recipes>:/app/recipes \ 83 -v <path to data>:/data \
80 --restart unless-stopped \ 84 -v <path to recipes>:/app/recipes \
81 ferdium/ferdium-server:latest 85 --restart unless-stopped \
82 ``` 86 ferdium/ferdium-server:latest
83 87 ```
84 Alternatively, you can also use docker-compose v2 schema. An example can be found [in the docker folder](./docker/docker-compose.yml). 88
89 Alternatively, you can also use docker-compose v2 schema. An example can be found [in the docker folder](./docker/docker-compose.yml).
85 90
863. Optionally, you can [set up Nginx as a reverse proxy](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04#set-up-nginx-as-a-reverse-proxy-server). 913. Optionally, you can [set up Nginx as a reverse proxy](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04#set-up-nginx-as-a-reverse-proxy-server).
87 92
88For more information on configuring the Docker image, please read [the Ferdium docker documentation](./docker/README.md). 93For more information on configuring the Docker image, please read [the Ferdium docker documentation](./docker/README.md).
94
89</details> 95</details>
90<details> 96<details>
91<summary>Manual setup</summary> 97<summary>Manual setup</summary>
@@ -97,26 +103,29 @@ For more information on configuring the Docker image, please read [the Ferdium d
975. Run `npm install` to install local dependencies 1035. Run `npm install` to install local dependencies
986. Run the database migrations with 1046. Run the database migrations with
99 105
100 ```js 106 ```js
101 node ace migration:run 107 node ace migration:run
102 ``` 108 ```
103 109
1047. Start the server with 1107. Start the server with
105 111
106 ```js 112 ```js
107 npm start 113 npm start
108 ``` 114 ```
115
109</details> 116</details>
110<details> 117<details>
111<summary>Configuration</summary> 118<summary>Configuration</summary>
112 119
113Ferdium-server's configuration is saved inside an `.env` file. Besides AdonisJS's settings, Ferdium-server has the following custom settings: 120Ferdium-server's configuration is saved inside an `.env` file. Besides AdonisJS's settings, Ferdium-server has the following custom settings:
121
114- `IS_CREATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the [creation of custom recipes](#creating-and-using-custom-recipes) 122- `IS_CREATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the [creation of custom recipes](#creating-and-using-custom-recipes)
115- `IS_REGISTRATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the creation of new user accounts 123- `IS_REGISTRATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the creation of new user accounts
116- `IS_DASHBOARD_ENABLED` (`true` or `false`, default: `true`): Whether to enable the user dashboard 124- `IS_DASHBOARD_ENABLED` (`true` or `false`, default: `true`): Whether to enable the user dashboard
117- `CONNECT_WITH_FRANZ` (`true` or `false`, default: `true`): Whether to enable connections to the Franz server. By enabling this option, Ferdium-server can: 125- `CONNECT_WITH_FRANZ` (`true` or `false`, default: `true`): Whether to enable connections to the Franz server. By enabling this option, Ferdium-server can:
118 - Show the full Franz recipe library instead of only custom recipes 126 - Show the full Franz recipe library instead of only custom recipes
119 - Import Franz accounts 127 - Import Franz accounts
128
120</details> 129</details>
121<details> 130<details>
122<summary>Importing your Franz/Ferdi account</summary> 131<summary>Importing your Franz/Ferdi account</summary>
@@ -124,11 +133,13 @@ Ferdium-server's configuration is saved inside an `.env` file. Besides AdonisJS'
124Ferdium-server allows you to import your full Franz/Ferdi account, including all its settings. 133Ferdium-server allows you to import your full Franz/Ferdi account, including all its settings.
125 134
126To import your Franz/Ferdi account, open `http://[YOUR FERDIUM-SERVER]/import` in your browser and login using your Franz/Ferdi account details. Ferdium-server will create a new user with the same credentials and copy your Franz/Ferdi settings, services and workspaces. 135To import your Franz/Ferdi account, open `http://[YOUR FERDIUM-SERVER]/import` in your browser and login using your Franz/Ferdi account details. Ferdium-server will create a new user with the same credentials and copy your Franz/Ferdi settings, services and workspaces.
136
127</details> 137</details>
128<details> 138<details>
129<summary>Transferring user data</summary> 139<summary>Transferring user data</summary>
130 140
131Please refer to <https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers> 141Please refer to <https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers>
142
132</details> 143</details>
133<details> 144<details>
134<summary>Creating and using custom recipes</summary> 145<summary>Creating and using custom recipes</summary>
@@ -149,6 +160,7 @@ To add your recipe to Ferdium-server, open `http://[YOUR FERDIUM-SERVER]/new` in
149<summary>Listing custom recipes</summary> 160<summary>Listing custom recipes</summary>
150 161
151Inside Ferdium, searching for `ferdium:custom` will list all of your custom recipes. 162Inside Ferdium, searching for `ferdium:custom` will list all of your custom recipes.
163
152</details> 164</details>
153 165
154## Contributing 166## Contributing
diff --git a/ace b/ace
deleted file mode 100644
index c175031..0000000
--- a/ace
+++ /dev/null
@@ -1,16 +0,0 @@
1/*
2|--------------------------------------------------------------------------
3| Ace Commands
4|--------------------------------------------------------------------------
5|
6| This file is the entry point for running ace commands.
7|
8*/
9
10require('reflect-metadata')
11require('source-map-support').install({ handleUncaughtExceptions: false })
12
13const { Ignitor } = require('@adonisjs/core/build/standalone')
14new Ignitor(__dirname)
15 .ace()
16 .handle(process.argv.slice(2))
diff --git a/ace-manifest.json b/ace-manifest.json
deleted file mode 100644
index d7befd2..0000000
--- a/ace-manifest.json
+++ /dev/null
@@ -1,616 +0,0 @@
1{
2 "commands": {
3 "dump:rcfile": {
4 "settings": {},
5 "commandPath": "@adonisjs/core/build/commands/DumpRc",
6 "commandName": "dump:rcfile",
7 "description": "Dump contents of .adonisrc.json file along with defaults",
8 "args": [],
9 "aliases": [],
10 "flags": []
11 },
12 "list:routes": {
13 "settings": {
14 "loadApp": true,
15 "stayAlive": true
16 },
17 "commandPath": "@adonisjs/core/build/commands/ListRoutes/index",
18 "commandName": "list:routes",
19 "description": "List application routes",
20 "args": [],
21 "aliases": [],
22 "flags": [
23 {
24 "name": "verbose",
25 "propertyName": "verbose",
26 "type": "boolean",
27 "description": "Display more information"
28 },
29 {
30 "name": "reverse",
31 "propertyName": "reverse",
32 "type": "boolean",
33 "alias": "r",
34 "description": "Reverse routes display"
35 },
36 {
37 "name": "methods",
38 "propertyName": "methodsFilter",
39 "type": "array",
40 "alias": "m",
41 "description": "Filter routes by method"
42 },
43 {
44 "name": "patterns",
45 "propertyName": "patternsFilter",
46 "type": "array",
47 "alias": "p",
48 "description": "Filter routes by the route pattern"
49 },
50 {
51 "name": "names",
52 "propertyName": "namesFilter",
53 "type": "array",
54 "alias": "n",
55 "description": "Filter routes by route name"
56 },
57 {
58 "name": "json",
59 "propertyName": "json",
60 "type": "boolean",
61 "description": "Output as JSON"
62 },
63 {
64 "name": "table",
65 "propertyName": "table",
66 "type": "boolean",
67 "description": "Output as Table"
68 },
69 {
70 "name": "max-width",
71 "propertyName": "maxWidth",
72 "type": "number",
73 "description": "Specify maximum rendering width. Ignored for JSON Output"
74 }
75 ]
76 },
77 "generate:key": {
78 "settings": {},
79 "commandPath": "@adonisjs/core/build/commands/GenerateKey",
80 "commandName": "generate:key",
81 "description": "Generate a new APP_KEY secret",
82 "args": [],
83 "aliases": [],
84 "flags": []
85 },
86 "repl": {
87 "settings": {
88 "loadApp": true,
89 "environment": "repl",
90 "stayAlive": true
91 },
92 "commandPath": "@adonisjs/repl/build/commands/AdonisRepl",
93 "commandName": "repl",
94 "description": "Start a new REPL session",
95 "args": [],
96 "aliases": [],
97 "flags": []
98 },
99 "db:seed": {
100 "settings": {
101 "loadApp": true
102 },
103 "commandPath": "@adonisjs/lucid/build/commands/DbSeed",
104 "commandName": "db:seed",
105 "description": "Execute database seeders",
106 "args": [],
107 "aliases": [],
108 "flags": [
109 {
110 "name": "connection",
111 "propertyName": "connection",
112 "type": "string",
113 "description": "Define a custom database connection for the seeders",
114 "alias": "c"
115 },
116 {
117 "name": "interactive",
118 "propertyName": "interactive",
119 "type": "boolean",
120 "description": "Run seeders in interactive mode",
121 "alias": "i"
122 },
123 {
124 "name": "files",
125 "propertyName": "files",
126 "type": "array",
127 "description": "Define a custom set of seeders files names to run",
128 "alias": "f"
129 },
130 {
131 "name": "compact-output",
132 "propertyName": "compactOutput",
133 "type": "boolean",
134 "description": "A compact single-line output"
135 }
136 ]
137 },
138 "db:wipe": {
139 "settings": {
140 "loadApp": true
141 },
142 "commandPath": "@adonisjs/lucid/build/commands/DbWipe",
143 "commandName": "db:wipe",
144 "description": "Drop all tables, views and types in database",
145 "args": [],
146 "aliases": [],
147 "flags": [
148 {
149 "name": "connection",
150 "propertyName": "connection",
151 "type": "string",
152 "description": "Define a custom database connection",
153 "alias": "c"
154 },
155 {
156 "name": "drop-views",
157 "propertyName": "dropViews",
158 "type": "boolean",
159 "description": "Drop all views"
160 },
161 {
162 "name": "drop-types",
163 "propertyName": "dropTypes",
164 "type": "boolean",
165 "description": "Drop all custom types (Postgres only)"
166 },
167 {
168 "name": "force",
169 "propertyName": "force",
170 "type": "boolean",
171 "description": "Explicitly force command to run in production"
172 }
173 ]
174 },
175 "db:truncate": {
176 "settings": {
177 "loadApp": true
178 },
179 "commandPath": "@adonisjs/lucid/build/commands/DbTruncate",
180 "commandName": "db:truncate",
181 "description": "Truncate all tables in database",
182 "args": [],
183 "aliases": [],
184 "flags": [
185 {
186 "name": "connection",
187 "propertyName": "connection",
188 "type": "string",
189 "description": "Define a custom database connection",
190 "alias": "c"
191 },
192 {
193 "name": "force",
194 "propertyName": "force",
195 "type": "boolean",
196 "description": "Explicitly force command to run in production"
197 }
198 ]
199 },
200 "make:model": {
201 "settings": {
202 "loadApp": true
203 },
204 "commandPath": "@adonisjs/lucid/build/commands/MakeModel",
205 "commandName": "make:model",
206 "description": "Make a new Lucid model",
207 "args": [
208 {
209 "type": "string",
210 "propertyName": "name",
211 "name": "name",
212 "required": true,
213 "description": "Name of the model class"
214 }
215 ],
216 "aliases": [],
217 "flags": [
218 {
219 "name": "migration",
220 "propertyName": "migration",
221 "type": "boolean",
222 "alias": "m",
223 "description": "Generate the migration for the model"
224 },
225 {
226 "name": "controller",
227 "propertyName": "controller",
228 "type": "boolean",
229 "alias": "c",
230 "description": "Generate the controller for the model"
231 },
232 {
233 "name": "factory",
234 "propertyName": "factory",
235 "type": "boolean",
236 "alias": "f",
237 "description": "Generate a factory for the model"
238 }
239 ]
240 },
241 "make:migration": {
242 "settings": {
243 "loadApp": true
244 },
245 "commandPath": "@adonisjs/lucid/build/commands/MakeMigration",
246 "commandName": "make:migration",
247 "description": "Make a new migration file",
248 "args": [
249 {
250 "type": "string",
251 "propertyName": "name",
252 "name": "name",
253 "required": true,
254 "description": "Name of the migration file"
255 }
256 ],
257 "aliases": [],
258 "flags": [
259 {
260 "name": "connection",
261 "propertyName": "connection",
262 "type": "string",
263 "description": "The connection flag is used to lookup the directory for the migration file"
264 },
265 {
266 "name": "folder",
267 "propertyName": "folder",
268 "type": "string",
269 "description": "Pre-select a migration directory"
270 },
271 {
272 "name": "create",
273 "propertyName": "create",
274 "type": "string",
275 "description": "Define the table name for creating a new table"
276 },
277 {
278 "name": "table",
279 "propertyName": "table",
280 "type": "string",
281 "description": "Define the table name for altering an existing table"
282 }
283 ]
284 },
285 "make:seeder": {
286 "settings": {},
287 "commandPath": "@adonisjs/lucid/build/commands/MakeSeeder",
288 "commandName": "make:seeder",
289 "description": "Make a new Seeder file",
290 "args": [
291 {
292 "type": "string",
293 "propertyName": "name",
294 "name": "name",
295 "required": true,
296 "description": "Name of the seeder class"
297 }
298 ],
299 "aliases": [],
300 "flags": []
301 },
302 "make:factory": {
303 "settings": {},
304 "commandPath": "@adonisjs/lucid/build/commands/MakeFactory",
305 "commandName": "make:factory",
306 "description": "Make a new factory",
307 "args": [
308 {
309 "type": "string",
310 "propertyName": "model",
311 "name": "model",
312 "required": true,
313 "description": "The name of the model"
314 }
315 ],
316 "aliases": [],
317 "flags": [
318 {
319 "name": "model-path",
320 "propertyName": "modelPath",
321 "type": "string",
322 "description": "The path to the model"
323 },
324 {
325 "name": "exact",
326 "propertyName": "exact",
327 "type": "boolean",
328 "description": "Create the factory with the exact name as provided",
329 "alias": "e"
330 }
331 ]
332 },
333 "migration:run": {
334 "settings": {
335 "loadApp": true
336 },
337 "commandPath": "@adonisjs/lucid/build/commands/Migration/Run",
338 "commandName": "migration:run",
339 "description": "Migrate database by running pending migrations",
340 "args": [],
341 "aliases": [],
342 "flags": [
343 {
344 "name": "connection",
345 "propertyName": "connection",
346 "type": "string",
347 "description": "Define a custom database connection",
348 "alias": "c"
349 },
350 {
351 "name": "force",
352 "propertyName": "force",
353 "type": "boolean",
354 "description": "Explicitly force to run migrations in production"
355 },
356 {
357 "name": "dry-run",
358 "propertyName": "dryRun",
359 "type": "boolean",
360 "description": "Do not run actual queries. Instead view the SQL output"
361 },
362 {
363 "name": "compact-output",
364 "propertyName": "compactOutput",
365 "type": "boolean",
366 "description": "A compact single-line output"
367 },
368 {
369 "name": "disable-locks",
370 "propertyName": "disableLocks",
371 "type": "boolean",
372 "description": "Disable locks acquired to run migrations safely"
373 }
374 ]
375 },
376 "migration:rollback": {
377 "settings": {
378 "loadApp": true
379 },
380 "commandPath": "@adonisjs/lucid/build/commands/Migration/Rollback",
381 "commandName": "migration:rollback",
382 "description": "Rollback migrations to a specific batch number",
383 "args": [],
384 "aliases": [],
385 "flags": [
386 {
387 "name": "connection",
388 "propertyName": "connection",
389 "type": "string",
390 "description": "Define a custom database connection",
391 "alias": "c"
392 },
393 {
394 "name": "force",
395 "propertyName": "force",
396 "type": "boolean",
397 "description": "Explictly force to run migrations in production"
398 },
399 {
400 "name": "dry-run",
401 "propertyName": "dryRun",
402 "type": "boolean",
403 "description": "Do not run actual queries. Instead view the SQL output"
404 },
405 {
406 "name": "batch",
407 "propertyName": "batch",
408 "type": "number",
409 "description": "Define custom batch number for rollback. Use 0 to rollback to initial state"
410 },
411 {
412 "name": "compact-output",
413 "propertyName": "compactOutput",
414 "type": "boolean",
415 "description": "A compact single-line output"
416 },
417 {
418 "name": "disable-locks",
419 "propertyName": "disableLocks",
420 "type": "boolean",
421 "description": "Disable locks acquired to run migrations safely"
422 }
423 ]
424 },
425 "migration:status": {
426 "settings": {
427 "loadApp": true
428 },
429 "commandPath": "@adonisjs/lucid/build/commands/Migration/Status",
430 "commandName": "migration:status",
431 "description": "View migrations status",
432 "args": [],
433 "aliases": [],
434 "flags": [
435 {
436 "name": "connection",
437 "propertyName": "connection",
438 "type": "string",
439 "description": "Define a custom database connection",
440 "alias": "c"
441 }
442 ]
443 },
444 "migration:reset": {
445 "settings": {
446 "loadApp": true
447 },
448 "commandPath": "@adonisjs/lucid/build/commands/Migration/Reset",
449 "commandName": "migration:reset",
450 "description": "Rollback all migrations",
451 "args": [],
452 "aliases": [],
453 "flags": [
454 {
455 "name": "connection",
456 "propertyName": "connection",
457 "type": "string",
458 "description": "Define a custom database connection",
459 "alias": "c"
460 },
461 {
462 "name": "force",
463 "propertyName": "force",
464 "type": "boolean",
465 "description": "Explicitly force command to run in production"
466 },
467 {
468 "name": "dry-run",
469 "propertyName": "dryRun",
470 "type": "boolean",
471 "description": "Do not run actual queries. Instead view the SQL output"
472 },
473 {
474 "name": "disable-locks",
475 "propertyName": "disableLocks",
476 "type": "boolean",
477 "description": "Disable locks acquired to run migrations safely"
478 }
479 ]
480 },
481 "migration:refresh": {
482 "settings": {
483 "loadApp": true
484 },
485 "commandPath": "@adonisjs/lucid/build/commands/Migration/Refresh",
486 "commandName": "migration:refresh",
487 "description": "Rollback and migrate database",
488 "args": [],
489 "aliases": [],
490 "flags": [
491 {
492 "name": "connection",
493 "propertyName": "connection",
494 "type": "string",
495 "description": "Define a custom database connection",
496 "alias": "c"
497 },
498 {
499 "name": "force",
500 "propertyName": "force",
501 "type": "boolean",
502 "description": "Explicitly force command to run in production"
503 },
504 {
505 "name": "dry-run",
506 "propertyName": "dryRun",
507 "type": "boolean",
508 "description": "Do not run actual queries. Instead view the SQL output"
509 },
510 {
511 "name": "seed",
512 "propertyName": "seed",
513 "type": "boolean",
514 "description": "Run seeders"
515 },
516 {
517 "name": "disable-locks",
518 "propertyName": "disableLocks",
519 "type": "boolean",
520 "description": "Disable locks acquired to run migrations safely"
521 }
522 ]
523 },
524 "migration:fresh": {
525 "settings": {
526 "loadApp": true
527 },
528 "commandPath": "@adonisjs/lucid/build/commands/Migration/Fresh",
529 "commandName": "migration:fresh",
530 "description": "Drop all tables and re-migrate the database",
531 "args": [],
532 "aliases": [],
533 "flags": [
534 {
535 "name": "connection",
536 "propertyName": "connection",
537 "type": "string",
538 "description": "Define a custom database connection",
539 "alias": "c"
540 },
541 {
542 "name": "force",
543 "propertyName": "force",
544 "type": "boolean",
545 "description": "Explicitly force command to run in production"
546 },
547 {
548 "name": "seed",
549 "propertyName": "seed",
550 "type": "boolean",
551 "description": "Run seeders"
552 },
553 {
554 "name": "drop-views",
555 "propertyName": "dropViews",
556 "type": "boolean",
557 "description": "Drop all views"
558 },
559 {
560 "name": "drop-types",
561 "propertyName": "dropTypes",
562 "type": "boolean",
563 "description": "Drop all custom types (Postgres only)"
564 },
565 {
566 "name": "disable-locks",
567 "propertyName": "disableLocks",
568 "type": "boolean",
569 "description": "Disable locks acquired to run migrations safely"
570 }
571 ]
572 },
573 "make:mailer": {
574 "settings": {},
575 "commandPath": "@adonisjs/mail/build/commands/MakeMailer",
576 "commandName": "make:mailer",
577 "description": "Make a new mailer class",
578 "args": [
579 {
580 "type": "string",
581 "propertyName": "name",
582 "name": "name",
583 "required": true,
584 "description": "Name of the mailer class"
585 }
586 ],
587 "aliases": [],
588 "flags": []
589 },
590 "jwt:generate-keys": {
591 "settings": {},
592 "commandPath": "adonis5-jwt/build/commands/GenerateKeyPair",
593 "commandName": "jwt:generate-keys",
594 "description": "Generate key pair",
595 "args": [
596 {
597 "type": "string",
598 "propertyName": "outputDir",
599 "name": "outputDir",
600 "required": false,
601 "description": "Key pair output dir"
602 },
603 {
604 "type": "string",
605 "propertyName": "algorithm",
606 "name": "algorithm",
607 "required": false,
608 "description": "Key pair algorithm"
609 }
610 ],
611 "aliases": [],
612 "flags": []
613 }
614 },
615 "aliases": {}
616}
diff --git a/ace.js b/ace.js
new file mode 100644
index 0000000..a313518
--- /dev/null
+++ b/ace.js
@@ -0,0 +1,24 @@
1/*
2/*
3|--------------------------------------------------------------------------
4| JavaScript entrypoint for running ace commands
5|--------------------------------------------------------------------------
6|
7| Since, we cannot run TypeScript source code using "node" binary, we need
8| a JavaScript entrypoint to run ace commands.
9|
10| This file registers the "ts-node/esm" hook with the Node.js module system
11| and then imports the "bin/console.ts" file.
12|
13*/
14
15/**
16 * Register hook to process TypeScript files using ts-node
17 */
18import { register } from 'node:module'
19register('ts-node/esm', import.meta.url)
20
21/**
22 * Import ace console entrypoint
23 */
24await import('./bin/console.js')
diff --git a/adonisrc.ts b/adonisrc.ts
new file mode 100644
index 0000000..02f47b0
--- /dev/null
+++ b/adonisrc.ts
@@ -0,0 +1,83 @@
1import { defineConfig } from '@adonisjs/core/app'
2
3export default defineConfig({
4 /*
5 |--------------------------------------------------------------------------
6 | Commands
7 |--------------------------------------------------------------------------
8 |
9 | List of ace commands to register from packages. The application commands
10 | will be scanned automatically from the "./commands" directory.
11 |
12 */
13 commands: [
14 () => import('@adonisjs/core/commands'),
15 () => import('@adonisjs/lucid/commands'),
16 () => import('@adonisjs/mail/commands'),
17 () => import('adonis5-jwt/build/commands'),
18 ],
19 /*
20 |--------------------------------------------------------------------------
21 | Preloads
22 |--------------------------------------------------------------------------
23 |
24 | List of modules to import before starting the application.
25 |
26 */
27 preloads: [
28 () => import('./start/routes.js'),
29 () => import('./start/kernel.js'),
30 () => import('./start/events.js'),
31 ],
32 /*
33 |--------------------------------------------------------------------------
34 | Service providers
35 |--------------------------------------------------------------------------
36 |
37 | List of service providers to import and register when booting the
38 | application
39 |
40 */
41 providers: [
42 () => import('./providers/AppProvider.js'),
43 () => import('@adonisjs/core/providers/app_provider'),
44 () => import('@adonisjs/core/providers/hash_provider'),
45 { file: () => import('@adonisjs/core/providers/repl_provider'), environment: ['repl', 'test'] },
46 () => import('@adonisjs/core/providers/edge_provider'),
47 () => import('@adonisjs/lucid/database_provider'),
48 () => import('@adonisjs/auth/auth_provider'),
49 () => import('@adonisjs/shield/shield_provider'),
50 () => import('@adonisjs/session/session_provider'),
51 () => import('@adonisjs/mail/mail_provider'),
52 () => import('adonis5-jwt'),
53 () => import('./providers/LegacyHasherProvider.js'),
54 ],
55 metaFiles: [
56 {
57 pattern: 'resources/views/**/*.edge',
58 reloadServer: false,
59 },
60 {
61 pattern: 'public/**',
62 reloadServer: false,
63 },
64 ],
65 /*
66 |--------------------------------------------------------------------------
67 | Tests
68 |--------------------------------------------------------------------------
69 |
70 | List of test suites to organize tests by their type. Feel free to remove
71 | and add additional suites.
72 |
73 */
74 tests: {
75 suites: [
76 {
77 name: 'functional',
78 files: ['tests/functional/**/*.spec(.ts|.js)'],
79 timeout: 60_000,
80 },
81 ],
82 },
83})
diff --git a/app/Controllers/Http/Api/Static/AnnouncementsController.ts b/app/Controllers/Http/Api/Static/AnnouncementsController.ts
index c20707b..4ae9d0e 100644
--- a/app/Controllers/Http/Api/Static/AnnouncementsController.ts
+++ b/app/Controllers/Http/Api/Static/AnnouncementsController.ts
@@ -1,20 +1,16 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import Application from '@ioc:Adonis/Core/Application'; 2import { app } from '@adonisjs/core/services/app'
3import path from 'node:path'; 3import path from 'node:path'
4import fs from 'fs-extra'; 4import fs from 'fs-extra'
5 5
6export default class AnnouncementsController { 6export default class AnnouncementsController {
7 public async show({ response, params }: HttpContextContract) { 7 public async show({ response, params }: HttpContext) {
8 const announcement = path.join( 8 const announcement = path.join(app.resourcesPath(), 'announcements', `${params.version}.json`)
9 Application.resourcesPath(),
10 'announcements',
11 `${params.version}.json`,
12 );
13 9
14 if (await fs.pathExists(announcement)) { 10 if (await fs.pathExists(announcement)) {
15 return response.download(announcement); 11 return response.download(announcement)
16 } 12 }
17 13
18 return response.status(404).send('No announcement found.'); 14 return response.status(404).send('No announcement found.')
19 } 15 }
20} 16}
diff --git a/app/Controllers/Http/Api/Static/EmptyController.ts b/app/Controllers/Http/Api/Static/EmptyController.ts
index a07790e..ff05b1c 100644
--- a/app/Controllers/Http/Api/Static/EmptyController.ts
+++ b/app/Controllers/Http/Api/Static/EmptyController.ts
@@ -1,7 +1,7 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class EmptyController { 3export default class EmptyController {
4 public async show({ response }: HttpContextContract) { 4 public async show({ response }: HttpContext) {
5 return response.send([]); 5 return response.send([])
6 } 6 }
7} 7}
diff --git a/app/Controllers/Http/Api/Static/FeaturesController.ts b/app/Controllers/Http/Api/Static/FeaturesController.ts
index d471b11..9e14c10 100644
--- a/app/Controllers/Http/Api/Static/FeaturesController.ts
+++ b/app/Controllers/Http/Api/Static/FeaturesController.ts
@@ -1,7 +1,7 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class FeaturesController { 3export default class FeaturesController {
4 public async show({ response }: HttpContextContract) { 4 public async show({ response }: HttpContext) {
5 return response.send({ 5 return response.send({
6 isServiceProxyEnabled: true, 6 isServiceProxyEnabled: true,
7 isWorkspaceEnabled: true, 7 isWorkspaceEnabled: true,
@@ -9,6 +9,6 @@ export default class FeaturesController {
9 isSettingsWSEnabled: false, 9 isSettingsWSEnabled: false,
10 isMagicBarEnabled: true, 10 isMagicBarEnabled: true,
11 isTodosEnabled: true, 11 isTodosEnabled: true,
12 }); 12 })
13 } 13 }
14} 14}
diff --git a/app/Controllers/Http/Dashboard/AccountController.ts b/app/Controllers/Http/Dashboard/AccountController.ts
index 3c4e919..5870f19 100644
--- a/app/Controllers/Http/Dashboard/AccountController.ts
+++ b/app/Controllers/Http/Dashboard/AccountController.ts
@@ -1,29 +1,23 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; 2import { schema, rules, validator } from '@adonisjs/validator'
3import crypto from 'node:crypto'; 3import crypto from 'node:crypto'
4 4
5export default class AccountController { 5export default class AccountController {
6 /** 6 /**
7 * Shows the user account page 7 * Shows the user account page
8 */ 8 */
9 public async show({ auth, view }: HttpContextContract) { 9 public async show({ auth, view }: HttpContext) {
10 return view.render('dashboard/account', { 10 return view.render('dashboard/account', {
11 username: auth.user?.username, 11 username: auth.user?.username,
12 email: auth.user?.email, 12 email: auth.user?.email,
13 lastname: auth.user?.lastname, 13 lastname: auth.user?.lastname,
14 }); 14 })
15 } 15 }
16 16
17 /** 17 /**
18 * Stores user account data 18 * Stores user account data
19 */ 19 */
20 public async store({ 20 public async store({ auth, request, response, session, view }: HttpContext) {
21 auth,
22 request,
23 response,
24 session,
25 view,
26 }: HttpContextContract) {
27 try { 21 try {
28 await validator.validate({ 22 await validator.validate({
29 schema: schema.create({ 23 schema: schema.create({
@@ -48,26 +42,26 @@ export default class AccountController {
48 lastname: schema.string([rules.required()]), 42 lastname: schema.string([rules.required()]),
49 }), 43 }),
50 data: request.only(['username', 'email', 'lastname']), 44 data: request.only(['username', 'email', 'lastname']),
51 }); 45 })
52 } catch (error) { 46 } catch (error) {
53 session.flash(error.messages); 47 session.flash(error.messages)
54 return response.redirect('/user/account'); 48 return response.redirect('/user/account')
55 } 49 }
56 50
57 // Update user account 51 // Update user account
58 const { user } = auth; 52 const { user } = auth
59 if (user) { 53 if (user) {
60 user.username = request.input('username'); 54 user.username = request.input('username')
61 user.lastname = request.input('lastname'); 55 user.lastname = request.input('lastname')
62 user.email = request.input('email'); 56 user.email = request.input('email')
63 if (request.input('password')) { 57 if (request.input('password')) {
64 const hashedPassword = crypto 58 const hashedPassword = crypto
65 .createHash('sha256') 59 .createHash('sha256')
66 .update(request.input('password')) 60 .update(request.input('password'))
67 .digest('base64'); 61 .digest('base64')
68 user.password = hashedPassword; 62 user.password = hashedPassword
69 } 63 }
70 await user.save(); 64 await user.save()
71 } 65 }
72 66
73 return view.render('dashboard/account', { 67 return view.render('dashboard/account', {
@@ -75,6 +69,6 @@ export default class AccountController {
75 lastname: user?.lastname, 69 lastname: user?.lastname,
76 email: user?.email, 70 email: user?.email,
77 success: user !== undefined, 71 success: user !== undefined,
78 }); 72 })
79 } 73 }
80} 74}
diff --git a/app/Controllers/Http/Dashboard/DataController.ts b/app/Controllers/Http/Dashboard/DataController.ts
index f77702f..8a77329 100644
--- a/app/Controllers/Http/Dashboard/DataController.ts
+++ b/app/Controllers/Http/Dashboard/DataController.ts
@@ -1,14 +1,14 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class DataController { 3export default class DataController {
4 /** 4 /**
5 * Display the data page 5 * Display the data page
6 */ 6 */
7 public async show({ view, auth }: HttpContextContract) { 7 public async show({ view, auth }: HttpContext) {
8 const { user } = auth; 8 const { user } = auth
9 9
10 const services = await user?.related('services').query(); 10 const services = await user?.related('services').query()
11 const workspaces = await user?.related('workspaces').query(); 11 const workspaces = await user?.related('workspaces').query()
12 12
13 return view.render('dashboard/data', { 13 return view.render('dashboard/data', {
14 username: user?.username, 14 username: user?.username,
@@ -19,6 +19,6 @@ export default class DataController {
19 stringify: JSON.stringify, 19 stringify: JSON.stringify,
20 services, 20 services,
21 workspaces, 21 workspaces,
22 }); 22 })
23 } 23 }
24} 24}
diff --git a/app/Controllers/Http/Dashboard/DeleteController.ts b/app/Controllers/Http/Dashboard/DeleteController.ts
index ef8188c..bd824b0 100644
--- a/app/Controllers/Http/Dashboard/DeleteController.ts
+++ b/app/Controllers/Http/Dashboard/DeleteController.ts
@@ -1,20 +1,20 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class DeleteController { 3export default class DeleteController {
4 /** 4 /**
5 * Display the delete page 5 * Display the delete page
6 */ 6 */
7 public async show({ view }: HttpContextContract) { 7 public async show({ view }: HttpContext) {
8 return view.render('dashboard/delete'); 8 return view.render('dashboard/delete')
9 } 9 }
10 10
11 /** 11 /**
12 * Delete user and session 12 * Delete user and session
13 */ 13 */
14 public async delete({ auth, response }: HttpContextContract) { 14 public async delete({ auth, response }: HttpContext) {
15 auth.user?.delete(); 15 auth.user?.delete()
16 auth.use('web').logout(); 16 auth.use('web').logout()
17 17
18 return response.redirect('/user/login'); 18 return response.redirect('/user/login')
19 } 19 }
20} 20}
diff --git a/app/Controllers/Http/Dashboard/ExportController.ts b/app/Controllers/Http/Dashboard/ExportController.ts
index 7155eab..5b6df70 100644
--- a/app/Controllers/Http/Dashboard/ExportController.ts
+++ b/app/Controllers/Http/Dashboard/ExportController.ts
@@ -1,33 +1,30 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2 2
3// eslint-disable-next-line @typescript-eslint/no-explicit-any 3// eslint-disable-next-line @typescript-eslint/no-explicit-any
4function deepParseToJSON(obj: any): Record<string, unknown> { 4function deepParseToJSON(obj: any): Record<string, unknown> {
5 if (typeof obj !== 'object' || obj === null) { 5 if (typeof obj !== 'object' || obj === null) {
6 try { 6 try {
7 // Try to parse the object as JSON 7 // Try to parse the object as JSON
8 return JSON.parse(obj) as Record<string, unknown>; 8 return JSON.parse(obj) as Record<string, unknown>
9 } catch { 9 } catch {
10 // If parsing fails, return the original value 10 // If parsing fails, return the original value
11 return obj; 11 return obj
12 } 12 }
13 } 13 }
14 14
15 // If obj is an object, recursively parse its keys 15 // If obj is an object, recursively parse its keys
16 if (Array.isArray(obj)) { 16 if (Array.isArray(obj)) {
17 // If obj is an array, recursively parse each element 17 // If obj is an array, recursively parse each element
18 return obj.map(item => deepParseToJSON(item)) as unknown as Record< 18 return obj.map((item) => deepParseToJSON(item)) as unknown as Record<string, unknown>
19 string,
20 unknown
21 >;
22 } else { 19 } else {
23 // If obj is an object, recursively parse its keys 20 // If obj is an object, recursively parse its keys
24 const parsedObj: Record<string, unknown> = {}; 21 const parsedObj: Record<string, unknown> = {}
25 for (const key in obj) { 22 for (const key in obj) {
26 if (obj.hasOwnProperty(key)) { 23 if (obj.hasOwnProperty(key)) {
27 parsedObj[key] = deepParseToJSON(obj[key]); 24 parsedObj[key] = deepParseToJSON(obj[key])
28 } 25 }
29 } 26 }
30 return parsedObj; 27 return parsedObj
31 } 28 }
32} 29}
33 30
@@ -35,10 +32,10 @@ export default class ExportController {
35 /** 32 /**
36 * Display the export page 33 * Display the export page
37 */ 34 */
38 public async show({ auth, response }: HttpContextContract) { 35 public async show({ auth, response }: HttpContext) {
39 const user = auth.user!; 36 const user = auth.user!
40 const services = await user.related('services').query(); 37 const services = await user.related('services').query()
41 const workspaces = await user.related('workspaces').query(); 38 const workspaces = await user.related('workspaces').query()
42 39
43 const exportData = { 40 const exportData = {
44 username: user.username, 41 username: user.username,
@@ -46,11 +43,11 @@ export default class ExportController {
46 mail: user.email, 43 mail: user.email,
47 services: deepParseToJSON(JSON.parse(JSON.stringify(services))), 44 services: deepParseToJSON(JSON.parse(JSON.stringify(services))),
48 workspaces: deepParseToJSON(JSON.parse(JSON.stringify(workspaces))), 45 workspaces: deepParseToJSON(JSON.parse(JSON.stringify(workspaces))),
49 }; 46 }
50 47
51 return response 48 return response
52 .header('Content-Type', 'application/force-download') 49 .header('Content-Type', 'application/force-download')
53 .header('Content-disposition', 'attachment; filename=export.ferdium-data') 50 .header('Content-disposition', 'attachment; filename=export.ferdium-data')
54 .send(exportData); 51 .send(exportData)
55 } 52 }
56} 53}
diff --git a/app/Controllers/Http/Dashboard/ForgotPasswordController.ts b/app/Controllers/Http/Dashboard/ForgotPasswordController.ts
index da05bbd..f7b1d0e 100644
--- a/app/Controllers/Http/Dashboard/ForgotPasswordController.ts
+++ b/app/Controllers/Http/Dashboard/ForgotPasswordController.ts
@@ -1,41 +1,41 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; 2import { schema, rules, validator } from '@adonisjs/validator'
3import User from 'App/Models/User'; 3import User from '#app/Models/User'
4 4
5export default class ForgotPasswordController { 5export default class ForgotPasswordController {
6 /** 6 /**
7 * Display the forgot password form 7 * Display the forgot password form
8 */ 8 */
9 public async show({ view }: HttpContextContract) { 9 public async show({ view }: HttpContext) {
10 return view.render('dashboard/forgotPassword'); 10 return view.render('dashboard/forgotPassword')
11 } 11 }
12 12
13 /** 13 /**
14 * Send forget password email to user 14 * Send forget password email to user
15 */ 15 */
16 public async forgotPassword({ view, request }: HttpContextContract) { 16 public async forgotPassword({ view, request }: HttpContext) {
17 try { 17 try {
18 await validator.validate({ 18 await validator.validate({
19 schema: schema.create({ 19 schema: schema.create({
20 mail: schema.string([rules.email(), rules.required()]), 20 mail: schema.string([rules.email(), rules.required()]),
21 }), 21 }),
22 data: request.only(['mail']), 22 data: request.only(['mail']),
23 }); 23 })
24 } catch { 24 } catch {
25 return view.render('others/message', { 25 return view.render('others/message', {
26 heading: 'Cannot reset your password', 26 heading: 'Cannot reset your password',
27 text: 'Please enter a valid email address', 27 text: 'Please enter a valid email address',
28 }); 28 })
29 } 29 }
30 30
31 try { 31 try {
32 const user = await User.findByOrFail('email', request.input('mail')); 32 const user = await User.findByOrFail('email', request.input('mail'))
33 await user.forgotPassword(); 33 await user.forgotPassword()
34 } catch {} 34 } catch {}
35 35
36 return view.render('others/message', { 36 return view.render('others/message', {
37 heading: 'Reset password', 37 heading: 'Reset password',
38 text: 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.', 38 text: 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.',
39 }); 39 })
40 } 40 }
41} 41}
diff --git a/app/Controllers/Http/Dashboard/LogOutController.ts b/app/Controllers/Http/Dashboard/LogOutController.ts
index 41cbd31..5d250c4 100644
--- a/app/Controllers/Http/Dashboard/LogOutController.ts
+++ b/app/Controllers/Http/Dashboard/LogOutController.ts
@@ -1,12 +1,12 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class LogOutController { 3export default class LogOutController {
4 /** 4 /**
5 * Login a user 5 * Login a user
6 */ 6 */
7 public async logout({ auth, response }: HttpContextContract) { 7 public async logout({ auth, response }: HttpContext) {
8 auth.logout(); 8 auth.logout()
9 9
10 return response.redirect('/user/login'); 10 return response.redirect('/user/login')
11 } 11 }
12} 12}
diff --git a/app/Controllers/Http/Dashboard/LoginController.ts b/app/Controllers/Http/Dashboard/LoginController.ts
index ffb9eeb..5a54448 100644
--- a/app/Controllers/Http/Dashboard/LoginController.ts
+++ b/app/Controllers/Http/Dashboard/LoginController.ts
@@ -1,26 +1,21 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; 2import { schema, rules, validator } from '@adonisjs/validator'
3import User from 'App/Models/User'; 3import User from '#app/Models/User'
4import crypto from 'node:crypto'; 4import crypto from 'node:crypto'
5import { handleVerifyAndReHash } from '../../../../helpers/PasswordHash'; 5import { handleVerifyAndReHash } from '../../../../helpers/PasswordHash.js'
6 6
7export default class LoginController { 7export default class LoginController {
8 /** 8 /**
9 * Display the login form 9 * Display the login form
10 */ 10 */
11 public async show({ view }: HttpContextContract) { 11 public async show({ view }: HttpContext) {
12 return view.render('dashboard/login'); 12 return view.render('dashboard/login')
13 } 13 }
14 14
15 /** 15 /**
16 * Login a user 16 * Login a user
17 */ 17 */
18 public async login({ 18 public async login({ request, response, auth, session }: HttpContext) {
19 request,
20 response,
21 auth,
22 session,
23 }: HttpContextContract) {
24 try { 19 try {
25 await validator.validate({ 20 await validator.validate({
26 schema: schema.create({ 21 schema: schema.create({
@@ -28,54 +23,51 @@ export default class LoginController {
28 password: schema.string([rules.required()]), 23 password: schema.string([rules.required()]),
29 }), 24 }),
30 data: request.only(['mail', 'password']), 25 data: request.only(['mail', 'password']),
31 }); 26 })
32 } catch { 27 } catch {
33 session.flash({ 28 session.flash({
34 type: 'danger', 29 type: 'danger',
35 message: 'Invalid mail or password', 30 message: 'Invalid mail or password',
36 }); 31 })
37 session.flashExcept(['password']); 32 session.flashExcept(['password'])
38 33
39 return response.redirect('/user/login'); 34 return response.redirect('/user/login')
40 } 35 }
41 36
42 try { 37 try {
43 const { mail, password } = request.all(); 38 const { mail, password } = request.all()
44 39
45 // Check if user with email exists 40 // Check if user with email exists
46 const user = await User.query().where('email', mail).first(); 41 const user = await User.query().where('email', mail).first()
47 if (!user?.email) { 42 if (!user?.email) {
48 throw new Error('User credentials not valid (Invalid email)'); 43 throw new Error('User credentials not valid (Invalid email)')
49 } 44 }
50 45
51 const hashedPassword = crypto 46 const hashedPassword = crypto.createHash('sha256').update(password).digest('base64')
52 .createHash('sha256')
53 .update(password)
54 .digest('base64');
55 47
56 // Verify password 48 // Verify password
57 let isMatchedPassword = false; 49 let isMatchedPassword = false
58 try { 50 try {
59 isMatchedPassword = await handleVerifyAndReHash(user, hashedPassword); 51 isMatchedPassword = await handleVerifyAndReHash(user, hashedPassword)
60 } catch (error) { 52 } catch (error) {
61 return response.internalServerError({ message: error.message }); 53 return response.internalServerError({ message: error.message })
62 } 54 }
63 55
64 if (!isMatchedPassword) { 56 if (!isMatchedPassword) {
65 throw new Error('User credentials not valid (Invalid password)'); 57 throw new Error('User credentials not valid (Invalid password)')
66 } 58 }
67 59
68 await auth.use('web').login(user); 60 await auth.use('web').login(user)
69 61
70 return response.redirect('/user/account'); 62 return response.redirect('/user/account')
71 } catch { 63 } catch {
72 session.flash({ 64 session.flash({
73 type: 'danger', 65 type: 'danger',
74 message: 'Invalid mail or password', 66 message: 'Invalid mail or password',
75 }); 67 })
76 session.flashExcept(['password']); 68 session.flashExcept(['password'])
77 69
78 return response.redirect('/user/login'); 70 return response.redirect('/user/login')
79 } 71 }
80 } 72 }
81} 73}
diff --git a/app/Controllers/Http/Dashboard/ResetPasswordController.ts b/app/Controllers/Http/Dashboard/ResetPasswordController.ts
index 0b9053f..b62b5d2 100644
--- a/app/Controllers/Http/Dashboard/ResetPasswordController.ts
+++ b/app/Controllers/Http/Dashboard/ResetPasswordController.ts
@@ -1,35 +1,30 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema, rules, validator } from '@ioc:Adonis/Core/Validator'; 2import { schema, rules, validator } from '@adonisjs/validator'
3import Token from 'App/Models/Token'; 3import Token from '#app/Models/Token'
4import moment from 'moment'; 4import moment from 'moment'
5import crypto from 'node:crypto'; 5import crypto from 'node:crypto'
6 6
7export default class ResetPasswordController { 7export default class ResetPasswordController {
8 /** 8 /**
9 * Display the reset password form 9 * Display the reset password form
10 */ 10 */
11 public async show({ view, request }: HttpContextContract) { 11 public async show({ view, request }: HttpContext) {
12 const { token } = request.qs(); 12 const { token } = request.qs()
13 13
14 if (token) { 14 if (token) {
15 return view.render('dashboard/resetPassword', { token }); 15 return view.render('dashboard/resetPassword', { token })
16 } 16 }
17 17
18 return view.render('others/message', { 18 return view.render('others/message', {
19 heading: 'Invalid token', 19 heading: 'Invalid token',
20 text: 'Please make sure you are using a valid and recent link to reset your password.', 20 text: 'Please make sure you are using a valid and recent link to reset your password.',
21 }); 21 })
22 } 22 }
23 23
24 /** 24 /**
25 * Resets user password 25 * Resets user password
26 */ 26 */
27 public async resetPassword({ 27 public async resetPassword({ response, request, session, view }: HttpContext) {
28 response,
29 request,
30 session,
31 view,
32 }: HttpContextContract) {
33 try { 28 try {
34 await validator.validate({ 29 await validator.validate({
35 schema: schema.create({ 30 schema: schema.create({
@@ -37,14 +32,14 @@ export default class ResetPasswordController {
37 token: schema.string([rules.required()]), 32 token: schema.string([rules.required()]),
38 }), 33 }),
39 data: request.only(['password', 'password_confirmation', 'token']), 34 data: request.only(['password', 'password_confirmation', 'token']),
40 }); 35 })
41 } catch { 36 } catch {
42 session.flash({ 37 session.flash({
43 type: 'danger', 38 type: 'danger',
44 message: 'Passwords do not match', 39 message: 'Passwords do not match',
45 }); 40 })
46 41
47 return response.redirect(`/user/reset?token=${request.input('token')}`); 42 return response.redirect(`/user/reset?token=${request.input('token')}`)
48 } 43 }
49 44
50 const tokenRow = await Token.query() 45 const tokenRow = await Token.query()
@@ -52,34 +47,30 @@ export default class ResetPasswordController {
52 .where('token', request.input('token')) 47 .where('token', request.input('token'))
53 .where('type', 'forgot_password') 48 .where('type', 'forgot_password')
54 .where('is_revoked', false) 49 .where('is_revoked', false)
55 .where( 50 .where('updated_at', '>=', moment().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'))
56 'updated_at', 51 .first()
57 '>=',
58 moment().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'),
59 )
60 .first();
61 52
62 if (!tokenRow) { 53 if (!tokenRow) {
63 return view.render('others/message', { 54 return view.render('others/message', {
64 heading: 'Cannot reset your password', 55 heading: 'Cannot reset your password',
65 text: 'Please make sure you are using a valid and recent link to reset your password and that your passwords entered match.', 56 text: 'Please make sure you are using a valid and recent link to reset your password and that your passwords entered match.',
66 }); 57 })
67 } 58 }
68 59
69 // Update user password 60 // Update user password
70 const hashedPassword = crypto 61 const hashedPassword = crypto
71 .createHash('sha256') 62 .createHash('sha256')
72 .update(request.input('password')) 63 .update(request.input('password'))
73 .digest('base64'); 64 .digest('base64')
74 tokenRow.user.password = hashedPassword; 65 tokenRow.user.password = hashedPassword
75 await tokenRow.user.save(); 66 await tokenRow.user.save()
76 67
77 // Delete token to prevent it from being used again 68 // Delete token to prevent it from being used again
78 await tokenRow.delete(); 69 await tokenRow.delete()
79 70
80 return view.render('others/message', { 71 return view.render('others/message', {
81 heading: 'Reset password', 72 heading: 'Reset password',
82 text: 'Successfully reset your password. You can now login to your account using your new password.', 73 text: 'Successfully reset your password. You can now login to your account using your new password.',
83 }); 74 })
84 } 75 }
85} 76}
diff --git a/app/Controllers/Http/Dashboard/TransferController.ts b/app/Controllers/Http/Dashboard/TransferController.ts
index b113e50..0296973 100644
--- a/app/Controllers/Http/Dashboard/TransferController.ts
+++ b/app/Controllers/Http/Dashboard/TransferController.ts
@@ -1,8 +1,8 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema, validator } from '@ioc:Adonis/Core/Validator'; 2import { schema, validator } from '@adonisjs/validator'
3import Service from 'App/Models/Service'; 3import Service from '#app/Models/Service'
4import Workspace from 'App/Models/Workspace'; 4import Workspace from '#app/Models/Workspace'
5import { v4 as uuidv4 } from 'uuid'; 5import { v4 as uuidv4 } from 'uuid'
6 6
7const importSchema = schema.create({ 7const importSchema = schema.create({
8 username: schema.string(), 8 username: schema.string(),
@@ -10,58 +10,52 @@ const importSchema = schema.create({
10 mail: schema.string(), 10 mail: schema.string(),
11 services: schema.array().anyMembers(), 11 services: schema.array().anyMembers(),
12 workspaces: schema.array().anyMembers(), 12 workspaces: schema.array().anyMembers(),
13}); 13})
14 14
15export default class TransferController { 15export default class TransferController {
16 /** 16 /**
17 * Display the transfer page 17 * Display the transfer page
18 */ 18 */
19 public async show({ view }: HttpContextContract) { 19 public async show({ view }: HttpContext) {
20 return view.render('dashboard/transfer'); 20 return view.render('dashboard/transfer')
21 } 21 }
22 22
23 public async import({ 23 public async import({ auth, request, response, session, view }: HttpContext) {
24 auth, 24 let file
25 request,
26 response,
27 session,
28 view,
29 }: HttpContextContract) {
30 let file;
31 try { 25 try {
32 file = await validator.validate({ 26 file = await validator.validate({
33 schema: importSchema, 27 schema: importSchema,
34 data: JSON.parse(request.body().file), 28 data: JSON.parse(request.body().file),
35 }); 29 })
36 } catch { 30 } catch {
37 session.flash({ 31 session.flash({
38 message: 'Invalid Ferdium account file', 32 message: 'Invalid Ferdium account file',
39 }); 33 })
40 34
41 return response.redirect('/user/transfer'); 35 return response.redirect('/user/transfer')
42 } 36 }
43 37
44 if (!file?.services || !file.workspaces) { 38 if (!file?.services || !file.workspaces) {
45 session.flash({ 39 session.flash({
46 type: 'danger', 40 type: 'danger',
47 message: 'Invalid Ferdium account file (2)', 41 message: 'Invalid Ferdium account file (2)',
48 }); 42 })
49 return response.redirect('/user/transfer'); 43 return response.redirect('/user/transfer')
50 } 44 }
51 45
52 const serviceIdTranslation = {}; 46 const serviceIdTranslation = {}
53 47
54 // Import services 48 // Import services
55 try { 49 try {
56 for (const service of file.services) { 50 for (const service of file.services) {
57 // Get new, unused uuid 51 // Get new, unused uuid
58 let serviceId; 52 let serviceId
59 do { 53 do {
60 serviceId = uuidv4(); 54 serviceId = uuidv4()
61 } while ( 55 } while (
62 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member 56 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member
63 (await Service.query().where('serviceId', serviceId)).length > 0 57 (await Service.query().where('serviceId', serviceId)).length > 0
64 ); 58 )
65 59
66 // eslint-disable-next-line no-await-in-loop 60 // eslint-disable-next-line no-await-in-loop
67 await Service.create({ 61 await Service.create({
@@ -73,38 +67,37 @@ export default class TransferController {
73 typeof service.settings === 'string' 67 typeof service.settings === 'string'
74 ? service.settings 68 ? service.settings
75 : JSON.stringify(service.settings), 69 : JSON.stringify(service.settings),
76 }); 70 })
77 71
78 // @ts-expect-error Element implicitly has an 'any' type because expression of type 'any' can't be used to index type '{}' 72 // @ts-expect-error Element implicitly has an 'any' type because expression of type 'any' can't be used to index type '{}'
79 serviceIdTranslation[service.service_id || service.serviceId] = 73 serviceIdTranslation[service.service_id || service.serviceId] = serviceId
80 serviceId;
81 } 74 }
82 } catch (error) { 75 } catch (error) {
83 // eslint-disable-next-line no-console 76 // eslint-disable-next-line no-console
84 console.log(error); 77 console.log(error)
85 const errorMessage = `Could not import your services into our system.\nError: ${error}`; 78 const errorMessage = `Could not import your services into our system.\nError: ${error}`
86 return view.render('others/message', { 79 return view.render('others/message', {
87 heading: 'Error while importing', 80 heading: 'Error while importing',
88 text: errorMessage, 81 text: errorMessage,
89 }); 82 })
90 } 83 }
91 84
92 // Import workspaces 85 // Import workspaces
93 try { 86 try {
94 for (const workspace of file.workspaces) { 87 for (const workspace of file.workspaces) {
95 let workspaceId; 88 let workspaceId
96 89
97 do { 90 do {
98 workspaceId = uuidv4(); 91 workspaceId = uuidv4()
99 } while ( 92 } while (
100 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member 93 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member
101 (await Workspace.query().where('workspaceId', workspaceId)).length > 0 94 (await Workspace.query().where('workspaceId', workspaceId)).length > 0
102 ); 95 )
103 96
104 const services = workspace.services.map( 97 const services = workspace.services.map(
105 // @ts-expect-error Parameter 'service' implicitly has an 'any' type. 98 // @ts-expect-error Parameter 'service' implicitly has an 'any' type.
106 service => serviceIdTranslation[service], 99 (service) => serviceIdTranslation[service]
107 ); 100 )
108 101
109 // eslint-disable-next-line no-await-in-loop 102 // eslint-disable-next-line no-await-in-loop
110 await Workspace.create({ 103 await Workspace.create({
@@ -114,22 +107,20 @@ export default class TransferController {
114 order: workspace.order, 107 order: workspace.order,
115 services: JSON.stringify(services), 108 services: JSON.stringify(services),
116 data: 109 data:
117 typeof workspace.data === 'string' 110 typeof workspace.data === 'string' ? workspace.data : JSON.stringify(workspace.data),
118 ? workspace.data 111 })
119 : JSON.stringify(workspace.data),
120 });
121 } 112 }
122 } catch (error) { 113 } catch (error) {
123 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`; 114 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`
124 return view.render('others/message', { 115 return view.render('others/message', {
125 heading: 'Error while importing', 116 heading: 'Error while importing',
126 text: errorMessage, 117 text: errorMessage,
127 }); 118 })
128 } 119 }
129 120
130 return view.render('others/message', { 121 return view.render('others/message', {
131 heading: 'Successfully imported', 122 heading: 'Successfully imported',
132 text: 'Your account has been imported, you can now login as usual!', 123 text: 'Your account has been imported, you can now login as usual!',
133 }); 124 })
134 } 125 }
135} 126}
diff --git a/app/Controllers/Http/DashboardController.ts b/app/Controllers/Http/DashboardController.ts
index a6f5b44..2a9fb13 100644
--- a/app/Controllers/Http/DashboardController.ts
+++ b/app/Controllers/Http/DashboardController.ts
@@ -1,4 +1,4 @@
1// import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' 1// import type { HttpContext } from '@adonisjs/core/http';
2 2
3export default class DashboardController {} 3export default class DashboardController {}
4 4
diff --git a/app/Controllers/Http/HealthController.ts b/app/Controllers/Http/HealthController.ts
index bf185d8..59094e2 100644
--- a/app/Controllers/Http/HealthController.ts
+++ b/app/Controllers/Http/HealthController.ts
@@ -5,6 +5,6 @@ export default class HealthController {
5 return { 5 return {
6 api: 'success', 6 api: 'success',
7 db: 'success', 7 db: 'success',
8 }; 8 }
9 } 9 }
10} 10}
diff --git a/app/Controllers/Http/HomeController.ts b/app/Controllers/Http/HomeController.ts
index dbe9fbd..669d970 100644
--- a/app/Controllers/Http/HomeController.ts
+++ b/app/Controllers/Http/HomeController.ts
@@ -1,9 +1,9 @@
1// import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' 1// import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class HomeController { 3export default class HomeController {
4 public async index() { 4 public async index() {
5 // TODO: Actually do something instead of alwayas returning success. 5 // TODO: Actually do something instead of alwayas returning success.
6 6
7 return { hello: 'world' }; 7 return { hello: 'world' }
8 } 8 }
9} 9}
diff --git a/app/Controllers/Http/RecipeController.ts b/app/Controllers/Http/RecipeController.ts
index 5186a11..e43bcf8 100644
--- a/app/Controllers/Http/RecipeController.ts
+++ b/app/Controllers/Http/RecipeController.ts
@@ -1,13 +1,13 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import fs from 'fs-extra'; 2import fs from 'fs-extra'
3import Application from '@ioc:Adonis/Core/Application'; 3import { app } from '@adonisjs/core/services/app'
4import path from 'node:path'; 4import path from 'node:path'
5import Recipe from 'App/Models/Recipe'; 5import Recipe from '#app/Models/Recipe'
6import { isCreationEnabled } from 'Config/app'; 6import { isCreationEnabled } from '#config/app'
7import { validator, schema, rules } from '@ioc:Adonis/Core/Validator'; 7import { validator, schema, rules } from '@adonisjs/validator'
8import targz from 'targz'; 8import targz from 'targz'
9import semver from 'semver'; 9import semver from 'semver'
10import Drive from '@ioc:Adonis/Core/Drive'; 10import Drive from '@ioc:Adonis/Core/Drive'
11 11
12// TODO: This file needs to be refactored and cleaned up to include types 12// TODO: This file needs to be refactored and cleaned up to include types
13 13
@@ -18,17 +18,17 @@ const createSchema = schema.create({
18 // author: 'required|accepted', 18 // author: 'required|accepted',
19 author: schema.string(), 19 author: schema.string(),
20 svg: schema.string([rules.url()]), 20 svg: schema.string([rules.url()]),
21}); 21})
22 22
23const searchSchema = schema.create({ 23const searchSchema = schema.create({
24 needle: schema.string(), 24 needle: schema.string(),
25}); 25})
26 26
27const downloadSchema = schema.create({ 27const downloadSchema = schema.create({
28 // TODO: Check if this is correct 28 // TODO: Check if this is correct
29 // recipe: 'required|accepted', 29 // recipe: 'required|accepted',
30 recipe: schema.string(), 30 recipe: schema.string(),
31}); 31})
32 32
33const compress = (src: string, dest: string) => 33const compress = (src: string, dest: string) =>
34 new Promise((resolve, reject) => { 34 new Promise((resolve, reject) => {
@@ -37,87 +37,76 @@ const compress = (src: string, dest: string) =>
37 src, 37 src,
38 dest, 38 dest,
39 }, 39 },
40 err => { 40 (err) => {
41 if (err) { 41 if (err) {
42 reject(err); 42 reject(err)
43 } else { 43 } else {
44 resolve(dest); 44 resolve(dest)
45 } 45 }
46 }, 46 }
47 ); 47 )
48 }); 48 })
49 49
50export default class RecipesController { 50export default class RecipesController {
51 // List official and custom recipes 51 // List official and custom recipes
52 public async list({ response }: HttpContextContract) { 52 public async list({ response }: HttpContext) {
53 const officialRecipes = fs.readJsonSync( 53 const officialRecipes = fs.readJsonSync(path.join(app.appRoot, 'recipes', 'all.json'))
54 path.join(Application.appRoot, 'recipes', 'all.json'), 54 const customRecipesArray = await Recipe.all()
55 ); 55 const customRecipes = customRecipesArray.map((recipe) => ({
56 const customRecipesArray = await Recipe.all();
57 const customRecipes = customRecipesArray.map(recipe => ({
58 id: recipe.recipeId, 56 id: recipe.recipeId,
59 name: recipe.name, 57 name: recipe.name,
60 ...(typeof recipe.data === 'string' 58 ...(typeof recipe.data === 'string' ? JSON.parse(recipe.data) : recipe.data),
61 ? JSON.parse(recipe.data) 59 }))
62 : recipe.data),
63 }));
64 60
65 const recipes = [...officialRecipes, ...customRecipes]; 61 const recipes = [...officialRecipes, ...customRecipes]
66 62
67 return response.send(recipes); 63 return response.send(recipes)
68 } 64 }
69 65
70 // TODO: Test this endpoint 66 // TODO: Test this endpoint
71 // Create a new recipe using the new.html page 67 // Create a new recipe using the new.html page
72 public async create({ request, response }: HttpContextContract) { 68 public async create({ request, response }: HttpContext) {
73 // Check if recipe creation is enabled 69 // Check if recipe creation is enabled
74 if (isCreationEnabled === 'false') { 70 if (isCreationEnabled === 'false') {
75 return response.send( 71 return response.send("This server doesn't allow the creation of new recipes.")
76 'This server doesn\'t allow the creation of new recipes.',
77 );
78 } 72 }
79 73
80 // Validate user input 74 // Validate user input
81 let data; 75 let data
82 try { 76 try {
83 data = await request.validate({ schema: createSchema }); 77 data = await request.validate({ schema: createSchema })
84 } catch (error) { 78 } catch (error) {
85 return response.status(401).send({ 79 return response.status(401).send({
86 message: 'Invalid POST arguments', 80 message: 'Invalid POST arguments',
87 messages: error.messages, 81 messages: error.messages,
88 status: 401, 82 status: 401,
89 }); 83 })
90 } 84 }
91 85
92 if (!data.id) { 86 if (!data.id) {
93 return response.send('Please provide an ID'); 87 return response.send('Please provide an ID')
94 } 88 }
95 89
96 // Check for invalid characters 90 // Check for invalid characters
97 if (/\.+/.test(data.id) || /\/+/.test(data.id)) { 91 if (/\.+/.test(data.id) || /\/+/.test(data.id)) {
98 return response.send( 92 return response.send('Invalid recipe name. Your recipe name may not contain "." or "/"')
99 'Invalid recipe name. Your recipe name may not contain "." or "/"',
100 );
101 } 93 }
102 94
103 // Clear temporary recipe folder 95 // Clear temporary recipe folder
104 await fs.emptyDir(Application.tmpPath('recipe')); 96 await fs.emptyDir(app.tmpPath('recipe'))
105 97
106 // Move uploaded files to temporary path 98 // Move uploaded files to temporary path
107 const files = request.file('files'); 99 const files = request.file('files')
108 if (!files) { 100 if (!files) {
109 return response.abort('Error processsing files.'); 101 return response.abort('Error processsing files.')
110 } 102 }
111 await files.move(Application.tmpPath('recipe')); 103 await files.move(app.tmpPath('recipe'))
112 104
113 // Compress files to .tar.gz file 105 // Compress files to .tar.gz file
114 const source = Application.tmpPath('recipe'); 106 const source = app.tmpPath('recipe')
115 const destination = path.join( 107 const destination = path.join(app.appRoot, `/recipes/archives/${data.id}.tar.gz`)
116 Application.appRoot,
117 `/recipes/archives/${data.id}.tar.gz`,
118 );
119 108
120 compress(source, destination); 109 compress(source, destination)
121 110
122 // Create recipe in db 111 // Create recipe in db
123 await Recipe.create({ 112 await Recipe.create({
@@ -132,123 +121,111 @@ export default class RecipesController {
132 svg: data.svg, 121 svg: data.svg,
133 }, 122 },
134 }), 123 }),
135 }); 124 })
136 125
137 return response.send('Created new recipe'); 126 return response.send('Created new recipe')
138 } 127 }
139 128
140 // Search official and custom recipes 129 // Search official and custom recipes
141 public async search({ request, response }: HttpContextContract) { 130 public async search({ request, response }: HttpContext) {
142 // Validate user input 131 // Validate user input
143 let data; 132 let data
144 try { 133 try {
145 data = await request.validate({ schema: searchSchema }); 134 data = await request.validate({ schema: searchSchema })
146 } catch (error) { 135 } catch (error) {
147 return response.status(401).send({ 136 return response.status(401).send({
148 message: 'Please provide a needle', 137 message: 'Please provide a needle',
149 messages: error.messages, 138 messages: error.messages,
150 status: 401, 139 status: 401,
151 }); 140 })
152 } 141 }
153 142
154 const { needle } = data; 143 const { needle } = data
155 144
156 // Get results 145 // Get results
157 let results; 146 let results
158 147
159 if (needle === 'ferdium:custom') { 148 if (needle === 'ferdium:custom') {
160 const dbResults = await Recipe.all(); 149 const dbResults = await Recipe.all()
161 results = dbResults.map(recipe => ({ 150 results = dbResults.map((recipe) => ({
162 id: recipe.recipeId, 151 id: recipe.recipeId,
163 name: recipe.name, 152 name: recipe.name,
164 ...(typeof recipe.data === 'string' 153 ...(typeof recipe.data === 'string' ? JSON.parse(recipe.data) : recipe.data),
165 ? JSON.parse(recipe.data) 154 }))
166 : recipe.data),
167 }));
168 } else { 155 } else {
169 const localResultsArray = await Recipe.query().where( 156 const localResultsArray = await Recipe.query().where('name', 'LIKE', `%${needle}%`)
170 'name', 157 results = localResultsArray.map((recipe) => ({
171 'LIKE',
172 `%${needle}%`,
173 );
174 results = localResultsArray.map(recipe => ({
175 id: recipe.recipeId, 158 id: recipe.recipeId,
176 name: recipe.name, 159 name: recipe.name,
177 ...(typeof recipe.data === 'string' 160 ...(typeof recipe.data === 'string' ? JSON.parse(recipe.data) : recipe.data),
178 ? JSON.parse(recipe.data) 161 }))
179 : recipe.data),
180 }));
181 } 162 }
182 163
183 return response.send(results); 164 return response.send(results)
184 } 165 }
185 166
186 public popularRecipes({ response }: HttpContextContract) { 167 public popularRecipes({ response }: HttpContext) {
187 return response.send( 168 return response.send(
188 fs 169 fs
189 .readJsonSync(path.join(Application.appRoot, 'recipes', 'all.json')) 170 .readJsonSync(path.join(app.appRoot, 'recipes', 'all.json'))
190 // eslint-disable-next-line @typescript-eslint/no-explicit-any 171 // eslint-disable-next-line @typescript-eslint/no-explicit-any
191 .filter((recipe: any) => recipe.featured), 172 .filter((recipe: any) => recipe.featured)
192 ); 173 )
193 } 174 }
194 175
195 // TODO: test this endpoint 176 // TODO: test this endpoint
196 public update({ request, response }: HttpContextContract) { 177 public update({ request, response }: HttpContext) {
197 const updates = []; 178 const updates = []
198 const recipes = request.all(); 179 const recipes = request.all()
199 const allJson = fs.readJsonSync( 180 const allJson = fs.readJsonSync(path.join(app.appRoot, 'recipes', 'all.json'))
200 path.join(Application.appRoot, 'recipes', 'all.json'),
201 );
202 181
203 for (const recipe of Object.keys(recipes)) { 182 for (const recipe of Object.keys(recipes)) {
204 const version = recipes[recipe]; 183 const version = recipes[recipe]
205 184
206 // Find recipe in local recipe repository 185 // Find recipe in local recipe repository
207 // eslint-disable-next-line @typescript-eslint/no-explicit-any 186 // eslint-disable-next-line @typescript-eslint/no-explicit-any
208 const localRecipe = allJson.find((r: any) => r.id === recipe); 187 const localRecipe = allJson.find((r: any) => r.id === recipe)
209 if (localRecipe && semver.lt(version, localRecipe.version)) { 188 if (localRecipe && semver.lt(version, localRecipe.version)) {
210 updates.push(recipe); 189 updates.push(recipe)
211 } 190 }
212 } 191 }
213 192
214 return response.send(updates); 193 return response.send(updates)
215 } 194 }
216 195
217 // TODO: test this endpoint 196 // TODO: test this endpoint
218 // Download a recipe 197 // Download a recipe
219 public async download({ response, params }: HttpContextContract) { 198 public async download({ response, params }: HttpContext) {
220 // Validate user input 199 // Validate user input
221 let data; 200 let data
222 try { 201 try {
223 data = await validator.validate({ 202 data = await validator.validate({
224 data: params, 203 data: params,
225 schema: downloadSchema, 204 schema: downloadSchema,
226 }); 205 })
227 } catch (error) { 206 } catch (error) {
228 return response.status(401).send({ 207 return response.status(401).send({
229 message: 'Please provide a recipe ID', 208 message: 'Please provide a recipe ID',
230 messages: error.messages, 209 messages: error.messages,
231 status: 401, 210 status: 401,
232 }); 211 })
233 } 212 }
234 213
235 const service = data.recipe; 214 const service = data.recipe
236 215
237 // Check for invalid characters 216 // Check for invalid characters
238 if (/\.+/.test(service) || /\/+/.test(service)) { 217 if (/\.+/.test(service) || /\/+/.test(service)) {
239 return response.send('Invalid recipe name'); 218 return response.send('Invalid recipe name')
240 } 219 }
241 220
242 // Check if recipe exists in recipes folder 221 // Check if recipe exists in recipes folder
243 if (await Drive.exists(`${service}.tar.gz`)) { 222 if (await Drive.exists(`${service}.tar.gz`)) {
244 return response 223 return response.type('.tar.gz').send(await Drive.get(`${service}.tar.gz`))
245 .type('.tar.gz')
246 .send(await Drive.get(`${service}.tar.gz`));
247 } 224 }
248 225
249 return response.status(400).send({ 226 return response.status(400).send({
250 message: 'Recipe not found', 227 message: 'Recipe not found',
251 code: 'recipe-not-found', 228 code: 'recipe-not-found',
252 }); 229 })
253 } 230 }
254} 231}
diff --git a/app/Controllers/Http/ServiceController.ts b/app/Controllers/Http/ServiceController.ts
index 76e72e4..9988244 100644
--- a/app/Controllers/Http/ServiceController.ts
+++ b/app/Controllers/Http/ServiceController.ts
@@ -1,49 +1,49 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema } from '@ioc:Adonis/Core/Validator'; 2import { schema } from '@adonisjs/validator'
3import Service from 'App/Models/Service'; 3import Service from '#app/Models/Service'
4import { url } from 'Config/app'; 4import { url } from '#config/app'
5import { v4 as uuid } from 'uuid'; 5import { v4 as uuid } from 'uuid'
6import * as fs from 'fs-extra'; 6import * as fs from 'fs-extra'
7import path from 'node:path'; 7import path from 'node:path'
8import Application from '@ioc:Adonis/Core/Application'; 8import { app } from '@adonisjs/core/services/app'
9import sanitize from 'sanitize-filename'; 9import sanitize from 'sanitize-filename'
10 10
11const createSchema = schema.create({ 11const createSchema = schema.create({
12 name: schema.string(), 12 name: schema.string(),
13 recipeId: schema.string(), 13 recipeId: schema.string(),
14}); 14})
15 15
16export default class ServiceController { 16export default class ServiceController {
17 // Create a new service for user 17 // Create a new service for user
18 public async create({ request, response, auth }: HttpContextContract) { 18 public async create({ request, response, auth }: HttpContext) {
19 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 19 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
20 const user = auth.user ?? request.user; 20 const user = auth.user ?? request.user
21 21
22 if (!user) { 22 if (!user) {
23 return response.unauthorized('Missing or invalid api token'); 23 return response.unauthorized('Missing or invalid api token')
24 } 24 }
25 25
26 // Validate user input 26 // Validate user input
27 const data = request.all(); 27 const data = request.all()
28 28
29 try { 29 try {
30 await request.validate({ schema: createSchema }); 30 await request.validate({ schema: createSchema })
31 } catch (error) { 31 } catch (error) {
32 return response.status(401).send({ 32 return response.status(401).send({
33 message: 'Invalid POST arguments', 33 message: 'Invalid POST arguments',
34 messages: error.messages, 34 messages: error.messages,
35 status: 401, 35 status: 401,
36 }); 36 })
37 } 37 }
38 38
39 // Get new, unused uuid 39 // Get new, unused uuid
40 let serviceId; 40 let serviceId
41 do { 41 do {
42 serviceId = uuid(); 42 serviceId = uuid()
43 } while ( 43 } while (
44 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member 44 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member
45 (await Service.query().where('serviceId', serviceId)).length > 0 45 (await Service.query().where('serviceId', serviceId)).length > 0
46 ); 46 )
47 47
48 await Service.create({ 48 await Service.create({
49 userId: user.id, 49 userId: user.id,
@@ -51,7 +51,7 @@ export default class ServiceController {
51 name: data.name, 51 name: data.name,
52 recipeId: data.recipeId, 52 recipeId: data.recipeId,
53 settings: JSON.stringify(data), 53 settings: JSON.stringify(data),
54 }); 54 })
55 55
56 return response.send({ 56 return response.send({
57 data: { 57 data: {
@@ -72,28 +72,26 @@ export default class ServiceController {
72 ...data, 72 ...data,
73 }, 73 },
74 status: ['created'], 74 status: ['created'],
75 }); 75 })
76 } 76 }
77 77
78 // List all services a user has created 78 // List all services a user has created
79 public async list({ request, response, auth }: HttpContextContract) { 79 public async list({ request, response, auth }: HttpContext) {
80 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 80 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
81 const user = auth.user ?? request.user; 81 const user = auth.user ?? request.user
82 82
83 if (!user) { 83 if (!user) {
84 return response.unauthorized('Missing or invalid api token'); 84 return response.unauthorized('Missing or invalid api token')
85 } 85 }
86 86
87 const { id } = user; 87 const { id } = user
88 const services = await user.related('services').query(); 88 const services = await user.related('services').query()
89 89
90 // Convert to array with all data Franz wants 90 // Convert to array with all data Franz wants
91 // eslint-disable-next-line @typescript-eslint/no-explicit-any 91 // eslint-disable-next-line @typescript-eslint/no-explicit-any
92 const servicesArray = services.map((service: any) => { 92 const servicesArray = services.map((service: any) => {
93 const settings = 93 const settings =
94 typeof service.settings === 'string' 94 typeof service.settings === 'string' ? JSON.parse(service.settings) : service.settings
95 ? JSON.parse(service.settings)
96 : service.settings;
97 95
98 return { 96 return {
99 customRecipe: false, 97 customRecipe: false,
@@ -110,99 +108,87 @@ export default class ServiceController {
110 iconUrl: settings.iconId 108 iconUrl: settings.iconId
111 ? `${url}/v1/icon/${settings.iconId}` 109 ? `${url}/v1/icon/${settings.iconId}`
112 : // eslint-disable-next-line unicorn/no-null 110 : // eslint-disable-next-line unicorn/no-null
113 null, 111 null,
114 id: service.serviceId, 112 id: service.serviceId,
115 name: service.name, 113 name: service.name,
116 recipeId: service.recipeId, 114 recipeId: service.recipeId,
117 userId: id, 115 userId: id,
118 }; 116 }
119 }); 117 })
120 118
121 return response.send(servicesArray); 119 return response.send(servicesArray)
122 } 120 }
123 121
124 public async delete({ 122 public async delete({ request, params, auth, response }: HttpContext) {
125 request,
126 params,
127 auth,
128 response,
129 }: HttpContextContract) {
130 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 123 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
131 const user = auth.user ?? request.user; 124 const user = auth.user ?? request.user
132 125
133 if (!user) { 126 if (!user) {
134 return response.unauthorized('Missing or invalid api token'); 127 return response.unauthorized('Missing or invalid api token')
135 } 128 }
136 129
137 // Update data in database 130 // Update data in database
138 await Service.query() 131 await Service.query().where('serviceId', params.id).where('userId', user.id).delete()
139 .where('serviceId', params.id)
140 .where('userId', user.id)
141 .delete();
142 132
143 return response.send({ 133 return response.send({
144 message: 'Sucessfully deleted service', 134 message: 'Sucessfully deleted service',
145 status: 200, 135 status: 200,
146 }); 136 })
147 } 137 }
148 138
149 // TODO: Test if icon upload works 139 // TODO: Test if icon upload works
150 public async edit({ request, response, auth, params }: HttpContextContract) { 140 public async edit({ request, response, auth, params }: HttpContext) {
151 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 141 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
152 const user = auth.user ?? request.user; 142 const user = auth.user ?? request.user
153 143
154 if (!user) { 144 if (!user) {
155 return response.unauthorized('Missing or invalid api token'); 145 return response.unauthorized('Missing or invalid api token')
156 } 146 }
157 147
158 const { id } = params; 148 const { id } = params
159 const service = await Service.query() 149 const service = await Service.query()
160 .where('serviceId', id) 150 .where('serviceId', id)
161 .where('userId', user.id) 151 .where('userId', user.id)
162 .firstOrFail(); 152 .firstOrFail()
163 153
164 if (request.file('icon')) { 154 if (request.file('icon')) {
165 // Upload custom service icon 155 // Upload custom service icon
166 const icon = request.file('icon', { 156 const icon = request.file('icon', {
167 extnames: ['png', 'jpg', 'jpeg', 'svg'], 157 extnames: ['png', 'jpg', 'jpeg', 'svg'],
168 size: '2mb', 158 size: '2mb',
169 }); 159 })
170 160
171 if (icon === null) { 161 if (icon === null) {
172 return response.badRequest('Icon not uploaded.'); 162 return response.badRequest('Icon not uploaded.')
173 } 163 }
174 164
175 const settings = 165 const settings =
176 typeof service.settings === 'string' 166 typeof service.settings === 'string' ? JSON.parse(service.settings) : service.settings
177 ? JSON.parse(service.settings)
178 : service.settings;
179 167
180 let iconId; 168 let iconId
181 do { 169 do {
182 iconId = uuid() + uuid(); 170 iconId = uuid() + uuid()
183 } while ( 171 } while (
184 // eslint-disable-next-line no-await-in-loop 172 // eslint-disable-next-line no-await-in-loop
185 await fs.exists(path.join(Application.tmpPath('uploads'), iconId)) 173 await fs.exists(path.join(app.tmpPath('uploads'), iconId))
186 ); 174 )
187 iconId = `${iconId}.${icon.extname}`; 175 iconId = `${iconId}.${icon.extname}`
188 176
189 await icon.move(Application.tmpPath('uploads'), { 177 await icon.move(app.tmpPath('uploads'), {
190 name: iconId, 178 name: iconId,
191 overwrite: true, 179 overwrite: true,
192 }); 180 })
193 181
194 if (icon.state !== 'moved') { 182 if (icon.state !== 'moved') {
195 return response.status(500).send(icon.errors); 183 return response.status(500).send(icon.errors)
196 } 184 }
197 185
198 const newSettings = { 186 const newSettings = {
199 ...settings, 187 ...settings,
200 188
201 iconId, 189 iconId,
202 customIconVersion: settings?.customIconVersion 190 customIconVersion: settings?.customIconVersion ? settings.customIconVersion + 1 : 1,
203 ? settings.customIconVersion + 1 191 }
204 : 1,
205 };
206 192
207 // Update data in database 193 // Update data in database
208 await Service.query() 194 await Service.query()
@@ -211,7 +197,7 @@ export default class ServiceController {
211 .update({ 197 .update({
212 name: service.name, 198 name: service.name,
213 settings: JSON.stringify(newSettings), 199 settings: JSON.stringify(newSettings),
214 }); 200 })
215 201
216 return response.send({ 202 return response.send({
217 data: { 203 data: {
@@ -222,28 +208,24 @@ export default class ServiceController {
222 userId: user.id, 208 userId: user.id,
223 }, 209 },
224 status: ['updated'], 210 status: ['updated'],
225 }); 211 })
226 } 212 }
227 // Update service info 213 // Update service info
228 const data = request.all(); 214 const data = request.all()
229 215
230 const settings = { 216 const settings = {
231 ...(typeof service.settings === 'string' 217 ...(typeof service.settings === 'string' ? JSON.parse(service.settings) : service.settings),
232 ? JSON.parse(service.settings)
233 : service.settings),
234 ...data, 218 ...data,
235 }; 219 }
236 220
237 if (settings.customIcon === 'delete') { 221 if (settings.customIcon === 'delete') {
238 fs.remove( 222 fs.remove(path.join(app.tmpPath('uploads'), settings.iconId)).catch((error) => {
239 path.join(Application.tmpPath('uploads'), settings.iconId), 223 console.error(error)
240 ).catch(error => { 224 })
241 console.error(error); 225
242 }); 226 settings.iconId = undefined
243 227 settings.customIconVersion = undefined
244 settings.iconId = undefined; 228 settings.customIcon = ''
245 settings.customIconVersion = undefined;
246 settings.customIcon = '';
247 } 229 }
248 230
249 // Update data in database 231 // Update data in database
@@ -253,13 +235,13 @@ export default class ServiceController {
253 .update({ 235 .update({
254 name: data.name, 236 name: data.name,
255 settings: JSON.stringify(settings), 237 settings: JSON.stringify(settings),
256 }); 238 })
257 239
258 // Get updated row 240 // Get updated row
259 const serviceUpdated = await Service.query() 241 const serviceUpdated = await Service.query()
260 .where('serviceId', id) 242 .where('serviceId', id)
261 .where('userId', user.id) 243 .where('userId', user.id)
262 .firstOrFail(); 244 .firstOrFail()
263 245
264 return response.send({ 246 return response.send({
265 data: { 247 data: {
@@ -270,19 +252,19 @@ export default class ServiceController {
270 userId: user.id, 252 userId: user.id,
271 }, 253 },
272 status: ['updated'], 254 status: ['updated'],
273 }); 255 })
274 } 256 }
275 257
276 // TODO: Test if this works 258 // TODO: Test if this works
277 public async reorder({ request, response, auth }: HttpContextContract) { 259 public async reorder({ request, response, auth }: HttpContext) {
278 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 260 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
279 const user = auth.user ?? request.user; 261 const user = auth.user ?? request.user
280 262
281 if (!user) { 263 if (!user) {
282 return response.unauthorized('Missing or invalid api token'); 264 return response.unauthorized('Missing or invalid api token')
283 } 265 }
284 266
285 const data = request.all(); 267 const data = request.all()
286 268
287 for (const service of Object.keys(data)) { 269 for (const service of Object.keys(data)) {
288 // Get current settings from db 270 // Get current settings from db
@@ -290,14 +272,14 @@ export default class ServiceController {
290 .where('serviceId', service) 272 .where('serviceId', service)
291 .where('userId', user.id) 273 .where('userId', user.id)
292 274
293 .firstOrFail(); 275 .firstOrFail()
294 276
295 const settings = { 277 const settings = {
296 ...(typeof serviceData.settings === 'string' 278 ...(typeof serviceData.settings === 'string'
297 ? JSON.parse(serviceData.settings) 279 ? JSON.parse(serviceData.settings)
298 : serviceData.settings), 280 : serviceData.settings),
299 order: data[service], 281 order: data[service],
300 }; 282 }
301 283
302 // Update data in database 284 // Update data in database
303 await Service.query() // eslint-disable-line no-await-in-loop 285 await Service.query() // eslint-disable-line no-await-in-loop
@@ -305,18 +287,16 @@ export default class ServiceController {
305 .where('userId', user.id) 287 .where('userId', user.id)
306 .update({ 288 .update({
307 settings: JSON.stringify(settings), 289 settings: JSON.stringify(settings),
308 }); 290 })
309 } 291 }
310 292
311 // Get new services 293 // Get new services
312 const services = await user.related('services').query(); 294 const services = await user.related('services').query()
313 // Convert to array with all data Franz wants 295 // Convert to array with all data Franz wants
314 // eslint-disable-next-line @typescript-eslint/no-explicit-any 296 // eslint-disable-next-line @typescript-eslint/no-explicit-any
315 const servicesArray = services.map((service: any) => { 297 const servicesArray = services.map((service: any) => {
316 const settings = 298 const settings =
317 typeof service.settings === 'string' 299 typeof service.settings === 'string' ? JSON.parse(service.settings) : service.settings
318 ? JSON.parse(service.settings)
319 : service.settings;
320 300
321 return { 301 return {
322 customRecipe: false, 302 customRecipe: false,
@@ -333,39 +313,39 @@ export default class ServiceController {
333 iconUrl: settings.iconId 313 iconUrl: settings.iconId
334 ? `${url}/v1/icon/${settings.iconId}` 314 ? `${url}/v1/icon/${settings.iconId}`
335 : // eslint-disable-next-line unicorn/no-null 315 : // eslint-disable-next-line unicorn/no-null
336 null, 316 null,
337 id: service.serviceId, 317 id: service.serviceId,
338 name: service.name, 318 name: service.name,
339 recipeId: service.recipeId, 319 recipeId: service.recipeId,
340 userId: user.id, 320 userId: user.id,
341 }; 321 }
342 }); 322 })
343 323
344 return response.send(servicesArray); 324 return response.send(servicesArray)
345 } 325 }
346 326
347 // TODO: Test if this works 327 // TODO: Test if this works
348 public async icon({ params, response }: HttpContextContract) { 328 public async icon({ params, response }: HttpContext) {
349 let { id } = params; 329 let { id } = params
350 330
351 id = sanitize(id); 331 id = sanitize(id)
352 if (id === '') { 332 if (id === '') {
353 return response.status(404).send({ 333 return response.status(404).send({
354 status: 'Icon doesn\'t exist', 334 status: "Icon doesn't exist",
355 }); 335 })
356 } 336 }
357 337
358 const iconPath = path.join(Application.tmpPath('uploads'), id); 338 const iconPath = path.join(app.tmpPath('uploads'), id)
359 339
360 try { 340 try {
361 await fs.access(iconPath); 341 await fs.access(iconPath)
362 } catch { 342 } catch {
363 // File not available. 343 // File not available.
364 return response.status(404).send({ 344 return response.status(404).send({
365 status: 'Icon doesn\'t exist', 345 status: "Icon doesn't exist",
366 }); 346 })
367 } 347 }
368 348
369 return response.download(iconPath); 349 return response.download(iconPath)
370 } 350 }
371} 351}
diff --git a/app/Controllers/Http/StaticsController.ts b/app/Controllers/Http/StaticsController.ts
index e221177..a94a9ba 100644
--- a/app/Controllers/Http/StaticsController.ts
+++ b/app/Controllers/Http/StaticsController.ts
@@ -1,3 +1,3 @@
1// import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' 1// import type { HttpContext } from '@adonisjs/core/http'
2 2
3export default class StaticsController {} 3export default class StaticsController {}
diff --git a/app/Controllers/Http/UserController.ts b/app/Controllers/Http/UserController.ts
index ef7cfdd..088f7b1 100644
--- a/app/Controllers/Http/UserController.ts
+++ b/app/Controllers/Http/UserController.ts
@@ -1,134 +1,125 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { schema, rules } from '@ioc:Adonis/Core/Validator'; 2import { schema, rules } from '@adonisjs/validator'
3import User from 'App/Models/User'; 3import User from '#app/Models/User'
4import { connectWithFranz, isRegistrationEnabled } from '../../../config/app'; 4import { connectWithFranz, isRegistrationEnabled } from '../../../config/app.js'
5import crypto from 'node:crypto'; 5import crypto from 'node:crypto'
6import { v4 as uuid } from 'uuid'; 6import { v4 as uuid } from 'uuid'
7import Workspace from 'App/Models/Workspace'; 7import Workspace from '#app/Models/Workspace'
8import Service from 'App/Models/Service'; 8import Service from '#app/Models/Service'
9import fetch from 'node-fetch';
10 9
11// TODO: This file needs to be refactored and cleaned up to include types 10// TODO: This file needs to be refactored and cleaned up to include types
12import { handleVerifyAndReHash } from '../../../helpers/PasswordHash'; 11import { handleVerifyAndReHash } from '../../../helpers/PasswordHash.js'
13 12
14const newPostSchema = schema.create({ 13const newPostSchema = schema.create({
15 firstname: schema.string(), 14 firstname: schema.string(),
16 lastname: schema.string(), 15 lastname: schema.string(),
17 email: schema.string([ 16 email: schema.string([rules.email(), rules.unique({ table: 'users', column: 'email' })]),
18 rules.email(),
19 rules.unique({ table: 'users', column: 'email' }),
20 ]),
21 password: schema.string([rules.minLength(8)]), 17 password: schema.string([rules.minLength(8)]),
22}); 18})
23 19
24const franzImportSchema = schema.create({ 20const franzImportSchema = schema.create({
25 email: schema.string([ 21 email: schema.string([rules.email(), rules.unique({ table: 'users', column: 'email' })]),
26 rules.email(),
27 rules.unique({ table: 'users', column: 'email' }),
28 ]),
29 password: schema.string([rules.minLength(8)]), 22 password: schema.string([rules.minLength(8)]),
30}); 23})
31 24
32// // TODO: This whole controller needs to be changed such that it can support importing from both Franz and Ferdi 25// // TODO: This whole controller needs to be changed such that it can support importing from both Franz and Ferdi
33// eslint-disable-next-line @typescript-eslint/no-explicit-any 26// eslint-disable-next-line @typescript-eslint/no-explicit-any
34const franzRequest = (route: any, method: any, auth: any) => 27const franzRequest = (route: any, method: any, auth: any) =>
35 new Promise((resolve, reject) => { 28 new Promise((resolve, reject) => {
36 const base = 'https://api.franzinfra.com/v1/'; 29 const base = 'https://api.franzinfra.com/v1/'
37 const user = 30 const user =
38 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Franz/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36'; 31 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Franz/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36'
39 32
40 try { 33 try {
41 fetch(base + route, { 34 fetch(base + route, {
42 method, 35 method,
43 headers: { 36 headers: {
44 Authorization: `Bearer ${auth}`, 37 'Authorization': `Bearer ${auth}`,
45 'User-Agent': user, 38 'User-Agent': user,
46 }, 39 },
47 }) 40 })
48 .then(data => data.json()) 41 .then((data) => data.json())
49 .then(json => resolve(json)); 42 .then((json) => resolve(json))
50 } catch { 43 } catch {
51 reject(); 44 reject()
52 } 45 }
53 }); 46 })
54 47
55export default class UsersController { 48export default class UsersController {
56 // Register a new user 49 // Register a new user
57 public async signup({ request, response, auth }: HttpContextContract) { 50 public async signup({ request, response, auth }: HttpContext) {
58 if (isRegistrationEnabled === 'false') { 51 if (isRegistrationEnabled === 'false') {
59 return response.status(401).send({ 52 return response.status(401).send({
60 message: 'Registration is disabled on this server', 53 message: 'Registration is disabled on this server',
61 status: 401, 54 status: 401,
62 }); 55 })
63 } 56 }
64 57
65 // Validate user input 58 // Validate user input
66 let data; 59 let data
67 try { 60 try {
68 data = await request.validate({ schema: newPostSchema }); 61 data = await request.validate({ schema: newPostSchema })
69 } catch (error) { 62 } catch (error) {
70 return response.status(401).send({ 63 return response.status(401).send({
71 message: 'Invalid POST arguments', 64 message: 'Invalid POST arguments',
72 messages: error.messages, 65 messages: error.messages,
73 status: 401, 66 status: 401,
74 }); 67 })
75 } 68 }
76 69
77 // Create user in DB 70 // Create user in DB
78 let user; 71 let user
79 try { 72 try {
80 user = await User.create({ 73 user = await User.create({
81 email: data.email, 74 email: data.email,
82 password: data.password, 75 password: data.password,
83 username: data.firstname, 76 username: data.firstname,
84 lastname: data.lastname, 77 lastname: data.lastname,
85 }); 78 })
86 } catch { 79 } catch {
87 return response.status(401).send({ 80 return response.status(401).send({
88 message: 'E-Mail address already in use', 81 message: 'E-Mail address already in use',
89 status: 401, 82 status: 401,
90 }); 83 })
91 } 84 }
92 85
93 // Generate new auth token 86 // Generate new auth token
94 const token = await auth.use('jwt').login(user, { payload: {} }); 87 const token = await auth.use('jwt').login(user, { payload: {} })
95 88
96 return response.send({ 89 return response.send({
97 message: 'Successfully created account', 90 message: 'Successfully created account',
98 token: token.accessToken, 91 token: token.accessToken,
99 }); 92 })
100 } 93 }
101 94
102 // Login using an existing user 95 // Login using an existing user
103 public async login({ request, response, auth }: HttpContextContract) { 96 public async login({ request, response, auth }: HttpContext) {
104 if (!request.header('Authorization')) { 97 if (!request.header('Authorization')) {
105 return response.status(401).send({ 98 return response.status(401).send({
106 message: 'Please provide authorization', 99 message: 'Please provide authorization',
107 status: 401, 100 status: 401,
108 }); 101 })
109 } 102 }
110 103
111 // Get auth data from auth token 104 // Get auth data from auth token
112 const authHeader = atob( 105 const authHeader = atob(request.header('Authorization')!.replace('Basic ', '')).split(':')
113 request.header('Authorization')!.replace('Basic ', ''),
114 ).split(':');
115 106
116 // Check if user with email exists 107 // Check if user with email exists
117 const user = await User.query().where('email', authHeader[0]).first(); 108 const user = await User.query().where('email', authHeader[0]).first()
118 if (!user?.email) { 109 if (!user?.email) {
119 return response.status(401).send({ 110 return response.status(401).send({
120 message: 'User credentials not valid', 111 message: 'User credentials not valid',
121 code: 'invalid-credentials', 112 code: 'invalid-credentials',
122 status: 401, 113 status: 401,
123 }); 114 })
124 } 115 }
125 116
126 // Verify password 117 // Verify password
127 let isMatchedPassword = false; 118 let isMatchedPassword = false
128 try { 119 try {
129 isMatchedPassword = await handleVerifyAndReHash(user, authHeader[1]); 120 isMatchedPassword = await handleVerifyAndReHash(user, authHeader[1])
130 } catch (error) { 121 } catch (error) {
131 return response.internalServerError({ message: error.message }); 122 return response.internalServerError({ message: error.message })
132 } 123 }
133 124
134 if (!isMatchedPassword) { 125 if (!isMatchedPassword) {
@@ -136,31 +127,28 @@ export default class UsersController {
136 message: 'User credentials not valid', 127 message: 'User credentials not valid',
137 code: 'invalid-credentials', 128 code: 'invalid-credentials',
138 status: 401, 129 status: 401,
139 }); 130 })
140 } 131 }
141 132
142 // Generate token 133 // Generate token
143 const token = await auth.use('jwt').login(user, { payload: {} }); 134 const token = await auth.use('jwt').login(user, { payload: {} })
144 135
145 return response.send({ 136 return response.send({
146 message: 'Successfully logged in', 137 message: 'Successfully logged in',
147 token: token.accessToken, 138 token: token.accessToken,
148 }); 139 })
149 } 140 }
150 141
151 // Return information about the current user 142 // Return information about the current user
152 public async me({ request, response, auth }: HttpContextContract) { 143 public async me({ request, response, auth }: HttpContext) {
153 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 144 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
154 const user = auth.user ?? request.user; 145 const user = auth.user ?? request.user
155 146
156 if (!user) { 147 if (!user) {
157 return response.send('Missing or invalid api token'); 148 return response.send('Missing or invalid api token')
158 } 149 }
159 150
160 const settings = 151 const settings = typeof user.settings === 'string' ? JSON.parse(user.settings) : user.settings
161 typeof user.settings === 'string'
162 ? JSON.parse(user.settings)
163 : user.settings;
164 152
165 return response.send({ 153 return response.send({
166 accountType: 'individual', 154 accountType: 'individual',
@@ -176,29 +164,29 @@ export default class UsersController {
176 lastname: user.lastname, 164 lastname: user.lastname,
177 locale: 'en-US', 165 locale: 'en-US',
178 ...settings, 166 ...settings,
179 }); 167 })
180 } 168 }
181 169
182 public async updateMe({ request, response, auth }: HttpContextContract) { 170 public async updateMe({ request, response, auth }: HttpContext) {
183 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 171 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
184 const user = auth.user ?? request.user; 172 const user = auth.user ?? request.user
185 173
186 if (!user) { 174 if (!user) {
187 return response.send('Missing or invalid api token'); 175 return response.send('Missing or invalid api token')
188 } 176 }
189 177
190 let settings = user.settings || {}; 178 let settings = user.settings || {}
191 if (typeof settings === 'string') { 179 if (typeof settings === 'string') {
192 settings = JSON.parse(settings); 180 settings = JSON.parse(settings)
193 } 181 }
194 182
195 const newSettings = { 183 const newSettings = {
196 ...settings, 184 ...settings,
197 ...request.all(), 185 ...request.all(),
198 }; 186 }
199 187
200 user.settings = JSON.stringify(newSettings); 188 user.settings = JSON.stringify(newSettings)
201 await user.save(); 189 await user.save()
202 190
203 return response.send({ 191 return response.send({
204 data: { 192 data: {
@@ -217,140 +205,137 @@ export default class UsersController {
217 ...newSettings, 205 ...newSettings,
218 }, 206 },
219 status: ['data-updated'], 207 status: ['data-updated'],
220 }); 208 })
221 } 209 }
222 210
223 public async newToken({ request, response, auth }: HttpContextContract) { 211 public async newToken({ request, response, auth }: HttpContext) {
224 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 212 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
225 const user = auth.user ?? request.user; 213 const user = auth.user ?? request.user
226 214
227 if (!user) { 215 if (!user) {
228 return response.send('Missing or invalid api token'); 216 return response.send('Missing or invalid api token')
229 } 217 }
230 218
231 const token = await auth.use('jwt').generate(user, { payload: {} }); 219 const token = await auth.use('jwt').generate(user, { payload: {} })
232 220
233 return response.send({ 221 return response.send({
234 token: token.accessToken, 222 token: token.accessToken,
235 }); 223 })
236 } 224 }
237 225
238 public async import({ request, response, view }: HttpContextContract) { 226 public async import({ request, response, view }: HttpContext) {
239 if (isRegistrationEnabled === 'false') { 227 if (isRegistrationEnabled === 'false') {
240 return response.status(401).send({ 228 return response.status(401).send({
241 message: 'Registration is disabled on this server', 229 message: 'Registration is disabled on this server',
242 status: 401, 230 status: 401,
243 }); 231 })
244 } 232 }
245 233
246 if (connectWithFranz === 'false') { 234 if (connectWithFranz === 'false') {
247 return response.send( 235 return response.send(
248 'We could not import your Franz account data.\n\nIf you are the server owner, please set CONNECT_WITH_FRANZ to true to enable account imports.', 236 'We could not import your Franz account data.\n\nIf you are the server owner, please set CONNECT_WITH_FRANZ to true to enable account imports.'
249 ); 237 )
250 } 238 }
251 239
252 // Validate user input 240 // Validate user input
253 let data; 241 let data
254 try { 242 try {
255 data = await request.validate({ schema: franzImportSchema }); 243 data = await request.validate({ schema: franzImportSchema })
256 } catch (error) { 244 } catch (error) {
257 return view.render('others.message', { 245 return view.render('others.message', {
258 heading: 'Error while importing', 246 heading: 'Error while importing',
259 text: error.messages, 247 text: error.messages,
260 }); 248 })
261 } 249 }
262 250
263 const { email, password } = data; 251 const { email, password } = data
264 252
265 const hashedPassword = crypto 253 const hashedPassword = crypto.createHash('sha256').update(password).digest('base64')
266 .createHash('sha256')
267 .update(password)
268 .digest('base64');
269 254
270 const base = 'https://api.franzinfra.com/v1/'; 255 const base = 'https://api.franzinfra.com/v1/'
271 const userAgent = 256 const userAgent =
272 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Franz/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36'; 257 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Franz/5.3.0-beta.1 Chrome/69.0.3497.128 Electron/4.2.4 Safari/537.36'
273 258
274 // Try to get an authentication token 259 // Try to get an authentication token
275 let token; 260 let token
276 try { 261 try {
277 const basicToken = btoa(`${email}:${hashedPassword}`); 262 const basicToken = btoa(`${email}:${hashedPassword}`)
278 const loginBody = { 263 const loginBody = {
279 isZendeskLogin: false, 264 isZendeskLogin: false,
280 }; 265 }
281 266
282 const rawResponse = await fetch(`${base}auth/login`, { 267 const rawResponse = await fetch(`${base}auth/login`, {
283 method: 'POST', 268 method: 'POST',
284 body: JSON.stringify(loginBody), 269 body: JSON.stringify(loginBody),
285 headers: { 270 headers: {
286 Authorization: `Basic ${basicToken}`, 271 'Authorization': `Basic ${basicToken}`,
287 'User-Agent': userAgent, 272 'User-Agent': userAgent,
288 'Content-Type': 'application/json', 273 'Content-Type': 'application/json',
289 accept: '*/*', 274 'accept': '*/*',
290 'x-franz-source': 'Web', 275 'x-franz-source': 'Web',
291 }, 276 },
292 }); 277 })
293 const content = await rawResponse.json(); 278 const content = await rawResponse.json()
294 279
295 if (!content.message || content.message !== 'Successfully logged in') { 280 if (!content.message || content.message !== 'Successfully logged in') {
296 const errorMessage = 281 const errorMessage =
297 'Could not login into Franz with your supplied credentials. Please check and try again'; 282 'Could not login into Franz with your supplied credentials. Please check and try again'
298 return response.status(401).send(errorMessage); 283 return response.status(401).send(errorMessage)
299 } 284 }
300 285
301 token = content.token; 286 token = content.token
302 } catch (error) { 287 } catch (error) {
303 return response.status(401).send({ 288 return response.status(401).send({
304 message: 'Cannot login to Franz', 289 message: 'Cannot login to Franz',
305 error: error, 290 error: error,
306 }); 291 })
307 } 292 }
308 293
309 // Get user information 294 // Get user information
310 // eslint-disable-next-line @typescript-eslint/no-explicit-any 295 // eslint-disable-next-line @typescript-eslint/no-explicit-any
311 let userInf: any = false; 296 let userInf: any = false
312 try { 297 try {
313 userInf = await franzRequest('me', 'GET', token); 298 userInf = await franzRequest('me', 'GET', token)
314 } catch (error) { 299 } catch (error) {
315 const errorMessage = `Could not get your user info from Franz. Please check your credentials or try again later.\nError: ${error}`; 300 const errorMessage = `Could not get your user info from Franz. Please check your credentials or try again later.\nError: ${error}`
316 return response.status(401).send(errorMessage); 301 return response.status(401).send(errorMessage)
317 } 302 }
318 if (!userInf) { 303 if (!userInf) {
319 const errorMessage = 304 const errorMessage =
320 'Could not get your user info from Franz. Please check your credentials or try again later'; 305 'Could not get your user info from Franz. Please check your credentials or try again later'
321 return response.status(401).send(errorMessage); 306 return response.status(401).send(errorMessage)
322 } 307 }
323 308
324 // Create user in DB 309 // Create user in DB
325 let user; 310 let user
326 try { 311 try {
327 user = await User.create({ 312 user = await User.create({
328 email: userInf.email, 313 email: userInf.email,
329 password: hashedPassword, 314 password: hashedPassword,
330 username: userInf.firstname, 315 username: userInf.firstname,
331 lastname: userInf.lastname, 316 lastname: userInf.lastname,
332 }); 317 })
333 } catch (error) { 318 } catch (error) {
334 const errorMessage = `Could not create your user in our system.\nError: ${error}`; 319 const errorMessage = `Could not create your user in our system.\nError: ${error}`
335 return response.status(401).send(errorMessage); 320 return response.status(401).send(errorMessage)
336 } 321 }
337 322
338 const serviceIdTranslation = {}; 323 const serviceIdTranslation = {}
339 324
340 // Import services 325 // Import services
341 try { 326 try {
342 const services = await franzRequest('me/services', 'GET', token); 327 const services = await franzRequest('me/services', 'GET', token)
343 328
344 // @ts-expect-error 329 // @ts-expect-error
345 for (const service of services) { 330 for (const service of services) {
346 // Get new, unused uuid 331 // Get new, unused uuid
347 let serviceId; 332 let serviceId
348 do { 333 do {
349 serviceId = uuid(); 334 serviceId = uuid()
350 } while ( 335 } while (
351 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member 336 // eslint-disable-next-line no-await-in-loop, unicorn/no-await-expression-member
352 (await Service.query().where('serviceId', serviceId)).length > 0 337 (await Service.query().where('serviceId', serviceId)).length > 0
353 ); 338 )
354 339
355 // eslint-disable-next-line no-await-in-loop 340 // eslint-disable-next-line no-await-in-loop
356 await Service.create({ 341 await Service.create({
@@ -359,34 +344,34 @@ export default class UsersController {
359 name: service.name, 344 name: service.name,
360 recipeId: service.recipeId, 345 recipeId: service.recipeId,
361 settings: JSON.stringify(service), 346 settings: JSON.stringify(service),
362 }); 347 })
363 348
364 // @ts-expect-error 349 // @ts-expect-error
365 serviceIdTranslation[service.id] = serviceId; 350 serviceIdTranslation[service.id] = serviceId
366 } 351 }
367 } catch (error) { 352 } catch (error) {
368 const errorMessage = `Could not import your services into our system.\nError: ${error}`; 353 const errorMessage = `Could not import your services into our system.\nError: ${error}`
369 return response.status(401).send(errorMessage); 354 return response.status(401).send(errorMessage)
370 } 355 }
371 356
372 // Import workspaces 357 // Import workspaces
373 try { 358 try {
374 const workspaces = await franzRequest('workspace', 'GET', token); 359 const workspaces = await franzRequest('workspace', 'GET', token)
375 360
376 // @ts-expect-error 361 // @ts-expect-error
377 for (const workspace of workspaces) { 362 for (const workspace of workspaces) {
378 let workspaceId; 363 let workspaceId
379 do { 364 do {
380 workspaceId = uuid(); 365 workspaceId = uuid()
381 } while ( 366 } while (
382 // eslint-disable-next-line unicorn/no-await-expression-member, no-await-in-loop 367 // eslint-disable-next-line unicorn/no-await-expression-member, no-await-in-loop
383 (await Workspace.query().where('workspaceId', workspaceId)).length > 0 368 (await Workspace.query().where('workspaceId', workspaceId)).length > 0
384 ); 369 )
385 370
386 const services = workspace.services.map( 371 const services = workspace.services.map(
387 // @ts-expect-error 372 // @ts-expect-error
388 service => serviceIdTranslation[service], 373 (service) => serviceIdTranslation[service]
389 ); 374 )
390 375
391 // eslint-disable-next-line no-await-in-loop 376 // eslint-disable-next-line no-await-in-loop
392 await Workspace.create({ 377 await Workspace.create({
@@ -396,15 +381,15 @@ export default class UsersController {
396 order: workspace.order, 381 order: workspace.order,
397 services: JSON.stringify(services), 382 services: JSON.stringify(services),
398 data: JSON.stringify({}), 383 data: JSON.stringify({}),
399 }); 384 })
400 } 385 }
401 } catch (error) { 386 } catch (error) {
402 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`; 387 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`
403 return response.status(401).send(errorMessage); 388 return response.status(401).send(errorMessage)
404 } 389 }
405 390
406 return response.send( 391 return response.send(
407 'Your account has been imported. You can now use your Franz/Ferdi account in Ferdium.', 392 'Your account has been imported. You can now use your Franz/Ferdi account in Ferdium.'
408 ); 393 )
409 } 394 }
410} 395}
diff --git a/app/Controllers/Http/WorkspaceController.ts b/app/Controllers/Http/WorkspaceController.ts
index 70af343..a2bc54e 100644
--- a/app/Controllers/Http/WorkspaceController.ts
+++ b/app/Controllers/Http/WorkspaceController.ts
@@ -1,53 +1,53 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import { validator, schema } from '@ioc:Adonis/Core/Validator'; 2import { validator, schema } from '@adonisjs/validator'
3import Workspace from 'App/Models/Workspace'; 3import Workspace from '#app/Models/Workspace'
4import { v4 as uuid } from 'uuid'; 4import { v4 as uuid } from 'uuid'
5 5
6const createSchema = schema.create({ 6const createSchema = schema.create({
7 name: schema.string(), 7 name: schema.string(),
8}); 8})
9 9
10const editSchema = schema.create({ 10const editSchema = schema.create({
11 name: schema.string(), 11 name: schema.string(),
12}); 12})
13 13
14const deleteSchema = schema.create({ 14const deleteSchema = schema.create({
15 id: schema.string(), 15 id: schema.string(),
16}); 16})
17 17
18export default class WorkspaceController { 18export default class WorkspaceController {
19 // Create a new workspace for user 19 // Create a new workspace for user
20 public async create({ request, response, auth }: HttpContextContract) { 20 public async create({ request, response, auth }: HttpContext) {
21 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 21 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
22 const user = auth.user ?? request.user; 22 const user = auth.user ?? request.user
23 23
24 if (!user) { 24 if (!user) {
25 return response.unauthorized('Missing or invalid api token'); 25 return response.unauthorized('Missing or invalid api token')
26 } 26 }
27 27
28 // Validate user input 28 // Validate user input
29 let data; 29 let data
30 try { 30 try {
31 data = await request.validate({ schema: createSchema }); 31 data = await request.validate({ schema: createSchema })
32 } catch (error) { 32 } catch (error) {
33 return response.status(401).send({ 33 return response.status(401).send({
34 message: 'Invalid POST arguments', 34 message: 'Invalid POST arguments',
35 messages: error.messages, 35 messages: error.messages,
36 status: 401, 36 status: 401,
37 }); 37 })
38 } 38 }
39 39
40 // Get new, unused uuid 40 // Get new, unused uuid
41 let workspaceId; 41 let workspaceId
42 do { 42 do {
43 workspaceId = uuid(); 43 workspaceId = uuid()
44 } while ( 44 } while (
45 // eslint-disable-next-line unicorn/no-await-expression-member, no-await-in-loop 45 // eslint-disable-next-line unicorn/no-await-expression-member, no-await-in-loop
46 (await Workspace.query().where('workspaceId', workspaceId)).length > 0 46 (await Workspace.query().where('workspaceId', workspaceId)).length > 0
47 ); 47 )
48 48
49 // eslint-disable-next-line unicorn/no-await-expression-member 49 // eslint-disable-next-line unicorn/no-await-expression-member
50 const order = (await user.related('workspaces').query()).length; 50 const order = (await user.related('workspaces').query()).length
51 51
52 await Workspace.create({ 52 await Workspace.create({
53 userId: user.id, 53 userId: user.id,
@@ -56,7 +56,7 @@ export default class WorkspaceController {
56 order, 56 order,
57 services: JSON.stringify([]), 57 services: JSON.stringify([]),
58 data: JSON.stringify(data), 58 data: JSON.stringify(data),
59 }); 59 })
60 60
61 return response.send({ 61 return response.send({
62 userId: user.id, 62 userId: user.id,
@@ -64,30 +64,30 @@ export default class WorkspaceController {
64 id: workspaceId, 64 id: workspaceId,
65 order, 65 order,
66 workspaces: [], 66 workspaces: [],
67 }); 67 })
68 } 68 }
69 69
70 public async edit({ request, response, auth, params }: HttpContextContract) { 70 public async edit({ request, response, auth, params }: HttpContext) {
71 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 71 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
72 const user = auth.user ?? request.user; 72 const user = auth.user ?? request.user
73 73
74 if (!user) { 74 if (!user) {
75 return response.unauthorized('Missing or invalid api token'); 75 return response.unauthorized('Missing or invalid api token')
76 } 76 }
77 77
78 // Validate user input 78 // Validate user input
79 try { 79 try {
80 await request.validate({ schema: editSchema }); 80 await request.validate({ schema: editSchema })
81 } catch (error) { 81 } catch (error) {
82 return response.status(401).send({ 82 return response.status(401).send({
83 message: 'Invalid POST arguments', 83 message: 'Invalid POST arguments',
84 messages: error.messages, 84 messages: error.messages,
85 status: 401, 85 status: 401,
86 }); 86 })
87 } 87 }
88 88
89 const data = request.all(); 89 const data = request.all()
90 const { id } = params; 90 const { id } = params
91 91
92 // Update data in database 92 // Update data in database
93 await Workspace.query() 93 await Workspace.query()
@@ -96,13 +96,13 @@ export default class WorkspaceController {
96 .update({ 96 .update({
97 name: data.name, 97 name: data.name,
98 services: JSON.stringify(data.services), 98 services: JSON.stringify(data.services),
99 }); 99 })
100 100
101 // Get updated row 101 // Get updated row
102 const workspace = await Workspace.query() 102 const workspace = await Workspace.query()
103 .where('workspaceId', id) 103 .where('workspaceId', id)
104 .where('userId', user.id) 104 .where('userId', user.id)
105 .firstOrFail(); 105 .firstOrFail()
106 106
107 return response.send({ 107 return response.send({
108 id: workspace.workspaceId, 108 id: workspace.workspaceId,
@@ -110,62 +110,54 @@ export default class WorkspaceController {
110 order: workspace.order, 110 order: workspace.order,
111 services: data.services, 111 services: data.services,
112 userId: user.id, 112 userId: user.id,
113 }); 113 })
114 } 114 }
115 115
116 public async delete({ 116 public async delete({ request, response, auth, params }: HttpContext) {
117 request,
118 response,
119 auth,
120 params,
121 }: HttpContextContract) {
122 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 117 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
123 const user = auth.user ?? request.user; 118 const user = auth.user ?? request.user
124 119
125 if (!user) { 120 if (!user) {
126 return response.unauthorized('Missing or invalid api token'); 121 return response.unauthorized('Missing or invalid api token')
127 } 122 }
128 123
129 // Validate user input 124 // Validate user input
130 let data; 125 let data
131 try { 126 try {
132 data = await validator.validate({ 127 data = await validator.validate({
133 data: params, 128 data: params,
134 schema: deleteSchema, 129 schema: deleteSchema,
135 }); 130 })
136 } catch (error) { 131 } catch (error) {
137 return response.status(401).send({ 132 return response.status(401).send({
138 message: 'Invalid arguments', 133 message: 'Invalid arguments',
139 messages: error.messages, 134 messages: error.messages,
140 status: 401, 135 status: 401,
141 }); 136 })
142 } 137 }
143 138
144 const { id } = data; 139 const { id } = data
145 140
146 // Update data in database 141 // Update data in database
147 await Workspace.query() 142 await Workspace.query().where('workspaceId', id).where('userId', user.id).delete()
148 .where('workspaceId', id)
149 .where('userId', user.id)
150 .delete();
151 143
152 return response.send({ 144 return response.send({
153 message: 'Successfully deleted workspace', 145 message: 'Successfully deleted workspace',
154 }); 146 })
155 } 147 }
156 148
157 // List all workspaces a user has created 149 // List all workspaces a user has created
158 public async list({ request, response, auth }: HttpContextContract) { 150 public async list({ request, response, auth }: HttpContext) {
159 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'. 151 // @ts-expect-error Property 'user' does not exist on type 'HttpContextContract'.
160 const user = auth.user ?? request.user; 152 const user = auth.user ?? request.user
161 153
162 if (!user) { 154 if (!user) {
163 return response.unauthorized('Missing or invalid api token'); 155 return response.unauthorized('Missing or invalid api token')
164 } 156 }
165 157
166 const workspaces = await user.related('workspaces').query(); 158 const workspaces = await user.related('workspaces').query()
167 // Convert to array with all data Franz wants 159 // Convert to array with all data Franz wants
168 let workspacesArray: object[] = []; 160 let workspacesArray: object[] = []
169 if (workspaces) { 161 if (workspaces) {
170 // eslint-disable-next-line @typescript-eslint/no-explicit-any 162 // eslint-disable-next-line @typescript-eslint/no-explicit-any
171 workspacesArray = workspaces.map((workspace: any) => ({ 163 workspacesArray = workspaces.map((workspace: any) => ({
@@ -177,9 +169,9 @@ export default class WorkspaceController {
177 ? JSON.parse(workspace.services) 169 ? JSON.parse(workspace.services)
178 : workspace.services, 170 : workspace.services,
179 userId: user.id, 171 userId: user.id,
180 })); 172 }))
181 } 173 }
182 174
183 return response.send(workspacesArray); 175 return response.send(workspacesArray)
184 } 176 }
185} 177}
diff --git a/app/Exceptions/Handler.ts b/app/Exceptions/Handler.ts
index 35c77d0..b13126d 100644
--- a/app/Exceptions/Handler.ts
+++ b/app/Exceptions/Handler.ts
@@ -13,11 +13,11 @@
13| 13|
14*/ 14*/
15 15
16import Logger from '@ioc:Adonis/Core/Logger'; 16import logger from '@adonisjs/core/services/logger'
17import HttpExceptionHandler from '@ioc:Adonis/Core/HttpExceptionHandler'; 17import { ExceptionHandler as AdonisExceptionHandler } from '@adonisjs/core/http'
18 18
19export default class ExceptionHandler extends HttpExceptionHandler { 19export default class ExceptionHandler extends AdonisExceptionHandler {
20 constructor() { 20 constructor() {
21 super(Logger); 21 super(logger)
22 } 22 }
23} 23}
diff --git a/app/Middleware/AllowGuestOnly.ts b/app/Middleware/AllowGuestOnly.ts
index ee43571..5ef5c34 100644
--- a/app/Middleware/AllowGuestOnly.ts
+++ b/app/Middleware/AllowGuestOnly.ts
@@ -1,6 +1,6 @@
1import { GuardsList } from '@ioc:Adonis/Addons/Auth'; 1import { GuardsList } from '@ioc:Adonis/Addons/Auth'
2import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 2import { HttpContext } from '@adonisjs/core/http'
3import { AuthenticationException } from '@adonisjs/auth/build/standalone'; 3import { AuthenticationException } from '@adonisjs/auth/build/standalone'
4 4
5/** 5/**
6 * This is actually a reverted a reverted auth middleware available in ./Auth.ts 6 * This is actually a reverted a reverted auth middleware available in ./Auth.ts
@@ -10,27 +10,24 @@ export default class GuestMiddleware {
10 /** 10 /**
11 * The URL to redirect to when request is authorized 11 * The URL to redirect to when request is authorized
12 */ 12 */
13 protected redirectTo = '/dashboard'; 13 protected redirectTo = '/dashboard'
14 14
15 protected async authenticate( 15 protected async authenticate(auth: HttpContext['auth'], guards: (keyof GuardsList)[]) {
16 auth: HttpContextContract['auth'], 16 let guardLastAttempted: string | undefined
17 guards: (keyof GuardsList)[],
18 ) {
19 let guardLastAttempted: string | undefined;
20 17
21 for (const guard of guards) { 18 for (const guard of guards) {
22 guardLastAttempted = guard; 19 guardLastAttempted = guard
23 20
24 // eslint-disable-next-line no-await-in-loop 21 // eslint-disable-next-line no-await-in-loop
25 if (await auth.use(guard).check()) { 22 if (await auth.use(guard).check()) {
26 auth.defaultGuard = guard; 23 auth.defaultGuard = guard
27 24
28 throw new AuthenticationException( 25 throw new AuthenticationException(
29 'Unauthorized access', 26 'Unauthorized access',
30 'E_UNAUTHORIZED_ACCESS', 27 'E_UNAUTHORIZED_ACCESS',
31 guardLastAttempted, 28 guardLastAttempted,
32 this.redirectTo, 29 this.redirectTo
33 ); 30 )
34 } 31 }
35 } 32 }
36 } 33 }
@@ -39,18 +36,18 @@ export default class GuestMiddleware {
39 * Handle request 36 * Handle request
40 */ 37 */
41 public async handle( 38 public async handle(
42 { auth }: HttpContextContract, 39 { auth }: HttpContext,
43 next: () => Promise<void>, 40 next: () => Promise<void>,
44 customGuards: (keyof GuardsList)[], 41 customGuards: (keyof GuardsList)[]
45 ) { 42 ) {
46 /** 43 /**
47 * Uses the user defined guards or the default guard mentioned in 44 * Uses the user defined guards or the default guard mentioned in
48 * the config file 45 * the config file
49 */ 46 */
50 const guards = customGuards.length > 0 ? customGuards : [auth.name]; 47 const guards = customGuards.length > 0 ? customGuards : [auth.name]
51 48
52 await this.authenticate(auth, guards); 49 await this.authenticate(auth, guards)
53 50
54 await next(); 51 await next()
55 } 52 }
56} 53}
diff --git a/app/Middleware/Auth.ts b/app/Middleware/Auth.ts
index d0b212c..29620bb 100644
--- a/app/Middleware/Auth.ts
+++ b/app/Middleware/Auth.ts
@@ -1,9 +1,9 @@
1import { GuardsList } from '@ioc:Adonis/Addons/Auth'; 1import { GuardsList } from '@ioc:Adonis/Addons/Auth'
2import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 2import { HttpContext } from '@adonisjs/core/http'
3import { AuthenticationException } from '@adonisjs/auth/build/standalone'; 3import { AuthenticationException } from '@adonisjs/auth/build/standalone'
4import * as jose from 'jose'; 4import * as jose from 'jose'
5import { appKey } from 'Config/app'; 5import { appKey } from '#config/app'
6import User from 'App/Models/User'; 6import User from '#app/Models/User'
7 7
8/** 8/**
9 * Auth middleware is meant to restrict un-authenticated access to a given route 9 * Auth middleware is meant to restrict un-authenticated access to a given route
@@ -16,7 +16,7 @@ export default class AuthMiddleware {
16 /** 16 /**
17 * The URL to redirect to when request is Unauthorized 17 * The URL to redirect to when request is Unauthorized
18 */ 18 */
19 protected redirectTo = '/user/login'; 19 protected redirectTo = '/user/login'
20 20
21 /** 21 /**
22 * Authenticates the current HTTP request against a custom set of defined 22 * Authenticates the current HTTP request against a custom set of defined
@@ -27,9 +27,9 @@ export default class AuthMiddleware {
27 * during the current request. 27 * during the current request.
28 */ 28 */
29 protected async authenticate( 29 protected async authenticate(
30 auth: HttpContextContract['auth'], 30 auth: HttpContext['auth'],
31 guards: (keyof GuardsList)[], 31 guards: (keyof GuardsList)[],
32 request: HttpContextContract['request'], 32 request: HttpContext['request']
33 ) { 33 ) {
34 /** 34 /**
35 * Hold reference to the guard last attempted within the for loop. We pass 35 * Hold reference to the guard last attempted within the for loop. We pass
@@ -37,15 +37,15 @@ export default class AuthMiddleware {
37 * it can decide the correct response behavior based upon the guard 37 * it can decide the correct response behavior based upon the guard
38 * driver 38 * driver
39 */ 39 */
40 let guardLastAttempted: string | undefined; 40 let guardLastAttempted: string | undefined
41 41
42 for (const guard of guards) { 42 for (const guard of guards) {
43 guardLastAttempted = guard; 43 guardLastAttempted = guard
44 44
45 let isLoggedIn = false; 45 let isLoggedIn = false
46 try { 46 try {
47 // eslint-disable-next-line no-await-in-loop 47 // eslint-disable-next-line no-await-in-loop
48 isLoggedIn = await auth.use(guard).check(); 48 isLoggedIn = await auth.use(guard).check()
49 } catch { 49 } catch {
50 // Silent fail to allow the rest of the code to handle the error 50 // Silent fail to allow the rest of the code to handle the error
51 } 51 }
@@ -56,25 +56,22 @@ export default class AuthMiddleware {
56 * the rest of the request, since the user authenticated 56 * the rest of the request, since the user authenticated
57 * succeeded here 57 * succeeded here
58 */ 58 */
59 auth.defaultGuard = guard; 59 auth.defaultGuard = guard
60 return; 60 return
61 } 61 }
62 } 62 }
63 63
64 // Manually try authenticating using the JWT (verfiy signature required) 64 // Manually try authenticating using the JWT (verfiy signature required)
65 // Legacy support for JWTs so that the client still works (older than 2.0.0) 65 // Legacy support for JWTs so that the client still works (older than 2.0.0)
66 const authToken = request.headers().authorization?.split(' ')[1]; 66 const authToken = request.headers().authorization?.split(' ')[1]
67 if (authToken) { 67 if (authToken) {
68 try { 68 try {
69 const jwt = await jose.jwtVerify( 69 const jwt = await jose.jwtVerify(authToken, new TextEncoder().encode(appKey))
70 authToken, 70 const { uid } = jwt.payload
71 new TextEncoder().encode(appKey),
72 );
73 const { uid } = jwt.payload;
74 71
75 // @ts-expect-error 72 // @ts-expect-error
76 request.user = await User.findOrFail(uid); 73 request.user = await User.findOrFail(uid)
77 return; 74 return
78 } catch { 75 } catch {
79 // Silent fail to allow the rest of the code to handle the error 76 // Silent fail to allow the rest of the code to handle the error
80 } 77 }
@@ -87,32 +84,32 @@ export default class AuthMiddleware {
87 'Unauthorized access', 84 'Unauthorized access',
88 'E_UNAUTHORIZED_ACCESS', 85 'E_UNAUTHORIZED_ACCESS',
89 guardLastAttempted, 86 guardLastAttempted,
90 this.redirectTo, 87 this.redirectTo
91 ); 88 )
92 } 89 }
93 90
94 /** 91 /**
95 * Handle request 92 * Handle request
96 */ 93 */
97 public async handle( 94 public async handle(
98 { request, auth, response }: HttpContextContract, 95 { request, auth, response }: HttpContext,
99 next: () => Promise<void>, 96 next: () => Promise<void>,
100 customGuards: (keyof GuardsList)[], 97 customGuards: (keyof GuardsList)[]
101 ) { 98 ) {
102 /** 99 /**
103 * Uses the user defined guards or the default guard mentioned in 100 * Uses the user defined guards or the default guard mentioned in
104 * the config file 101 * the config file
105 */ 102 */
106 const guards = customGuards.length > 0 ? customGuards : [auth.name]; 103 const guards = customGuards.length > 0 ? customGuards : [auth.name]
107 try { 104 try {
108 await this.authenticate(auth, guards, request); 105 await this.authenticate(auth, guards, request)
109 } catch (error) { 106 } catch (error) {
110 // If the user is not authenticated and it is a web endpoint, redirect to the login page 107 // If the user is not authenticated and it is a web endpoint, redirect to the login page
111 if (guards.includes('web')) { 108 if (guards.includes('web')) {
112 return response.redirect(error.redirectTo); 109 return response.redirect(error.redirectTo)
113 } 110 }
114 throw error; 111 throw error
115 } 112 }
116 await next(); 113 await next()
117 } 114 }
118} 115}
diff --git a/app/Middleware/Dashboard.ts b/app/Middleware/Dashboard.ts
index 62deea0..f29794c 100644
--- a/app/Middleware/Dashboard.ts
+++ b/app/Middleware/Dashboard.ts
@@ -1,17 +1,14 @@
1import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import type { HttpContext } from '@adonisjs/core/http'
2import Config from '@ioc:Adonis/Core/Config'; 2import { Config } from '@adonisjs/core/config'
3 3
4export default class Dashboard { 4export default class Dashboard {
5 public async handle( 5 public async handle({ response }: HttpContext, next: () => Promise<void>) {
6 { response }: HttpContextContract,
7 next: () => Promise<void>,
8 ) {
9 if (Config.get('dashboard.enabled') === false) { 6 if (Config.get('dashboard.enabled') === false) {
10 response.send( 7 response.send(
11 'The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.', 8 'The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.'
12 ); 9 )
13 } else { 10 } else {
14 await next(); 11 await next()
15 } 12 }
16 } 13 }
17} 14}
diff --git a/app/Middleware/SilentAuth.ts b/app/Middleware/SilentAuth.ts
index ee73ec4..a7271d5 100644
--- a/app/Middleware/SilentAuth.ts
+++ b/app/Middleware/SilentAuth.ts
@@ -1,4 +1,4 @@
1import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'; 1import { HttpContext } from '@adonisjs/core/http'
2 2
3/** 3/**
4 * Silent auth middleware can be used as a global middleware to silent check 4 * Silent auth middleware can be used as a global middleware to silent check
@@ -10,15 +10,12 @@ export default class SilentAuthMiddleware {
10 /** 10 /**
11 * Handle request 11 * Handle request
12 */ 12 */
13 public async handle( 13 public async handle({ auth }: HttpContext, next: () => Promise<void>) {
14 { auth }: HttpContextContract,
15 next: () => Promise<void>,
16 ) {
17 /** 14 /**
18 * Check if user is logged-in or not. If yes, then `ctx.auth.user` will be 15 * Check if user is logged-in or not. If yes, then `ctx.auth.user` will be
19 * set to the instance of the currently logged in user. 16 * set to the instance of the currently logged in user.
20 */ 17 */
21 await auth.check(); 18 await auth.check()
22 await next(); 19 await next()
23 } 20 }
24} 21}
diff --git a/app/Models/Recipe.ts b/app/Models/Recipe.ts
index fce5f3d..bca6e76 100644
--- a/app/Models/Recipe.ts
+++ b/app/Models/Recipe.ts
@@ -1,23 +1,23 @@
1import { DateTime } from 'luxon'; 1import { DateTime } from 'luxon'
2import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'; 2import { BaseModel, column } from '@adonisjs/lucid/orm'
3 3
4export default class Recipe extends BaseModel { 4export default class Recipe extends BaseModel {
5 @column({ isPrimary: true }) 5 @column({ isPrimary: true })
6 public id: number; 6 public id: number
7 7
8 @column() 8 @column()
9 public name: string; 9 public name: string
10 10
11 @column() 11 @column()
12 public recipeId: string; 12 public recipeId: string
13 13
14 // TODO: Type the data object. 14 // TODO: Type the data object.
15 @column() 15 @column()
16 public data: object; 16 public data: object
17 17
18 @column.dateTime({ autoCreate: true }) 18 @column.dateTime({ autoCreate: true })
19 public createdAt: DateTime; 19 public createdAt: DateTime
20 20
21 @column.dateTime({ autoCreate: true, autoUpdate: true }) 21 @column.dateTime({ autoCreate: true, autoUpdate: true })
22 public updatedAt: DateTime; 22 public updatedAt: DateTime
23} 23}
diff --git a/app/Models/Service.ts b/app/Models/Service.ts
index af1a8e1..0cd2afb 100644
--- a/app/Models/Service.ts
+++ b/app/Models/Service.ts
@@ -1,40 +1,41 @@
1import { DateTime } from 'luxon'; 1import { DateTime } from 'luxon'
2import { BaseModel, column, HasOne, hasOne } from '@ioc:Adonis/Lucid/Orm'; 2import { BaseModel, column, hasOne } from '@adonisjs/lucid/orm'
3import User from './User'; 3import User from './User.js'
4import type { HasOne } from '@adonisjs/lucid/types/relations'
4 5
5export default class Service extends BaseModel { 6export default class Service extends BaseModel {
6 @column({ isPrimary: true }) 7 @column({ isPrimary: true })
7 public id: number; 8 public id: number
8 9
9 @hasOne(() => User, { 10 @hasOne(() => User, {
10 foreignKey: 'userId', 11 foreignKey: 'userId',
11 }) 12 })
12 public user: HasOne<typeof User>; 13 public user: HasOne<typeof User>
13 14
14 @column({ 15 @column({
15 columnName: 'userId', 16 columnName: 'userId',
16 }) 17 })
17 public userId: number; 18 public userId: number
18 19
19 @column({ 20 @column({
20 columnName: 'serviceId', 21 columnName: 'serviceId',
21 }) 22 })
22 public serviceId: string; 23 public serviceId: string
23 24
24 @column() 25 @column()
25 public name: string; 26 public name: string
26 27
27 @column({ 28 @column({
28 columnName: 'recipeId', 29 columnName: 'recipeId',
29 }) 30 })
30 public recipeId: string; 31 public recipeId: string
31 32
32 @column() 33 @column()
33 public settings: string; 34 public settings: string
34 35
35 @column.dateTime({ autoCreate: true }) 36 @column.dateTime({ autoCreate: true })
36 public createdAt: DateTime; 37 public createdAt: DateTime
37 38
38 @column.dateTime({ autoCreate: true, autoUpdate: true }) 39 @column.dateTime({ autoCreate: true, autoUpdate: true })
39 public updatedAt: DateTime; 40 public updatedAt: DateTime
40} 41}
diff --git a/app/Models/Token.ts b/app/Models/Token.ts
index 4f85ebc..a8c29dd 100644
--- a/app/Models/Token.ts
+++ b/app/Models/Token.ts
@@ -1,38 +1,39 @@
1import { DateTime } from 'luxon'; 1import { DateTime } from 'luxon'
2import { BaseModel, column, HasOne, hasOne } from '@ioc:Adonis/Lucid/Orm'; 2import { BaseModel, column, hasOne } from '@adonisjs/lucid/orm'
3import User from './User'; 3import User from './User.js'
4import { HasOne } from '@adonisjs/lucid/types/relations'
4 5
5export default class Token extends BaseModel { 6export default class Token extends BaseModel {
6 @column({ isPrimary: true }) 7 @column({ isPrimary: true })
7 public id: number; 8 public id: number
8 9
9 @hasOne(() => User, { 10 @hasOne(() => User, {
10 localKey: 'user_id', 11 localKey: 'user_id',
11 foreignKey: 'id', 12 foreignKey: 'id',
12 }) 13 })
13 public user: HasOne<typeof User>; 14 public user: HasOne<typeof User>
14 15
15 @column() 16 @column()
16 public user_id: number; 17 public user_id: number
17 18
18 @column() 19 @column()
19 public token: string; 20 public token: string
20 21
21 @column() 22 @column()
22 public type: string; 23 public type: string
23 24
24 @column() 25 @column()
25 public is_revoked: boolean; 26 public is_revoked: boolean
26 27
27 @column() 28 @column()
28 public name: string; 29 public name: string
29 30
30 @column.dateTime() 31 @column.dateTime()
31 public expires_at: DateTime; 32 public expires_at: DateTime
32 33
33 @column.dateTime({ autoCreate: true }) 34 @column.dateTime({ autoCreate: true })
34 public created_at: DateTime; 35 public created_at: DateTime
35 36
36 @column.dateTime({ autoCreate: true, autoUpdate: true }) 37 @column.dateTime({ autoCreate: true, autoUpdate: true })
37 public updated_at: DateTime; 38 public updated_at: DateTime
38} 39}
diff --git a/app/Models/User.ts b/app/Models/User.ts
index 0b8e688..cc2c553 100644
--- a/app/Models/User.ts
+++ b/app/Models/User.ts
@@ -1,75 +1,70 @@
1import { DateTime } from 'luxon'; 1import { DateTime } from 'luxon'
2import { 2import { BaseModel, beforeSave, column, hasMany } from '@adonisjs/lucid/orm'
3 BaseModel, 3import hash from '@adonisjs/core/services/hash'
4 beforeSave, 4import emitter from '@adonisjs/core/services/emitter'
5 column, 5import moment from 'moment'
6 HasMany, 6import Encryption from '@ioc:Adonis/Core/Encryption'
7 hasMany, 7import randtoken from 'rand-token'
8} from '@ioc:Adonis/Lucid/Orm'; 8import Token from './Token.js'
9import Hash from '@ioc:Adonis/Core/Hash'; 9import Workspace from './Workspace.js'
10import Event from '@ioc:Adonis/Core/Event'; 10import Service from './Service.js'
11import moment from 'moment'; 11import mail from '@adonisjs/mail/services/main'
12import Encryption from '@ioc:Adonis/Core/Encryption'; 12import { url } from '#config/app'
13import randtoken from 'rand-token'; 13import { mailFrom } from '#config/dashboard'
14import Token from './Token'; 14import { HasMany } from '@adonisjs/lucid/types/relations'
15import Workspace from './Workspace';
16import Service from './Service';
17import Mail from '@ioc:Adonis/Addons/Mail';
18import { url } from 'Config/app';
19import { mailFrom } from 'Config/dashboard';
20 15
21export default class User extends BaseModel { 16export default class User extends BaseModel {
22 @column({ isPrimary: true }) 17 @column({ isPrimary: true })
23 public id: number; 18 public id: number
24 19
25 @column() 20 @column()
26 public email: string; 21 public email: string
27 22
28 @column() 23 @column()
29 public username: string; 24 public username: string
30 25
31 @column() 26 @column()
32 public password: string; 27 public password: string
33 28
34 @column() 29 @column()
35 public lastname: string; 30 public lastname: string
36 31
37 // TODO: Type the settings object. 32 // TODO: Type the settings object.
38 @column() 33 @column()
39 public settings: object; 34 public settings: object
40 35
41 @column.dateTime({ autoCreate: true }) 36 @column.dateTime({ autoCreate: true })
42 public created_at: DateTime; 37 public created_at: DateTime
43 38
44 @column.dateTime({ autoCreate: true, autoUpdate: true }) 39 @column.dateTime({ autoCreate: true, autoUpdate: true })
45 public updated_at: DateTime; 40 public updated_at: DateTime
46 41
47 @beforeSave() 42 @beforeSave()
48 public static async hashPassword(user: User) { 43 public static async hashPassword(user: User) {
49 if (user.$dirty.password) { 44 if (user.$dirty.password) {
50 user.password = await Hash.make(user.password); 45 user.password = await hash.make(user.password)
51 } 46 }
52 } 47 }
53 48
54 @hasMany(() => Token, { 49 @hasMany(() => Token, {
55 foreignKey: 'user_id', 50 foreignKey: 'user_id',
56 }) 51 })
57 public tokens: HasMany<typeof Token>; 52 public tokens: HasMany<typeof Token>
58 53
59 @hasMany(() => Service, { 54 @hasMany(() => Service, {
60 foreignKey: 'userId', 55 foreignKey: 'userId',
61 }) 56 })
62 public services: HasMany<typeof Service>; 57 public services: HasMany<typeof Service>
63 58
64 @hasMany(() => Workspace, { 59 @hasMany(() => Workspace, {
65 foreignKey: 'userId', 60 foreignKey: 'userId',
66 }) 61 })
67 public workspaces: HasMany<typeof Workspace>; 62 public workspaces: HasMany<typeof Workspace>
68 63
69 public async forgotPassword(): Promise<void> { 64 public async forgotPassword(): Promise<void> {
70 const token = await this.generateToken(this, 'forgot_password'); 65 const token = await this.generateToken(this, 'forgot_password')
71 66
72 await Mail.send(message => { 67 await mail.send((message) => {
73 message 68 message
74 .from(mailFrom) 69 .from(mailFrom)
75 .to(this.email) 70 .to(this.email)
@@ -78,13 +73,13 @@ export default class User extends BaseModel {
78 username: this.username, 73 username: this.username,
79 appUrl: url, 74 appUrl: url,
80 token: token, 75 token: token,
81 }); 76 })
82 }); 77 })
83 78
84 await Event.emit('forgot:password', { 79 await emitter.emit('forgot:password', {
85 user: this, 80 user: this,
86 token, 81 token,
87 }); 82 })
88 } 83 }
89 84
90 private async generateToken(user: User, type: string): Promise<string> { 85 private async generateToken(user: User, type: string): Promise<string> {
@@ -93,21 +88,17 @@ export default class User extends BaseModel {
93 .query() 88 .query()
94 .where('type', type) 89 .where('type', type)
95 .where('is_revoked', false) 90 .where('is_revoked', false)
96 .where( 91 .where('updated_at', '>=', moment().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'))
97 'updated_at',
98 '>=',
99 moment().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'),
100 );
101 92
102 const row = await query.first(); 93 const row = await query.first()
103 if (row) { 94 if (row) {
104 return row.token; 95 return row.token
105 } 96 }
106 97
107 const token = Encryption.encrypt(randtoken.generate(16)); 98 const token = Encryption.encrypt(randtoken.generate(16))
108 99
109 await user.related('tokens').create({ type, token }); 100 await user.related('tokens').create({ type, token })
110 101
111 return token; 102 return token
112 } 103 }
113} 104}
diff --git a/app/Models/Workspace.ts b/app/Models/Workspace.ts
index 8648e02..c960ae4 100644
--- a/app/Models/Workspace.ts
+++ b/app/Models/Workspace.ts
@@ -1,41 +1,42 @@
1import { DateTime } from 'luxon'; 1import { DateTime } from 'luxon'
2import { BaseModel, column, HasOne, hasOne } from '@ioc:Adonis/Lucid/Orm'; 2import { BaseModel, column, hasOne } from '@adonisjs/lucid/orm'
3import User from './User'; 3import User from './User.js'
4import { HasOne } from '@adonisjs/lucid/types/relations'
4 5
5export default class Workspace extends BaseModel { 6export default class Workspace extends BaseModel {
6 @column({ isPrimary: true }) 7 @column({ isPrimary: true })
7 public id: number; 8 public id: number
8 9
9 @column({ 10 @column({
10 columnName: 'workspaceId', 11 columnName: 'workspaceId',
11 }) 12 })
12 public workspaceId: string; 13 public workspaceId: string
13 14
14 @hasOne(() => User, { 15 @hasOne(() => User, {
15 foreignKey: 'userId', 16 foreignKey: 'userId',
16 }) 17 })
17 public user: HasOne<typeof User>; 18 public user: HasOne<typeof User>
18 19
19 @column({ 20 @column({
20 columnName: 'userId', 21 columnName: 'userId',
21 }) 22 })
22 public userId: number; 23 public userId: number
23 24
24 @column() 25 @column()
25 public name: string; 26 public name: string
26 27
27 @column() 28 @column()
28 public order: number; 29 public order: number
29 30
30 @column() 31 @column()
31 public services: string; 32 public services: string
32 33
33 @column() 34 @column()
34 public data: string; 35 public data: string
35 36
36 @column.dateTime({ autoCreate: true }) 37 @column.dateTime({ autoCreate: true })
37 public createdAt: DateTime; 38 public createdAt: DateTime
38 39
39 @column.dateTime({ autoCreate: true, autoUpdate: true }) 40 @column.dateTime({ autoCreate: true, autoUpdate: true })
40 public updatedAt: DateTime; 41 public updatedAt: DateTime
41} 42}
diff --git a/bin/console.ts b/bin/console.ts
new file mode 100644
index 0000000..4b102ee
--- /dev/null
+++ b/bin/console.ts
@@ -0,0 +1,47 @@
1/*
2|--------------------------------------------------------------------------
3| Ace entry point
4|--------------------------------------------------------------------------
5|
6| The "console.ts" file is the entrypoint for booting the AdonisJS
7| command-line framework and executing commands.
8|
9| Commands do not boot the application, unless the currently running command
10| has "options.startApp" flag set to true.
11|
12*/
13
14import 'reflect-metadata'
15import { Ignitor, prettyPrintError } from '@adonisjs/core'
16
17/**
18 * URL to the application root. AdonisJS need it to resolve
19 * paths to file and directories for scaffolding commands
20 */
21const APP_ROOT = new URL('../', import.meta.url)
22
23/**
24 * The importer is used to import files in context of the
25 * application.
26 */
27const IMPORTER = (filePath: string) => {
28 if (filePath.startsWith('./') || filePath.startsWith('../')) {
29 return import(new URL(filePath, APP_ROOT).href)
30 }
31 return import(filePath)
32}
33
34new Ignitor(APP_ROOT, { importer: IMPORTER })
35 .tap((app) => {
36 app.booting(async () => {
37 await import('#start/env')
38 })
39 app.listen('SIGTERM', () => app.terminate())
40 app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate())
41 })
42 .ace()
43 .handle(process.argv.splice(2))
44 .catch((error) => {
45 process.exitCode = 1
46 prettyPrintError(error)
47 })
diff --git a/bin/server.ts b/bin/server.ts
new file mode 100644
index 0000000..fe0fefb
--- /dev/null
+++ b/bin/server.ts
@@ -0,0 +1,45 @@
1/*
2|--------------------------------------------------------------------------
3| HTTP server entrypoint
4|--------------------------------------------------------------------------
5|
6| The "server.ts" file is the entrypoint for starting the AdonisJS HTTP
7| server. Either you can run this file directly or use the "serve"
8| command to run this file and monitor file changes
9|
10*/
11
12import 'reflect-metadata'
13import { Ignitor, prettyPrintError } from '@adonisjs/core'
14
15/**
16 * URL to the application root. AdonisJS need it to resolve
17 * paths to file and directories for scaffolding commands
18 */
19const APP_ROOT = new URL('../', import.meta.url)
20
21/**
22 * The importer is used to import files in context of the
23 * application.
24 */
25const IMPORTER = (filePath: string) => {
26 if (filePath.startsWith('./') || filePath.startsWith('../')) {
27 return import(new URL(filePath, APP_ROOT).href)
28 }
29 return import(filePath)
30}
31
32new Ignitor(APP_ROOT, { importer: IMPORTER })
33 .tap((app) => {
34 app.booting(async () => {
35 await import('#start/env')
36 })
37 app.listen('SIGTERM', () => app.terminate())
38 app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate())
39 })
40 .httpServer()
41 .start()
42 .catch((error) => {
43 process.exitCode = 1
44 prettyPrintError(error)
45 })
diff --git a/bin/test.ts b/bin/test.ts
new file mode 100644
index 0000000..fe7e950
--- /dev/null
+++ b/bin/test.ts
@@ -0,0 +1,60 @@
1/*
2|--------------------------------------------------------------------------
3| Test runner entrypoint
4|--------------------------------------------------------------------------
5|
6| The "test.ts" file is the entrypoint for running tests using Japa.
7|
8| Either you can run this file directly or use the "test"
9| command to run this file and monitor file changes.
10|
11*/
12
13process.env.NODE_ENV = 'test'
14
15import 'reflect-metadata'
16import { Ignitor, prettyPrintError } from '@adonisjs/core'
17import { configure, processCLIArgs, run } from '@japa/runner'
18
19/**
20 * URL to the application root. AdonisJS need it to resolve
21 * paths to file and directories for scaffolding commands
22 */
23const APP_ROOT = new URL('../', import.meta.url)
24
25/**
26 * The importer is used to import files in context of the
27 * application.
28 */
29const IMPORTER = (filePath: string) => {
30 if (filePath.startsWith('./') || filePath.startsWith('../')) {
31 return import(new URL(filePath, APP_ROOT).href)
32 }
33 return import(filePath)
34}
35
36new Ignitor(APP_ROOT, { importer: IMPORTER })
37 .tap((app) => {
38 app.booting(async () => {
39 await import('#start/env')
40 })
41 app.listen('SIGTERM', () => app.terminate())
42 app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate())
43 })
44 .testRunner()
45 .configure(async (app) => {
46 const { runnerHooks, ...config } = await import('../tests/bootstrap.js')
47
48 processCLIArgs(process.argv.splice(2))
49 configure({
50 ...app.rcFile.tests,
51 ...config,
52 setup: runnerHooks.setup,
53 teardown: [...runnerHooks.teardown, () => app.terminate()],
54 })
55 })
56 .run(() => run())
57 .catch((error) => {
58 process.exitCode = 1
59 prettyPrintError(error)
60 })
diff --git a/commands/index.ts b/commands/index.ts
deleted file mode 100644
index d2ad5fb..0000000
--- a/commands/index.ts
+++ /dev/null
@@ -1,21 +0,0 @@
1import { listDirectoryFiles } from '@adonisjs/core/build/standalone';
2import Application from '@ioc:Adonis/Core/Application';
3
4/*
5|--------------------------------------------------------------------------
6| Exporting an array of commands
7|--------------------------------------------------------------------------
8|
9| Instead of manually exporting each file from this directory, we use the
10| helper `listDirectoryFiles` to recursively collect and export an array
11| of filenames.
12|
13| Couple of things to note:
14|
15| 1. The file path must be relative from the project root and not this directory.
16| 2. We must ignore this file to avoid getting into an infinite loop
17|
18*/
19export default listDirectoryFiles(__dirname, Application.appRoot, [
20 './commands/index',
21]);
diff --git a/config/app.ts b/config/app.ts
index fb3c0be..135f20f 100644
--- a/config/app.ts
+++ b/config/app.ts
@@ -5,12 +5,12 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import proxyAddr from 'proxy-addr'; 8import proxyAddr from 'proxy-addr'
9import Env from '@ioc:Adonis/Core/Env'; 9import env from '#start/env'
10import { ServerConfig } from '@ioc:Adonis/Core/Server'; 10import { ProfilerConfig } from '@ioc:Adonis/Core/Profiler'
11import { LoggerConfig } from '@ioc:Adonis/Core/Logger'; 11import { LoggerConfig } from '@adonisjs/core/types/logger'
12import { ProfilerConfig } from '@ioc:Adonis/Core/Profiler'; 12import { ValidatorConfig } from '@adonisjs/validator/types'
13import { ValidatorConfig } from '@ioc:Adonis/Core/Validator'; 13import { defineConfig } from '@adonisjs/core/http'
14 14
15/* 15/*
16|-------------------------------------------------------------------------- 16|--------------------------------------------------------------------------
@@ -25,18 +25,17 @@ import { ValidatorConfig } from '@ioc:Adonis/Core/Validator';
25| be decrypted. 25| be decrypted.
26| 26|
27*/ 27*/
28export const appKey: string = Env.get('APP_KEY'); 28export const appKey: string = env.get('APP_KEY')
29 29
30export const url: string = Env.get('APP_URL'); 30export const url: string = env.get('APP_URL')
31 31
32// TODO: this is parsed as string to be coherent with the previous version of the code we add (before migrating to AdonisJS 5) 32// TODO: this is parsed as string to be coherent with the previous version of the code we add (before migrating to AdonisJS 5)
33export const isRegistrationEnabled: string = Env.get('IS_REGISTRATION_ENABLED'); 33export const isRegistrationEnabled: string = env.get('IS_REGISTRATION_ENABLED')
34export const connectWithFranz: string = Env.get('CONNECT_WITH_FRANZ'); 34export const connectWithFranz: string = env.get('CONNECT_WITH_FRANZ')
35export const isCreationEnabled: string = Env.get('IS_CREATION_ENABLED'); 35export const isCreationEnabled: string = env.get('IS_CREATION_ENABLED')
36export const jwtUsePEM: boolean = 36export const jwtUsePEM: boolean =
37 Env.get('JWT_USE_PEM', false) || 37 env.get('JWT_USE_PEM', false) ||
38 (Env.get('JWT_PUBLIC_KEY', '') !== '' && 38 (env.get('JWT_PUBLIC_KEY', '') !== '' && env.get('JWT_PRIVATE_KEY', '') !== '')
39 Env.get('JWT_PRIVATE_KEY', '') !== '');
40/* 39/*
41|-------------------------------------------------------------------------- 40|--------------------------------------------------------------------------
42| Http server configuration 41| Http server configuration
@@ -46,7 +45,7 @@ export const jwtUsePEM: boolean =
46| the config properties to make keep server secure. 45| the config properties to make keep server secure.
47| 46|
48*/ 47*/
49export const http: ServerConfig = { 48export const http = defineConfig({
50 /* 49 /*
51 |-------------------------------------------------------------------------- 50 |--------------------------------------------------------------------------
52 | Allow method spoofing 51 | Allow method spoofing
@@ -137,7 +136,7 @@ export const http: ServerConfig = {
137 | 136 |
138 */ 137 */
139 forceContentNegotiationTo: 'application/json', 138 forceContentNegotiationTo: 'application/json',
140}; 139})
141 140
142/* 141/*
143|-------------------------------------------------------------------------- 142|--------------------------------------------------------------------------
@@ -157,7 +156,7 @@ export const logger: LoggerConfig = {
157 | reading the `name` property from the `package.json` file. 156 | reading the `name` property from the `package.json` file.
158 | 157 |
159 */ 158 */
160 name: Env.get('APP_NAME', 'Ferdium-server'), 159 name: env.get('APP_NAME', 'Ferdium-server'),
161 160
162 /* 161 /*
163 |-------------------------------------------------------------------------- 162 |--------------------------------------------------------------------------
@@ -179,7 +178,7 @@ export const logger: LoggerConfig = {
179 | at deployment level and not code level. 178 | at deployment level and not code level.
180 | 179 |
181 */ 180 */
182 level: Env.get('LOG_LEVEL', 'info'), 181 level: env.get('LOG_LEVEL', 'info'),
183 182
184 /* 183 /*
185 |-------------------------------------------------------------------------- 184 |--------------------------------------------------------------------------
@@ -190,8 +189,8 @@ export const logger: LoggerConfig = {
190 | can have huge impact on performance. 189 | can have huge impact on performance.
191 | 190 |
192 */ 191 */
193 prettyPrint: Env.get('NODE_ENV') === 'development', 192 prettyPrint: env.get('NODE_ENV') === 'development',
194}; 193}
195 194
196/* 195/*
197|-------------------------------------------------------------------------- 196|--------------------------------------------------------------------------
@@ -230,7 +229,7 @@ export const profiler: ProfilerConfig = {
230 | 229 |
231 */ 230 */
232 whitelist: [], 231 whitelist: [],
233}; 232}
234 233
235/* 234/*
236|-------------------------------------------------------------------------- 235|--------------------------------------------------------------------------
@@ -241,4 +240,4 @@ export const profiler: ProfilerConfig = {
241| to the default config https://git.io/JT0WE 240| to the default config https://git.io/JT0WE
242| 241|
243*/ 242*/
244export const validator: ValidatorConfig = {}; 243export const validator: ValidatorConfig = {}
diff --git a/config/auth.ts b/config/auth.ts
index 28a9b8c..f43bbdb 100644
--- a/config/auth.ts
+++ b/config/auth.ts
@@ -5,9 +5,9 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import { AuthConfig } from '@ioc:Adonis/Addons/Auth'; 8import { AuthConfig } from '@ioc:Adonis/Addons/Auth'
9import Env from '@ioc:Adonis/Core/Env'; 9import env from '#start/env'
10import { appKey, jwtUsePEM } from './app'; 10import { appKey, jwtUsePEM } from './app.js'
11 11
12/* 12/*
13|-------------------------------------------------------------------------- 13|--------------------------------------------------------------------------
@@ -233,12 +233,8 @@ const authConfig: AuthConfig = {
233 driver: 'jwt', 233 driver: 'jwt',
234 secret: jwtUsePEM ? undefined : appKey, 234 secret: jwtUsePEM ? undefined : appKey,
235 algorithmJwt: jwtUsePEM ? undefined : 'HS256', 235 algorithmJwt: jwtUsePEM ? undefined : 'HS256',
236 publicKey: jwtUsePEM 236 publicKey: jwtUsePEM ? env.get('JWT_PUBLIC_KEY', '').replaceAll('\\n', '\n') : undefined,
237 ? Env.get('JWT_PUBLIC_KEY', '').replaceAll('\\n', '\n') 237 privateKey: jwtUsePEM ? env.get('JWT_PRIVATE_KEY', '').replaceAll('\\n', '\n') : undefined,
238 : undefined,
239 privateKey: jwtUsePEM
240 ? Env.get('JWT_PRIVATE_KEY', '').replaceAll('\\n', '\n')
241 : undefined,
242 persistJwt: true, 238 persistJwt: true,
243 // TODO: We should improve the following implementation as this is a security concern. 239 // TODO: We should improve the following implementation as this is a security concern.
244 // The following ts-expect-error is to set exp to undefined (JWT with no expiration) 240 // The following ts-expect-error is to set exp to undefined (JWT with no expiration)
@@ -258,6 +254,6 @@ const authConfig: AuthConfig = {
258 }, 254 },
259 }, 255 },
260 }, 256 },
261}; 257}
262 258
263export default authConfig; 259export default authConfig
diff --git a/config/bodyparser.ts b/config/bodyparser.ts
index b5adcda..b3a027b 100644
--- a/config/bodyparser.ts
+++ b/config/bodyparser.ts
@@ -5,9 +5,10 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import { BodyParserConfig } from '@ioc:Adonis/Core/BodyParser'; 8import { BodyParserConfig } from '@adonisjs/core/bodyparser'
9import { defineConfig } from '@adonisjs/core/bodyparser'
9 10
10const bodyParserConfig: BodyParserConfig = { 11const bodyParserConfig = defineConfig({
11 /* 12 /*
12 |-------------------------------------------------------------------------- 13 |--------------------------------------------------------------------------
13 | White listed methods 14 | White listed methods
@@ -200,6 +201,6 @@ const bodyParserConfig: BodyParserConfig = {
200 */ 201 */
201 types: ['multipart/form-data'], 202 types: ['multipart/form-data'],
202 }, 203 },
203}; 204})
204 205
205export default bodyParserConfig; 206export default bodyParserConfig
diff --git a/config/cors.ts b/config/cors.ts
index dc0e3f6..911326f 100644
--- a/config/cors.ts
+++ b/config/cors.ts
@@ -1,13 +1,6 @@
1/** 1import { defineConfig } from '@adonisjs/cors'
2 * Config source: https://git.io/JfefC
3 *
4 * Feel free to let us know via PR, if you find something broken in this config
5 * file.
6 */
7 2
8import { CorsConfig } from '@ioc:Adonis/Core/Cors'; 3const corsConfig = defineConfig({
9
10const corsConfig: CorsConfig = {
11 /* 4 /*
12 |-------------------------------------------------------------------------- 5 |--------------------------------------------------------------------------
13 | Enabled 6 | Enabled
@@ -129,6 +122,6 @@ const corsConfig: CorsConfig = {
129 | 122 |
130 */ 123 */
131 maxAge: 90, 124 maxAge: 90,
132}; 125})
133 126
134export default corsConfig; 127export default corsConfig
diff --git a/config/dashboard.ts b/config/dashboard.ts
index 18feb14..9e92024 100644
--- a/config/dashboard.ts
+++ b/config/dashboard.ts
@@ -1,5 +1,5 @@
1import Env from '@ioc:Adonis/Core/Env'; 1import env from '#start/env'
2 2
3export const enabled: boolean = Env.get('IS_DASHBOARD_ENABLED') !== 'false'; 3export const enabled: boolean = env.get('IS_DASHBOARD_ENABLED') !== 'false'
4 4
5export const mailFrom: string = Env.get('MAIL_SENDER'); 5export const mailFrom: string = env.get('MAIL_SENDER')
diff --git a/config/database.ts b/config/database.ts
index 65a9455..d2db1c2 100644
--- a/config/database.ts
+++ b/config/database.ts
@@ -1,4 +1,3 @@
1/* eslint-disable @typescript-eslint/indent */
2/** 1/**
3 * Config source: https://git.io/JesV9 2 * Config source: https://git.io/JesV9
4 * 3 *
@@ -6,11 +5,12 @@
6 * file. 5 * file.
7 */ 6 */
8 7
9import path from 'node:path'; 8import path from 'node:path'
10import Env from '@ioc:Adonis/Core/Env'; 9import env from '#start/env'
11import { DatabaseConfig } from '@ioc:Adonis/Lucid/Database'; 10import { DatabaseConfig } from '@adonisjs/lucid/database'
11import { defineConfig } from '@adonisjs/lucid'
12 12
13const databaseConfig: DatabaseConfig = { 13const databaseConfig = defineConfig({
14 /* 14 /*
15 |-------------------------------------------------------------------------- 15 |--------------------------------------------------------------------------
16 | Connection 16 | Connection
@@ -21,7 +21,7 @@ const databaseConfig: DatabaseConfig = {
21 | file. 21 | file.
22 | 22 |
23 */ 23 */
24 connection: Env.get('DB_CONNECTION', 'sqlite'), 24 connection: env.get('DB_CONNECTION', 'sqlite'),
25 25
26 connections: { 26 connections: {
27 /* 27 /*
@@ -39,13 +39,13 @@ const databaseConfig: DatabaseConfig = {
39 client: 'sqlite', 39 client: 'sqlite',
40 connection: { 40 connection: {
41 filename: path.join( 41 filename: path.join(
42 Env.get('DATA_DIR', 'data'), 42 env.get('DATA_DIR', 'data'),
43 `${Env.get('DB_DATABASE', 'ferdium')}.sqlite`, 43 `${env.get('DB_DATABASE', 'ferdium')}.sqlite`
44 ), 44 ),
45 }, 45 },
46 pool: { 46 pool: {
47 afterCreate: (conn, cb) => { 47 afterCreate: (conn, cb) => {
48 conn.run('PRAGMA foreign_keys=true', cb); 48 conn.run('PRAGMA foreign_keys=true', cb)
49 }, 49 },
50 }, 50 },
51 migrations: { 51 migrations: {
@@ -53,7 +53,7 @@ const databaseConfig: DatabaseConfig = {
53 }, 53 },
54 useNullAsDefault: true, 54 useNullAsDefault: true,
55 healthCheck: false, 55 healthCheck: false,
56 debug: Env.get('DB_DEBUG', false), 56 debug: env.get('DB_DEBUG', false),
57 }, 57 },
58 58
59 /* 59 /*
@@ -70,17 +70,17 @@ const databaseConfig: DatabaseConfig = {
70 mysql: { 70 mysql: {
71 client: 'mysql', 71 client: 'mysql',
72 connection: { 72 connection: {
73 host: Env.get('DB_HOST', 'localhost'), 73 host: env.get('DB_HOST', 'localhost'),
74 port: Env.get('DB_PORT', ''), 74 port: env.get('DB_PORT', ''),
75 user: Env.get('DB_USER', 'root'), 75 user: env.get('DB_USER', 'root'),
76 password: Env.get('DB_PASSWORD', ''), 76 password: env.get('DB_PASSWORD', ''),
77 database: Env.get('DB_DATABASE', 'ferdium'), 77 database: env.get('DB_DATABASE', 'ferdium'),
78 }, 78 },
79 migrations: { 79 migrations: {
80 naturalSort: true, 80 naturalSort: true,
81 }, 81 },
82 healthCheck: false, 82 healthCheck: false,
83 debug: Env.get('DB_DEBUG', false), 83 debug: env.get('DB_DEBUG', false),
84 }, 84 },
85 85
86 /* 86 /*
@@ -97,25 +97,25 @@ const databaseConfig: DatabaseConfig = {
97 pg: { 97 pg: {
98 client: 'pg', 98 client: 'pg',
99 connection: { 99 connection: {
100 host: Env.get('DB_HOST', 'localhost'), 100 host: env.get('DB_HOST', 'localhost'),
101 port: Env.get('DB_PORT', ''), 101 port: env.get('DB_PORT', ''),
102 user: Env.get('DB_USER', 'root'), 102 user: env.get('DB_USER', 'root'),
103 password: Env.get('DB_PASSWORD', ''), 103 password: env.get('DB_PASSWORD', ''),
104 database: Env.get('DB_DATABASE', 'ferdium'), 104 database: env.get('DB_DATABASE', 'ferdium'),
105 ssl: Env.get('DB_CA_CERT') 105 ssl: env.get('DB_CA_CERT')
106 ? { 106 ? {
107 rejectUnauthorized: false, 107 rejectUnauthorized: false,
108 ca: Env.get('DB_CA_CERT'), 108 ca: env.get('DB_CA_CERT'),
109 } 109 }
110 : JSON.parse(Env.get('DB_SSL', 'true')), 110 : JSON.parse(env.get('DB_SSL', 'true')),
111 }, 111 },
112 migrations: { 112 migrations: {
113 naturalSort: true, 113 naturalSort: true,
114 }, 114 },
115 healthCheck: false, 115 healthCheck: false,
116 debug: Env.get('DB_DEBUG', false), 116 debug: env.get('DB_DEBUG', false),
117 }, 117 },
118 }, 118 },
119}; 119})
120 120
121export default databaseConfig; 121export default databaseConfig
diff --git a/config/drive.ts b/config/drive.ts
index b6950eb..f099303 100644
--- a/config/drive.ts
+++ b/config/drive.ts
@@ -5,9 +5,9 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import Env from '@ioc:Adonis/Core/Env'; 8import env from '#start/env'
9import { driveConfig } from '@adonisjs/core/build/config'; 9import { driveConfig } from '@adonisjs/core/build/config'
10import Application from '@ioc:Adonis/Core/Application'; 10import { app } from '@adonisjs/core/services/app'
11 11
12/* 12/*
13|-------------------------------------------------------------------------- 13|--------------------------------------------------------------------------
@@ -28,7 +28,7 @@ export default driveConfig({
28 | the `DRIVE_DISK` environment variable. 28 | the `DRIVE_DISK` environment variable.
29 | 29 |
30 */ 30 */
31 disk: Env.get('DRIVE_DISK', 'local'), 31 disk: env.get('DRIVE_DISK', 'local'),
32 32
33 disks: { 33 disks: {
34 /* 34 /*
@@ -53,7 +53,7 @@ export default driveConfig({
53 | files. 53 | files.
54 | 54 |
55 */ 55 */
56 root: Application.tmpPath('uploads'), 56 root: app.tmpPath('uploads'),
57 57
58 /* 58 /*
59 |-------------------------------------------------------------------------- 59 |--------------------------------------------------------------------------
@@ -146,4 +146,4 @@ export default driveConfig({
146 // usingUniformAcl: false, 146 // usingUniformAcl: false,
147 // }, 147 // },
148 }, 148 },
149}); 149})
diff --git a/config/hash.ts b/config/hash.ts
index abe7dd0..22e38bd 100644
--- a/config/hash.ts
+++ b/config/hash.ts
@@ -5,8 +5,9 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import Env from '@ioc:Adonis/Core/Env'; 8import env from '#start/env'
9import { hashConfig } from '@adonisjs/core/build/config'; 9import { defineConfig } from '@adonisjs/core/hash'
10import { drivers } from '@adonisjs/core/hash'
10 11
11/* 12/*
12|-------------------------------------------------------------------------- 13|--------------------------------------------------------------------------
@@ -17,7 +18,7 @@ import { hashConfig } from '@adonisjs/core/build/config';
17| defined inside `contracts` directory. 18| defined inside `contracts` directory.
18| 19|
19*/ 20*/
20export default hashConfig({ 21export default defineConfig({
21 /* 22 /*
22 |-------------------------------------------------------------------------- 23 |--------------------------------------------------------------------------
23 | Default hasher 24 | Default hasher
@@ -28,18 +29,17 @@ export default hashConfig({
28 | 29 |
29 | Default is set to bcrypt to prevent breaking-changes. 30 | Default is set to bcrypt to prevent breaking-changes.
30 */ 31 */
31 default: Env.get('HASH_DRIVER', 'scrypt'), 32 default: env.get('HASH_DRIVER', 'scrypt'),
32 33
33 list: { 34 list: {
34 scrypt: { 35 scrypt: drivers.scrypt({
35 driver: 'scrypt',
36 cost: 16_384, 36 cost: 16_384,
37 blockSize: 8, 37 blockSize: 8,
38 parallelization: 1, 38 parallelization: 1,
39 saltSize: 16, 39 saltSize: 16,
40 keyLength: 64, 40 keyLength: 64,
41 maxMemory: 32 * 1024 * 1024, 41 maxMemory: 32 * 1024 * 1024,
42 }, 42 }),
43 /* 43 /*
44 |-------------------------------------------------------------------------- 44 |--------------------------------------------------------------------------
45 | Argon 45 | Argon
@@ -53,14 +53,13 @@ export default hashConfig({
53 | npm install phc-argon2 53 | npm install phc-argon2
54 | 54 |
55 */ 55 */
56 argon: { 56 argon: drivers.argon2({
57 driver: 'argon2',
58 variant: 'id', 57 variant: 'id',
59 iterations: 3, 58 iterations: 3,
60 memory: 4096, 59 memory: 4096,
61 parallelism: 1, 60 parallelism: 1,
62 saltSize: 16, 61 saltSize: 16,
63 }, 62 }),
64 63
65 /* 64 /*
66 |-------------------------------------------------------------------------- 65 |--------------------------------------------------------------------------
@@ -75,14 +74,17 @@ export default hashConfig({
75 | npm install phc-bcrypt 74 | npm install phc-bcrypt
76 | 75 |
77 */ 76 */
78 bcrypt: { 77 bcrypt: drivers.bcrypt({
79 driver: 'bcrypt',
80 rounds: 10, 78 rounds: 10,
81 }, 79 }),
82 80
83 legacy: { 81 legacy: {
84 // @ts-expect-error 82 // @ts-expect-error
85 driver: 'legacy', 83 driver: 'legacy',
86 }, 84 },
87 }, 85 },
88}); 86})
87
88declare module '@adonisjs/core/types' {
89 export interface HashersList extends InferHashers<typeof hashConfig> {}
90}
diff --git a/config/mail.ts b/config/mail.ts
index 3f688ce..7d650d5 100644
--- a/config/mail.ts
+++ b/config/mail.ts
@@ -5,10 +5,10 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import Env from '@ioc:Adonis/Core/Env'; 8import env from '#start/env'
9import { mailConfig } from '@adonisjs/mail/build/config'; 9import { defineConfig } from '@adonisjs/mail'
10 10
11export default mailConfig({ 11export default defineConfig({
12 /* 12 /*
13 |-------------------------------------------------------------------------- 13 |--------------------------------------------------------------------------
14 | Default mailer 14 | Default mailer
@@ -18,7 +18,7 @@ export default mailConfig({
18 | a mailer 18 | a mailer
19 | 19 |
20 */ 20 */
21 mailer: Env.get('MAIL_CONNECTION', 'smtp'), 21 mailer: env.get('MAIL_CONNECTION', 'smtp'),
22 22
23 /* 23 /*
24 |-------------------------------------------------------------------------- 24 |--------------------------------------------------------------------------
@@ -42,22 +42,21 @@ export default mailConfig({
42 | Uses SMTP protocol for sending email 42 | Uses SMTP protocol for sending email
43 | 43 |
44 */ 44 */
45 smtp: { 45 smtp: drivers.smtp({
46 driver: 'smtp', 46 name: env.get('APP_URL'),
47 name: Env.get('APP_URL'), 47 port: env.get('SMTP_PORT', '2525'),
48 port: Env.get('SMTP_PORT', '2525'), 48 host: env.get('SMTP_HOST', 'localhost'),
49 host: Env.get('SMTP_HOST', 'localhost'), 49 secure: JSON.parse(env.get('MAIL_SSL', 'false')),
50 secure: JSON.parse(Env.get('MAIL_SSL', 'false')), 50 requireTLS: JSON.parse(env.get('MAIL_REQUIRE_TLS', 'false')),
51 requireTLS: JSON.parse(Env.get('MAIL_REQUIRE_TLS', 'false')),
52 auth: { 51 auth: {
53 user: Env.get('MAIL_USERNAME'), 52 user: env.get('MAIL_USERNAME'),
54 pass: Env.get('MAIL_PASSWORD'), 53 pass: env.get('MAIL_PASSWORD'),
55 type: 'login', 54 type: 'login',
56 }, 55 },
57 maxConnections: 5, 56 maxConnections: 5,
58 maxMessages: 100, 57 maxMessages: 100,
59 rateLimit: 10, 58 rateLimit: 10,
60 }, 59 }),
61 60
62 /* 61 /*
63 |-------------------------------------------------------------------------- 62 |--------------------------------------------------------------------------
@@ -72,47 +71,48 @@ export default mailConfig({
72 | ``` 71 | ```
73 | 72 |
74 */ 73 */
75 ses: { 74 ses: drivers.ses({
76 driver: 'ses',
77 apiVersion: '2010-12-01', 75 apiVersion: '2010-12-01',
78 key: Env.get('SES_ACCESS_KEY'), 76 key: env.get('SES_ACCESS_KEY'),
79 secret: Env.get('SES_ACCESS_SECRET'), 77 secret: env.get('SES_ACCESS_SECRET'),
80 region: Env.get('SES_REGION'), 78 region: env.get('SES_REGION'),
81 sslEnabled: true, 79 sslEnabled: true,
82 sendingRate: 10, 80 sendingRate: 10,
83 maxConnections: 5, 81 maxConnections: 5,
84 }, 82 }),
85 83
86 /* 84 /*
87 |-------------------------------------------------------------------------- 85 |--------------------------------------------------------------------------
88 | Mailgun 86 | Mailgun
89 |-------------------------------------------------------------------------- 87 |--------------------------------------------------------------------------
90 | 88 |
91 | Uses Mailgun service for sending emails. 89 | Uses Mailgun service for sending emails.
92 | 90 |
93 | If you are using an EU domain. Ensure to change the baseUrl to hit the 91 | If you are using an EU domain. Ensure to change the baseUrl to hit the
94 | europe endpoint (https://api.eu.mailgun.net/v3). 92 | europe endpoint (https://api.eu.mailgun.net/v3).
95 | 93 |
96 */ 94 */
97 mailgun: { 95 mailgun: drivers.mailgun({
98 driver: 'mailgun',
99 baseUrl: 'https://api.mailgun.net/v3', 96 baseUrl: 'https://api.mailgun.net/v3',
100 key: Env.get('MAILGUN_API_KEY'), 97 key: env.get('MAILGUN_API_KEY'),
101 domain: Env.get('MAILGUN_DOMAIN'), 98 domain: env.get('MAILGUN_DOMAIN'),
102 }, 99 }),
103 100
104 /* 101 /*
105 |-------------------------------------------------------------------------- 102 |--------------------------------------------------------------------------
106 | SparkPost 103 | SparkPost
107 |-------------------------------------------------------------------------- 104 |--------------------------------------------------------------------------
108 | 105 |
109 | Uses Sparkpost service for sending emails. 106 | Uses Sparkpost service for sending emails.
110 | 107 |
111 */ 108 */
112 sparkpost: { 109 sparkpost: drivers.sparkpost({
113 driver: 'sparkpost',
114 baseUrl: 'https://api.sparkpost.com/api/v1', 110 baseUrl: 'https://api.sparkpost.com/api/v1',
115 key: Env.get('SPARKPOST_API_KEY'), 111 key: env.get('SPARKPOST_API_KEY'),
116 }, 112 }),
117 }, 113 },
118}); 114})
115
116declare module '@adonisjs/mail/types' {
117 export interface MailersList extends InferMailers<typeof mailConfig> {}
118}
diff --git a/config/session.ts b/config/session.ts
index fbf8c7c..299eec3 100644
--- a/config/session.ts
+++ b/config/session.ts
@@ -5,11 +5,11 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import Env from '@ioc:Adonis/Core/Env'; 8import env from '#start/env'
9import Application from '@ioc:Adonis/Core/Application'; 9import { app } from '@adonisjs/core/services/app'
10import { sessionConfig } from '@adonisjs/session/build/config'; 10import { defineConfig } from '@adonisjs/session'
11 11
12export default sessionConfig({ 12export default defineConfig({
13 /* 13 /*
14 |-------------------------------------------------------------------------- 14 |--------------------------------------------------------------------------
15 | Enable/Disable sessions 15 | Enable/Disable sessions
@@ -36,7 +36,7 @@ export default sessionConfig({
36 | Note: Switching drivers will make existing sessions invalid. 36 | Note: Switching drivers will make existing sessions invalid.
37 | 37 |
38 */ 38 */
39 driver: Env.get('SESSION_DRIVER', 'cookie'), 39 driver: env.get('SESSION_DRIVER', 'cookie'),
40 40
41 /* 41 /*
42 |-------------------------------------------------------------------------- 42 |--------------------------------------------------------------------------
@@ -100,7 +100,7 @@ export default sessionConfig({
100 | 100 |
101 */ 101 */
102 file: { 102 file: {
103 location: Application.tmpPath('sessions'), 103 location: app.tmpPath('sessions'),
104 }, 104 },
105 105
106 /* 106 /*
@@ -113,4 +113,4 @@ export default sessionConfig({
113 | 113 |
114 */ 114 */
115 redisConnection: 'local', 115 redisConnection: 'local',
116}); 116})
diff --git a/config/shield.ts b/config/shield.ts
index 3566e1c..c88df25 100644
--- a/config/shield.ts
+++ b/config/shield.ts
@@ -1,243 +1,138 @@
1/** 1import env from '#start/env'
2 * Config source: https://git.io/Jvwvt 2import { defineConfig } from '@adonisjs/shield'
3 *
4 * Feel free to let us know via PR, if you find something broken in this config
5 * file.
6 */
7 3
8import Env from '@ioc:Adonis/Core/Env'; 4export default defineConfig({
9import { ShieldConfig } from '@ioc:Adonis/Addons/Shield'; 5 csp: {
6 /*
7 |--------------------------------------------------------------------------
8 | Enable/disable CSP
9 |--------------------------------------------------------------------------
10 |
11 | The CSP rules are disabled by default for seamless onboarding.
12 |
13 */
14 enabled: false,
10 15
11/* 16 /*
12|-------------------------------------------------------------------------- 17 |--------------------------------------------------------------------------
13| Content Security Policy 18 | Directives
14|-------------------------------------------------------------------------- 19 |--------------------------------------------------------------------------
15| 20 |
16| Content security policy filters out the origins not allowed to execute 21 | All directives are defined in camelCase and here is the list of
17| and load resources like scripts, styles and fonts. There are wide 22 | available directives and their possible values.
18| variety of options to choose from. 23 |
19*/ 24 | https://content-security-policy.com
20export const csp: ShieldConfig['csp'] = { 25 |
21 /* 26 | @example
22 |-------------------------------------------------------------------------- 27 | directives: {
23 | Enable/disable CSP 28 | defaultSrc: ["'self'", '@nonce', 'cdnjs.cloudflare.com']
24 |-------------------------------------------------------------------------- 29 | }
25 | 30 |
26 | The CSP rules are disabled by default for seamless onboarding. 31 */
27 | 32 directives: {},
28 */
29 enabled: false,
30 33
31 /* 34 /*
32 |-------------------------------------------------------------------------- 35 |--------------------------------------------------------------------------
33 | Directives 36 | Report only
34 |-------------------------------------------------------------------------- 37 |--------------------------------------------------------------------------
35 | 38 |
36 | All directives are defined in camelCase and here is the list of 39 | Setting `reportOnly=true` will not block the scripts from running and
37 | available directives and their possible values. 40 | instead report them to a URL.
38 | 41 |
39 | https://content-security-policy.com 42 */
40 | 43 reportOnly: false,
41 | @example
42 | directives: {
43 | defaultSrc: ["'self'", '@nonce', 'cdnjs.cloudflare.com']
44 | }
45 |
46 */
47 directives: {},
48
49 /*
50 |--------------------------------------------------------------------------
51 | Report only
52 |--------------------------------------------------------------------------
53 |
54 | Setting `reportOnly=true` will not block the scripts from running and
55 | instead report them to a URL.
56 |
57 */
58 reportOnly: false,
59};
60
61/*
62|--------------------------------------------------------------------------
63| CSRF Protection
64|--------------------------------------------------------------------------
65|
66| CSRF Protection adds another layer of security by making sure, actionable
67| routes does have a valid token to execute an action.
68|
69*/
70export const csrf: ShieldConfig['csrf'] = {
71 /*
72 |--------------------------------------------------------------------------
73 | Enable/Disable CSRF
74 |--------------------------------------------------------------------------
75 */
76 enabled: Env.get('NODE_ENV') === 'production',
77
78 /*
79 |--------------------------------------------------------------------------
80 | Routes to Ignore
81 |--------------------------------------------------------------------------
82 |
83 | Define an array of route patterns that you want to ignore from CSRF
84 | validation. Make sure the route patterns are started with a leading
85 | slash. Example:
86 |
87 | `/foo/bar`
88 |
89 | Also you can define a function that is evaluated on every HTTP Request.
90 | ```
91 | exceptRoutes: ({ request }) => request.url().includes('/api')
92 | ```
93 |
94 */
95 exceptRoutes: ctx => {
96 // ignore all routes starting with /v1/ (api)
97 return (
98 ctx.request.url().includes('/v1/') ||
99 ctx.request.url().includes('/import')
100 );
101 }, 44 },
45 csrf: {
46 /*
47 |--------------------------------------------------------------------------
48 | Enable/Disable CSRF
49 |--------------------------------------------------------------------------
50 */
51 enabled: env.get('NODE_ENV') === 'production',
102 52
103 /* 53 /*
104 |-------------------------------------------------------------------------- 54 |--------------------------------------------------------------------------
105 | Enable Sharing Token Via Cookie 55 | Routes to Ignore
106 |-------------------------------------------------------------------------- 56 |--------------------------------------------------------------------------
107 | 57 |
108 | When the following flag is enabled, AdonisJS will drop `XSRF-TOKEN` 58 | Define an array of route patterns that you want to ignore from CSRF
109 | cookie that frontend frameworks can read and return back as a 59 | validation. Make sure the route patterns are started with a leading
110 | `X-XSRF-TOKEN` header. 60 | slash. Example:
111 | 61 |
112 | The cookie has `httpOnly` flag set to false, so it is little insecure and 62 | `/foo/bar`
113 | can be turned off when you are not using a frontend framework making 63 |
114 | AJAX requests. 64 | Also you can define a function that is evaluated on every HTTP Request.
115 | 65 | ```
116 */ 66 | exceptRoutes: ({ request }) => request.url().includes('/api')
117 enableXsrfCookie: true, 67 | ```
118 68 |
119 /* 69 */
120 |-------------------------------------------------------------------------- 70 exceptRoutes: (ctx) => {
121 | Methods to Validate 71 // ignore all routes starting with /v1/ (api)
122 |-------------------------------------------------------------------------- 72 return ctx.request.url().includes('/v1/') || ctx.request.url().includes('/import')
123 | 73 },
124 | Define an array of HTTP methods to be validated for a valid CSRF token.
125 |
126 */
127 methods: ['POST', 'PUT', 'PATCH', 'DELETE'],
128};
129
130/*
131|--------------------------------------------------------------------------
132| DNS Prefetching
133|--------------------------------------------------------------------------
134|
135| DNS prefetching allows browsers to proactively perform domain name
136| resolution in background.
137|
138| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control
139|
140*/
141export const dnsPrefetch: ShieldConfig['dnsPrefetch'] = {
142 /*
143 |--------------------------------------------------------------------------
144 | Enable/disable this feature
145 |--------------------------------------------------------------------------
146 */
147 enabled: true,
148 74
149 /* 75 /*
150 |-------------------------------------------------------------------------- 76 |--------------------------------------------------------------------------
151 | Allow or Dis-Allow Explicitly 77 | Enable Sharing Token Via Cookie
152 |-------------------------------------------------------------------------- 78 |--------------------------------------------------------------------------
153 | 79 |
154 | The `enabled` boolean does not set `X-DNS-Prefetch-Control` header. However 80 | When the following flag is enabled, AdonisJS will drop `XSRF-TOKEN`
155 | the `allow` boolean controls the value of `X-DNS-Prefetch-Control` header. 81 | cookie that frontend frameworks can read and return back as a
156 | 82 | `X-XSRF-TOKEN` header.
157 | - When `allow = true`, then `X-DNS-Prefetch-Control = 'on'` 83 |
158 | - When `allow = false`, then `X-DNS-Prefetch-Control = 'off'` 84 | The cookie has `httpOnly` flag set to false, so it is little insecure and
159 | 85 | can be turned off when you are not using a frontend framework making
160 */ 86 | AJAX requests.
161 allow: true, 87 |
162}; 88 */
89 enableXsrfCookie: true,
163 90
164/* 91 /*
165|-------------------------------------------------------------------------- 92 |--------------------------------------------------------------------------
166| Iframe Options 93 | Methods to Validate
167|-------------------------------------------------------------------------- 94 |--------------------------------------------------------------------------
168| 95 |
169| xFrame defines whether or not your website can be embedded inside an 96 | Define an array of HTTP methods to be validated for a valid CSRF token.
170| iframe. Choose from one of the following options. 97 |
171| 98 */
172| - DENY 99 methods: ['POST', 'PUT', 'PATCH', 'DELETE'],
173| - SAMEORIGIN 100 },
174| - ALLOW-FROM http://example.com 101 hsts: {
175| 102 enabled: true,
176| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options 103 /*
177*/ 104 |--------------------------------------------------------------------------
178export const xFrame: ShieldConfig['xFrame'] = { 105 | Max Age
179 enabled: true, 106 |--------------------------------------------------------------------------
180 action: 'DENY', 107 |
181}; 108 | Control, how long the browser should remember that a site is only to be
182 109 | accessed using HTTPS.
183/* 110 |
184|-------------------------------------------------------------------------- 111 */
185| Http Strict Transport Security 112 maxAge: '180 days',
186|--------------------------------------------------------------------------
187|
188| A security to ensure that a browser always makes a connection over
189| HTTPS.
190|
191| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
192|
193*/
194export const hsts: ShieldConfig['hsts'] = {
195 enabled: true,
196 /*
197 |--------------------------------------------------------------------------
198 | Max Age
199 |--------------------------------------------------------------------------
200 |
201 | Control, how long the browser should remember that a site is only to be
202 | accessed using HTTPS.
203 |
204 */
205 maxAge: '180 days',
206
207 /*
208 |--------------------------------------------------------------------------
209 | Include Subdomains
210 |--------------------------------------------------------------------------
211 |
212 | Apply rules on the subdomains as well.
213 |
214 */
215 includeSubDomains: true,
216 113
217 /* 114 /*
218 |-------------------------------------------------------------------------- 115 |--------------------------------------------------------------------------
219 | Preloading 116 | Include Subdomains
220 |-------------------------------------------------------------------------- 117 |--------------------------------------------------------------------------
221 | 118 |
222 | Google maintains a service to register your domain and it will preload 119 | Apply rules on the subdomains as well.
223 | the HSTS policy. Learn more https://hstspreload.org/ 120 |
224 | 121 */
225 */ 122 includeSubDomains: true,
226 preload: false,
227};
228 123
229/* 124 /*
230|-------------------------------------------------------------------------- 125 |--------------------------------------------------------------------------
231| No Sniff 126 | Preloading
232|-------------------------------------------------------------------------- 127 |--------------------------------------------------------------------------
233| 128 |
234| Browsers have a habit of sniffing content-type of a response. Which means 129 | Google maintains a service to register your domain and it will preload
235| files with .txt extension containing Javascript code will be executed as 130 | the HSTS policy. Learn more https://hstspreload.org/
236| Javascript. You can disable this behavior by setting nosniff to false. 131 |
237| 132 */
238| Learn more at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options 133 preload: false,
239| 134 },
240*/ 135 contentTypeSniffing: {
241export const contentTypeSniffing: ShieldConfig['contentTypeSniffing'] = { 136 enabled: true,
242 enabled: true, 137 },
243}; 138})
diff --git a/config/static.ts b/config/static.ts
index 1f7c88f..1d0d0c3 100644
--- a/config/static.ts
+++ b/config/static.ts
@@ -1,10 +1,10 @@
1import { AssetsConfig } from '@ioc:Adonis/Core/Static'; 1import { defineConfig } from '@adonisjs/static'
2 2
3const staticConfig: AssetsConfig = { 3const staticConfig = defineConfig({
4 enabled: true, 4 enabled: true,
5 dotFiles: 'ignore', 5 dotFiles: 'ignore',
6 etag: true, 6 etag: true,
7 lastModified: true, 7 lastModified: true,
8}; 8})
9 9
10export default staticConfig; 10export default staticConfig
diff --git a/contracts/env.ts b/contracts/env.ts
deleted file mode 100644
index e1fd92e..0000000
--- a/contracts/env.ts
+++ /dev/null
@@ -1,23 +0,0 @@
1/**
2 * Contract source: https://git.io/JTm6U
3 *
4 * Feel free to let us know via PR, if you find something broken in this contract
5 * file.
6 */
7
8declare module '@ioc:Adonis/Core/Env' {
9 /*
10 |--------------------------------------------------------------------------
11 | Getting types for validated environment variables
12 |--------------------------------------------------------------------------
13 |
14 | The `default` export from the "../env.ts" file exports types for the
15 | validated environment variables. Here we merge them with the `EnvTypes`
16 | interface so that you can enjoy intellisense when using the "Env"
17 | module.
18 |
19 */
20
21 type CustomTypes = typeof import('../env').default;
22 interface EnvTypes extends CustomTypes {}
23}
diff --git a/contracts/hash.ts b/contracts/hash.ts
deleted file mode 100644
index af336c7..0000000
--- a/contracts/hash.ts
+++ /dev/null
@@ -1,26 +0,0 @@
1/**
2 * Contract source: https://git.io/Jfefs
3 *
4 * Feel free to let us know via PR, if you find something broken in this contract
5 * file.
6 */
7
8import { InferListFromConfig } from '@adonisjs/core/build/config';
9import hashConfig from '../config/hash';
10
11declare module '@ioc:Adonis/Core/Hash' {
12 interface HashersList extends InferListFromConfig<typeof hashConfig> {
13 bcrypt: {
14 config: BcryptConfig;
15 implementation: BcryptContract;
16 };
17 argon: {
18 config: ArgonConfig;
19 implementation: ArgonContract;
20 };
21 legacy: {
22 config: BcryptConfig;
23 implementation: HashDriverContract;
24 };
25 }
26}
diff --git a/contracts/mail.ts b/contracts/mail.ts
deleted file mode 100644
index 0ea307f..0000000
--- a/contracts/mail.ts
+++ /dev/null
@@ -1,13 +0,0 @@
1/**
2 * Contract source: https://git.io/JvgAT
3 *
4 * Feel free to let us know via PR, if you find something broken in this contract
5 * file.
6 */
7
8import { InferMailersFromConfig } from '@adonisjs/mail/build/config';
9import mailConfig from '../config/mail';
10
11declare module '@ioc:Adonis/Addons/Mail' {
12 interface MailersList extends InferMailersFromConfig<typeof mailConfig> {}
13}
diff --git a/database/factories/ServiceFactory.ts b/database/factories/ServiceFactory.ts
index f675063..696a049 100644
--- a/database/factories/ServiceFactory.ts
+++ b/database/factories/ServiceFactory.ts
@@ -1,8 +1,8 @@
1import Service from 'App/Models/Service'; 1import Service from '#app/Models/Service'
2import Factory from '@ioc:Adonis/Lucid/Factory'; 2import Factory from '@adonisjs/lucid/factories'
3 3
4export default Factory.define(Service, ({ faker }) => ({ 4export default Factory.define(Service, ({ faker }) => ({
5 name: faker.company.name(), 5 name: faker.company.name(),
6 recipeId: faker.string.alphanumeric(9), 6 recipeId: faker.string.alphanumeric(9),
7 serviceId: faker.string.alphanumeric(10), 7 serviceId: faker.string.alphanumeric(10),
8})).build(); 8})).build()
diff --git a/database/factories/TokenFactory.ts b/database/factories/TokenFactory.ts
index 5afc679..0774dcd 100644
--- a/database/factories/TokenFactory.ts
+++ b/database/factories/TokenFactory.ts
@@ -1,6 +1,6 @@
1import Token from 'App/Models/Token'; 1import Token from '#app/Models/Token'
2import Factory from '@ioc:Adonis/Lucid/Factory'; 2import Factory from '@adonisjs/lucid/factories'
3import { DateTime } from 'luxon'; 3import { DateTime } from 'luxon'
4 4
5export default Factory.define(Token, async ({ faker }) => ({ 5export default Factory.define(Token, async ({ faker }) => ({
6 token: faker.string.alphanumeric(32), 6 token: faker.string.alphanumeric(32),
@@ -9,9 +9,6 @@ export default Factory.define(Token, async ({ faker }) => ({
9 created_at: DateTime.now(), 9 created_at: DateTime.now(),
10 updated_at: DateTime.now(), 10 updated_at: DateTime.now(),
11})) 11}))
12 .state( 12 .state('old_token', (token) => (token.updated_at = DateTime.now().minus({ hours: 25 })))
13 'old_token', 13 .state('revoked', (token) => (token.is_revoked = true))
14 token => (token.updated_at = DateTime.now().minus({ hours: 25 })), 14 .build()
15 )
16 .state('revoked', token => (token.is_revoked = true))
17 .build();
diff --git a/database/factories/UserFactory.ts b/database/factories/UserFactory.ts
index ee6553e..caa2ea9 100644
--- a/database/factories/UserFactory.ts
+++ b/database/factories/UserFactory.ts
@@ -1,13 +1,10 @@
1import User from 'App/Models/User'; 1import User from '#app/Models/User'
2import Factory from '@ioc:Adonis/Lucid/Factory'; 2import Factory from '@adonisjs/lucid/factories'
3import WorkspaceFactory from './WorkspaceFactory'; 3import WorkspaceFactory from './WorkspaceFactory.js'
4import ServiceFactory from './ServiceFactory'; 4import ServiceFactory from './ServiceFactory.js'
5import crypto from 'node:crypto'; 5import crypto from 'node:crypto'
6 6
7const hashedPassword = crypto 7const hashedPassword = crypto.createHash('sha256').update('password').digest('base64')
8 .createHash('sha256')
9 .update('password')
10 .digest('base64');
11 8
12export default Factory.define(User, async ({ faker }) => ({ 9export default Factory.define(User, async ({ faker }) => ({
13 email: faker.internet.email(), 10 email: faker.internet.email(),
@@ -18,4 +15,4 @@ export default Factory.define(User, async ({ faker }) => ({
18})) 15}))
19 .relation('workspaces', () => WorkspaceFactory) 16 .relation('workspaces', () => WorkspaceFactory)
20 .relation('services', () => ServiceFactory) 17 .relation('services', () => ServiceFactory)
21 .build(); 18 .build()
diff --git a/database/factories/WorkspaceFactory.ts b/database/factories/WorkspaceFactory.ts
index 40cda6b..7d29829 100644
--- a/database/factories/WorkspaceFactory.ts
+++ b/database/factories/WorkspaceFactory.ts
@@ -1,7 +1,7 @@
1import Workspace from 'App/Models/Workspace'; 1import Workspace from '#app/Models/Workspace'
2import Factory from '@ioc:Adonis/Lucid/Factory'; 2import Factory from '@adonisjs/lucid/factories'
3 3
4export default Factory.define(Workspace, ({ faker }) => ({ 4export default Factory.define(Workspace, ({ faker }) => ({
5 name: faker.internet.userName(), 5 name: faker.internet.userName(),
6 workspaceId: faker.string.alphanumeric(10), 6 workspaceId: faker.string.alphanumeric(10),
7})).build(); 7})).build()
diff --git a/database/migrations/1503250034279_user.ts b/database/migrations/1503250034279_user.ts
index 262a472..4a58213 100644
--- a/database/migrations/1503250034279_user.ts
+++ b/database/migrations/1503250034279_user.ts
@@ -1,20 +1,20 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 protected tableName = 'users'; 4 protected tableName = 'users'
5 5
6 public async up(): Promise<void> { 6 public async up(): Promise<void> {
7 this.schema.createTable(this.tableName, table => { 7 this.schema.createTable(this.tableName, (table) => {
8 table.increments(); 8 table.increments()
9 table.string('username', 80).notNullable(); 9 table.string('username', 80).notNullable()
10 table.string('email', 254).notNullable().unique(); 10 table.string('email', 254).notNullable().unique()
11 table.string('password', 60).notNullable(); 11 table.string('password', 60).notNullable()
12 table.json('settings'); 12 table.json('settings')
13 table.timestamps(); 13 table.timestamps()
14 }); 14 })
15 } 15 }
16 16
17 public async down(): Promise<void> { 17 public async down(): Promise<void> {
18 this.schema.dropTable(this.tableName); 18 this.schema.dropTable(this.tableName)
19 } 19 }
20} 20}
diff --git a/database/migrations/1503250034280_token.ts b/database/migrations/1503250034280_token.ts
index 5a030d0..3830c98 100644
--- a/database/migrations/1503250034280_token.ts
+++ b/database/migrations/1503250034280_token.ts
@@ -1,20 +1,20 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 protected tableName = 'tokens'; 4 protected tableName = 'tokens'
5 5
6 public async up(): Promise<void> { 6 public async up(): Promise<void> {
7 this.schema.createTable(this.tableName, table => { 7 this.schema.createTable(this.tableName, (table) => {
8 table.increments(); 8 table.increments()
9 table.integer('user_id').unsigned().references('users.id'); 9 table.integer('user_id').unsigned().references('users.id')
10 table.string('token', 255).notNullable().unique().index(); 10 table.string('token', 255).notNullable().unique().index()
11 table.string('type', 80).notNullable(); 11 table.string('type', 80).notNullable()
12 table.boolean('is_revoked').defaultTo(false); 12 table.boolean('is_revoked').defaultTo(false)
13 table.timestamps(); 13 table.timestamps()
14 }); 14 })
15 } 15 }
16 16
17 public async down(): Promise<void> { 17 public async down(): Promise<void> {
18 this.schema.dropTable(this.tableName); 18 this.schema.dropTable(this.tableName)
19 } 19 }
20} 20}
diff --git a/database/migrations/1566385379883_service_schema.ts b/database/migrations/1566385379883_service_schema.ts
index 9c3e23d..3c46cab 100644
--- a/database/migrations/1566385379883_service_schema.ts
+++ b/database/migrations/1566385379883_service_schema.ts
@@ -1,21 +1,21 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 protected tableName = 'services'; 4 protected tableName = 'services'
5 5
6 public async up(): Promise<void> { 6 public async up(): Promise<void> {
7 this.schema.createTable(this.tableName, table => { 7 this.schema.createTable(this.tableName, (table) => {
8 table.increments(); 8 table.increments()
9 table.string('userId', 80).notNullable(); 9 table.string('userId', 80).notNullable()
10 table.string('serviceId', 80).notNullable(); 10 table.string('serviceId', 80).notNullable()
11 table.string('name', 80).notNullable(); 11 table.string('name', 80).notNullable()
12 table.string('recipeId', 254).notNullable(); 12 table.string('recipeId', 254).notNullable()
13 table.json('settings'); 13 table.json('settings')
14 table.timestamps(); 14 table.timestamps()
15 }); 15 })
16 } 16 }
17 17
18 public async down(): Promise<void> { 18 public async down(): Promise<void> {
19 this.schema.dropTable(this.tableName); 19 this.schema.dropTable(this.tableName)
20 } 20 }
21} 21}
diff --git a/database/migrations/1566554231482_recipe_schema.ts b/database/migrations/1566554231482_recipe_schema.ts
index 3a9784d..567c89f 100644
--- a/database/migrations/1566554231482_recipe_schema.ts
+++ b/database/migrations/1566554231482_recipe_schema.ts
@@ -1,19 +1,19 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 protected tableName = 'recipes'; 4 protected tableName = 'recipes'
5 5
6 public async up(): Promise<void> { 6 public async up(): Promise<void> {
7 this.schema.createTable(this.tableName, table => { 7 this.schema.createTable(this.tableName, (table) => {
8 table.increments(); 8 table.increments()
9 table.string('name', 80).notNullable(); 9 table.string('name', 80).notNullable()
10 table.string('recipeId', 254).notNullable().unique(); 10 table.string('recipeId', 254).notNullable().unique()
11 table.json('data'); 11 table.json('data')
12 table.timestamps(); 12 table.timestamps()
13 }); 13 })
14 } 14 }
15 15
16 public async down(): Promise<void> { 16 public async down(): Promise<void> {
17 this.schema.dropTable(this.tableName); 17 this.schema.dropTable(this.tableName)
18 } 18 }
19} 19}
diff --git a/database/migrations/1566554359294_workspace_schema.ts b/database/migrations/1566554359294_workspace_schema.ts
index 77e1189..b863200 100644
--- a/database/migrations/1566554359294_workspace_schema.ts
+++ b/database/migrations/1566554359294_workspace_schema.ts
@@ -1,22 +1,22 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 protected tableName = 'workspaces'; 4 protected tableName = 'workspaces'
5 5
6 public async up(): Promise<void> { 6 public async up(): Promise<void> {
7 this.schema.createTable(this.tableName, table => { 7 this.schema.createTable(this.tableName, (table) => {
8 table.increments(); 8 table.increments()
9 table.string('workspaceId', 80).notNullable().unique(); 9 table.string('workspaceId', 80).notNullable().unique()
10 table.string('userId', 80).notNullable(); 10 table.string('userId', 80).notNullable()
11 table.string('name', 80).notNullable(); 11 table.string('name', 80).notNullable()
12 table.integer('order'); 12 table.integer('order')
13 table.json('services'); 13 table.json('services')
14 table.json('data'); 14 table.json('data')
15 table.timestamps(); 15 table.timestamps()
16 }); 16 })
17 } 17 }
18 18
19 public async down(): Promise<void> { 19 public async down(): Promise<void> {
20 this.schema.dropTable(this.tableName); 20 this.schema.dropTable(this.tableName)
21 } 21 }
22} 22}
diff --git a/database/migrations/1612629845398_users_update_schema.ts b/database/migrations/1612629845398_users_update_schema.ts
index 8831ea4..76dc816 100644
--- a/database/migrations/1612629845398_users_update_schema.ts
+++ b/database/migrations/1612629845398_users_update_schema.ts
@@ -1,15 +1,15 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 public async up(): Promise<void> { 4 public async up(): Promise<void> {
5 this.schema.alterTable('users', table => { 5 this.schema.alterTable('users', (table) => {
6 table.string('lastname', 80).notNullable().defaultTo(''); 6 table.string('lastname', 80).notNullable().defaultTo('')
7 }); 7 })
8 } 8 }
9 9
10 public async down(): Promise<void> { 10 public async down(): Promise<void> {
11 this.schema.alterTable('users', table => { 11 this.schema.alterTable('users', (table) => {
12 table.dropColumn('lastname'); 12 table.dropColumn('lastname')
13 }); 13 })
14 } 14 }
15} 15}
diff --git a/database/migrations/1658076326250_correct_token_relations.ts b/database/migrations/1658076326250_correct_token_relations.ts
index 5486657..1013861 100644
--- a/database/migrations/1658076326250_correct_token_relations.ts
+++ b/database/migrations/1658076326250_correct_token_relations.ts
@@ -1,18 +1,16 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class extends BaseSchema { 3export default class extends BaseSchema {
4 protected tableName = 'tokens'; 4 protected tableName = 'tokens'
5 5
6 public async up(): Promise<void> { 6 public async up(): Promise<void> {
7 await this.db.rawQuery( 7 await this.db.rawQuery('DELETE FROM tokens WHERE user_id NOT IN (SELECT id FROM users)')
8 'DELETE FROM tokens WHERE user_id NOT IN (SELECT id FROM users)',
9 );
10 8
11 this.schema.alterTable(this.tableName, table => { 9 this.schema.alterTable(this.tableName, (table) => {
12 table.dropForeign('user_id'); 10 table.dropForeign('user_id')
13 11
14 table.foreign('user_id').references('users.id').onDelete('cascade'); 12 table.foreign('user_id').references('users.id').onDelete('cascade')
15 }); 13 })
16 } 14 }
17 15
18 public async down(): Promise<void> { 16 public async down(): Promise<void> {
diff --git a/database/migrations/1696110557648_jwt_tokens.ts b/database/migrations/1696110557648_jwt_tokens.ts
index 9400de7..7823283 100644
--- a/database/migrations/1696110557648_jwt_tokens.ts
+++ b/database/migrations/1696110557648_jwt_tokens.ts
@@ -1,29 +1,23 @@
1import BaseSchema from '@ioc:Adonis/Lucid/Schema'; 1import { BaseSchema } from '@adonisjs/lucid/schema'
2 2
3export default class JwtTokens extends BaseSchema { 3export default class JwtTokens extends BaseSchema {
4 protected tableName = 'jwt_tokens'; 4 protected tableName = 'jwt_tokens'
5 5
6 public async up() { 6 public async up() {
7 this.schema.createTable(this.tableName, table => { 7 this.schema.createTable(this.tableName, (table) => {
8 table.increments('id').primary(); 8 table.increments('id').primary()
9 table 9 table.integer('user_id').unsigned().references('users.id').onDelete('CASCADE')
10 .integer('user_id') 10 table.string('name').notNullable()
11 .unsigned() 11 table.string('type').notNullable()
12 .references('users.id') 12 table.string('token', 64).notNullable().unique()
13 .onDelete('CASCADE'); 13 table.timestamp('expires_at', { useTz: true }).nullable()
14 table.string('name').notNullable(); 14 table.string('refresh_token').notNullable().unique().index()
15 table.string('type').notNullable(); 15 table.timestamp('refresh_token_expires_at', { useTz: true }).notNullable()
16 table.string('token', 64).notNullable().unique(); 16 table.timestamp('created_at', { useTz: true }).notNullable()
17 table.timestamp('expires_at', { useTz: true }).nullable(); 17 })
18 table.string('refresh_token').notNullable().unique().index();
19 table
20 .timestamp('refresh_token_expires_at', { useTz: true })
21 .notNullable();
22 table.timestamp('created_at', { useTz: true }).notNullable();
23 });
24 } 18 }
25 19
26 public async down() { 20 public async down() {
27 this.schema.dropTable(this.tableName); 21 this.schema.dropTable(this.tableName)
28 } 22 }
29} 23}
diff --git a/helpers/PasswordHash.ts b/helpers/PasswordHash.ts
index be3da2c..5c73195 100644
--- a/helpers/PasswordHash.ts
+++ b/helpers/PasswordHash.ts
@@ -1,17 +1,14 @@
1import User from 'App/Models/User'; 1import User from '#app/Models/User'
2import Hash from '@ioc:Adonis/Core/Hash'; 2import hash from '@adonisjs/core/services/hash'
3 3
4export async function handleVerifyAndReHash( 4export async function handleVerifyAndReHash(user: User, passwordToTest: string): Promise<boolean> {
5 user: User,
6 passwordToTest: string,
7): Promise<boolean> {
8 // Verify password 5 // Verify password
9 const usesLegacyHasher = /^\$2[aby]/.test(user.password); 6 const usesLegacyHasher = /^\$2[aby]/.test(user.password)
10 let isMatchedPassword = false; 7 let isMatchedPassword = false
11 8
12 isMatchedPassword = await (usesLegacyHasher 9 isMatchedPassword = await (usesLegacyHasher
13 ? Hash.use('legacy').verify(user.password, passwordToTest) 10 ? hash.use('legacy').verify(user.password, passwordToTest)
14 : Hash.verify(user.password, passwordToTest)); 11 : hash.verify(user.password, passwordToTest))
15 12
16 // TODO: For some reason this is not working (user can't login after re-hashing) 13 // TODO: For some reason this is not working (user can't login after re-hashing)
17 // rehash user password 14 // rehash user password
@@ -20,5 +17,5 @@ export async function handleVerifyAndReHash(
20 // await user.save(); 17 // await user.save();
21 // } 18 // }
22 19
23 return isMatchedPassword; 20 return isMatchedPassword
24} 21}
diff --git a/package.json b/package.json
index afebb33..c15a7e7 100644
--- a/package.json
+++ b/package.json
@@ -16,13 +16,13 @@
16 "homepage": "https://github.com/ferdium/ferdium-server", 16 "homepage": "https://github.com/ferdium/ferdium-server",
17 "license": "MIT License", 17 "license": "MIT License",
18 "scripts": { 18 "scripts": {
19 "prepare": "is-ci || husky install", 19 "prepare": "is-ci || husky",
20 "dev": "cross-env-shell ENV_PATH=.env.development node ace serve --watch", 20 "dev": "cross-env-shell ENV_PATH=.env.development node ace serve --watch",
21 "migrate": "cross-env-shell ENV_PATH=.env.development node ace migration:run", 21 "migrate": "cross-env-shell ENV_PATH=.env.development node ace migration:run",
22 "refresh": "cross-env-shell ENV_PATH=.env.development node ace migration:refresh", 22 "refresh": "cross-env-shell ENV_PATH=.env.development node ace migration:refresh",
23 "status": "cross-env-shell ENV_PATH=.env.development node ace migration:status", 23 "status": "cross-env-shell ENV_PATH=.env.development node ace migration:status",
24 "build": "node ace build --production", 24 "build": "node ace build --production",
25 "start": "cross-env-shell ENV_PATH=.env node build/server.js", 25 "start": "cross-env-shell ENV_PATH=.env node bin/server.js",
26 "test": "cross-env-shell ENV_PATH=.env.test node ace test", 26 "test": "cross-env-shell ENV_PATH=.env.test node ace test",
27 "typecheck": "tsc --noEmit", 27 "typecheck": "tsc --noEmit",
28 "lint": "eslint \"**/*.{js,ts}\"", 28 "lint": "eslint \"**/*.{js,ts}\"",
@@ -30,67 +30,75 @@
30 "reformat-files": "prettier --ignore-path .eslintignore --write \"**/*.{js,ts,scss,json}\"", 30 "reformat-files": "prettier --ignore-path .eslintignore --write \"**/*.{js,ts,scss,json}\"",
31 "prepare-code": "pnpm typecheck && pnpm lint:fix && pnpm reformat-files && pnpm test" 31 "prepare-code": "pnpm typecheck && pnpm lint:fix && pnpm reformat-files && pnpm test"
32 }, 32 },
33 "imports": {
34 "#controllers/*": "./app/Controllers/*.js",
35 "#exceptions/*": "./app/Exceptions/*.js",
36 "#models/*": "./app/Models/*.js",
37 "#middleware/*": "./app/Middleware/*.js",
38 "#database/*": "./database/*.js",
39 "#types/*": "./types/*.js",
40 "#start/*": "./start/*.js",
41 "#tests/*": "./tests/*.js",
42 "#config/*": "./config/*.js"
43 },
33 "devDependencies": { 44 "devDependencies": {
34 "@adonisjs/assembler": "5.9.5", 45 "@adonisjs/assembler": "7.1.1",
35 "@japa/preset-adonis": "1.2.0", 46 "@adonisjs/eslint-config": "1.2.1",
36 "@japa/runner": "2.5.1", 47 "@adonisjs/eslint-plugin": "1.2.1",
37 "@symfony/webpack-encore": "4.4.0", 48 "@adonisjs/prettier-config": "1.2.1",
38 "@types/bcrypt": "5.0.0", 49 "@adonisjs/tsconfig": "1.2.1",
39 "@types/fs-extra": "11.0.1", 50 "@adonisjs/vite": "2.0.2",
40 "@types/luxon": "3.3.1", 51 "@japa/plugin-adonisjs": "3.0.0",
41 "@types/node-fetch": "2.6.4", 52 "@japa/runner": "3.1.1",
42 "@types/proxy-addr": "^2.0.0", 53 "@swc/core": "1.4.0",
43 "@types/semver": "7.5.0", 54 "@types/bcrypt": "5.0.2",
44 "@types/source-map-support": "0.5.6", 55 "@types/fs-extra": "11.0.4",
45 "@types/targz": "1.0.1", 56 "@types/luxon": "3.4.2",
46 "@types/uuid": "9.0.2", 57 "@types/proxy-addr": "^2.0.3",
47 "@typescript-eslint/eslint-plugin": "6.2.0", 58 "@types/semver": "7.5.6",
48 "@typescript-eslint/parser": "6.2.0", 59 "@types/source-map-support": "0.5.10",
49 "adonis-preset-ts": "2.1.0", 60 "@types/targz": "1.0.4",
61 "@types/uuid": "9.0.8",
62 "@typescript-eslint/eslint-plugin": "6.21.0",
63 "@typescript-eslint/parser": "6.21.0",
50 "cross-env": "7.0.3", 64 "cross-env": "7.0.3",
51 "eslint": "8.46.0", 65 "eslint": "8.56.0",
52 "eslint-config-prettier": "8.9.0", 66 "eslint-plugin-import": "2.29.1",
53 "eslint-plugin-adonis": "2.1.1", 67 "eslint-plugin-unicorn": "51.0.1",
54 "eslint-plugin-import": "2.28.0", 68 "husky": "9.0.10",
55 "eslint-plugin-prettier": "5.0.0",
56 "eslint-plugin-unicorn": "48.0.1",
57 "husky": "8.0.3",
58 "is-ci": "3.0.1", 69 "is-ci": "3.0.1",
59 "pino-pretty": "10.2.0", 70 "prettier": "3.2.5",
60 "prettier": "3.0.0", 71 "ts-node": "10.9.2",
61 "typescript": "5.1.6", 72 "typescript": "5.3.3",
62 "youch": "3.2.3", 73 "vite": "5.1.1"
63 "youch-terminal": "2.2.2"
64 }, 74 },
65 "dependencies": { 75 "dependencies": {
66 "@adonisjs/auth": "8.2.3", 76 "@adonisjs/auth": "9.1.1",
67 "@adonisjs/core": "5.9.0", 77 "@adonisjs/core": "6.2.3",
68 "@adonisjs/lucid": "18.4.0", 78 "@adonisjs/cors": "2.2.1",
69 "@adonisjs/mail": "8.2.0", 79 "@adonisjs/lucid": "20.1.0",
70 "@adonisjs/repl": "3.1.11", 80 "@adonisjs/mail": "9.2.0",
71 "@adonisjs/session": "6.4.0", 81 "@adonisjs/session": "7.1.1",
72 "@adonisjs/shield": "7.1.1", 82 "@adonisjs/shield": "8.1.1",
73 "@adonisjs/view": "6.2.0", 83 "@adonisjs/static": "1.1.1",
84 "@adonisjs/validator": "13.0.2",
74 "adonis5-jwt": "github:SpecialAro/adonis5-jwt#34941c10adcf89583a40767552b994ea499b92e3", 85 "adonis5-jwt": "github:SpecialAro/adonis5-jwt#34941c10adcf89583a40767552b994ea499b92e3",
75 "aws-sdk": "2.1425.0",
76 "bcrypt": "5.1.1", 86 "bcrypt": "5.1.1",
77 "fs-extra": "11.1.1", 87 "edge.js": "6.0.1",
78 "jose": "4.14.6", 88 "fs-extra": "11.2.0",
79 "luxon": "3.3.0", 89 "jose": "5.2.1",
80 "moment": "2.29.4", 90 "luxon": "3.4.4",
91 "moment": "2.30.1",
81 "mysql": "2.18.1", 92 "mysql": "2.18.1",
82 "node-fetch": "2", 93 "pg": "8.11.3",
83 "pg": "8.11.1",
84 "phc-bcrypt": "1.0.8",
85 "proxy-addr": "2.0.7", 94 "proxy-addr": "2.0.7",
86 "rand-token": "1.0.1", 95 "rand-token": "1.0.1",
87 "reflect-metadata": "0.1.13", 96 "reflect-metadata": "0.2.1",
88 "sanitize-filename": "1.6.3", 97 "sanitize-filename": "1.6.3",
89 "semver": "7.5.4", 98 "semver": "7.6.0",
90 "source-map-support": "0.5.21", 99 "sqlite3": "5.1.7",
91 "sqlite3": "5.1.6",
92 "targz": "1.0.1", 100 "targz": "1.0.1",
93 "uuid": "9.0.0" 101 "uuid": "9.0.1"
94 }, 102 },
95 "pnpm": { 103 "pnpm": {
96 "allowedDeprecatedVersions": { 104 "allowedDeprecatedVersions": {
@@ -98,12 +106,9 @@
98 "@types/pino-pretty": "5.0.0", 106 "@types/pino-pretty": "5.0.0",
99 "@types/pino-std-serializers": "4.0.0", 107 "@types/pino-std-serializers": "4.0.0",
100 "cuid": "2.1.8", 108 "cuid": "2.1.8",
101 "querystring": "0.2.0", 109 "querystring": "0.2.0"
102 "resolve-url": "0.2.1",
103 "source-map-resolve": "0.5.3",
104 "source-map-url": "0.4.1",
105 "stable": "0.1.8",
106 "urix": "0.1.0"
107 } 110 }
108 } 111 },
112 "type": "module",
113 "prettier": "@adonisjs/prettier-config"
109} 114}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ae833fc..991eda1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,62 +6,59 @@ settings:
6 6
7dependencies: 7dependencies:
8 '@adonisjs/auth': 8 '@adonisjs/auth':
9 specifier: 8.2.3 9 specifier: 9.1.1
10 version: 8.2.3(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(@adonisjs/lucid@18.4.0)(@adonisjs/session@6.4.0) 10 version: 9.1.1(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)(@adonisjs/lucid@20.1.0)(@adonisjs/session@7.1.1)(@japa/plugin-adonisjs@3.0.0)
11 '@adonisjs/core': 11 '@adonisjs/core':
12 specifier: 5.9.0 12 specifier: 6.2.3
13 version: 5.9.0 13 version: 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
14 '@adonisjs/cors':
15 specifier: 2.2.1
16 version: 2.2.1(@adonisjs/core@6.2.3)
14 '@adonisjs/lucid': 17 '@adonisjs/lucid':
15 specifier: 18.4.0 18 specifier: 20.1.0
16 version: 18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) 19 version: 20.1.0(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)(luxon@3.4.4)(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7)
17 '@adonisjs/mail': 20 '@adonisjs/mail':
18 specifier: 8.2.0 21 specifier: 9.2.0
19 version: 8.2.0(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4) 22 version: 9.2.0(@adonisjs/core@6.2.3)(@types/luxon@3.4.2)(@types/node@20.11.17)(edge.js@6.0.1)(luxon@3.4.4)(moment@2.30.1)
20 '@adonisjs/repl':
21 specifier: 3.1.11
22 version: 3.1.11(@adonisjs/core@5.9.0)
23 '@adonisjs/session': 23 '@adonisjs/session':
24 specifier: 6.4.0
25 version: 6.4.0(@adonisjs/core@5.9.0)
26 '@adonisjs/shield':
27 specifier: 7.1.1 24 specifier: 7.1.1
28 version: 7.1.1(@adonisjs/core@5.9.0)(@adonisjs/session@6.4.0)(@adonisjs/view@6.2.0) 25 version: 7.1.1(@adonisjs/core@6.2.3)(edge.js@6.0.1)
29 '@adonisjs/view': 26 '@adonisjs/shield':
30 specifier: 6.2.0 27 specifier: 8.1.1
31 version: 6.2.0(@adonisjs/core@5.9.0) 28 version: 8.1.1(@adonisjs/core@6.2.3)(@adonisjs/session@7.1.1)(edge.js@6.0.1)
29 '@adonisjs/static':
30 specifier: 1.1.1
31 version: 1.1.1(@adonisjs/core@6.2.3)
32 '@adonisjs/validator':
33 specifier: 13.0.2
34 version: 13.0.2(@adonisjs/core@6.2.3)
32 adonis5-jwt: 35 adonis5-jwt:
33 specifier: github:SpecialAro/adonis5-jwt#34941c10adcf89583a40767552b994ea499b92e3 36 specifier: github:SpecialAro/adonis5-jwt#34941c10adcf89583a40767552b994ea499b92e3
34 version: github.com/SpecialAro/adonis5-jwt/34941c10adcf89583a40767552b994ea499b92e3 37 version: github.com/SpecialAro/adonis5-jwt/34941c10adcf89583a40767552b994ea499b92e3
35 aws-sdk:
36 specifier: 2.1425.0
37 version: 2.1425.0
38 bcrypt: 38 bcrypt:
39 specifier: 5.1.1 39 specifier: 5.1.1
40 version: 5.1.1 40 version: 5.1.1
41 edge.js:
42 specifier: 6.0.1
43 version: 6.0.1
41 fs-extra: 44 fs-extra:
42 specifier: 11.1.1 45 specifier: 11.2.0
43 version: 11.1.1 46 version: 11.2.0
44 jose: 47 jose:
45 specifier: 4.14.6 48 specifier: 5.2.1
46 version: 4.14.6 49 version: 5.2.1
47 luxon: 50 luxon:
48 specifier: 3.3.0 51 specifier: 3.4.4
49 version: 3.3.0 52 version: 3.4.4
50 moment: 53 moment:
51 specifier: 2.29.4 54 specifier: 2.30.1
52 version: 2.29.4 55 version: 2.30.1
53 mysql: 56 mysql:
54 specifier: 2.18.1 57 specifier: 2.18.1
55 version: 2.18.1 58 version: 2.18.1
56 node-fetch:
57 specifier: '2'
58 version: 2.7.0
59 pg: 59 pg:
60 specifier: 8.11.1 60 specifier: 8.11.3
61 version: 8.11.1 61 version: 8.11.3
62 phc-bcrypt:
63 specifier: 1.0.8
64 version: 1.0.8
65 proxy-addr: 62 proxy-addr:
66 specifier: 2.0.7 63 specifier: 2.0.7
67 version: 2.0.7 64 version: 2.0.7
@@ -69,118 +66,112 @@ dependencies:
69 specifier: 1.0.1 66 specifier: 1.0.1
70 version: 1.0.1 67 version: 1.0.1
71 reflect-metadata: 68 reflect-metadata:
72 specifier: 0.1.13 69 specifier: 0.2.1
73 version: 0.1.13 70 version: 0.2.1
74 sanitize-filename: 71 sanitize-filename:
75 specifier: 1.6.3 72 specifier: 1.6.3
76 version: 1.6.3 73 version: 1.6.3
77 semver: 74 semver:
78 specifier: 7.5.4 75 specifier: 7.6.0
79 version: 7.5.4 76 version: 7.6.0
80 source-map-support:
81 specifier: 0.5.21
82 version: 0.5.21
83 sqlite3: 77 sqlite3:
84 specifier: 5.1.6 78 specifier: 5.1.7
85 version: 5.1.6 79 version: 5.1.7
86 targz: 80 targz:
87 specifier: 1.0.1 81 specifier: 1.0.1
88 version: 1.0.1 82 version: 1.0.1
89 uuid: 83 uuid:
90 specifier: 9.0.0 84 specifier: 9.0.1
91 version: 9.0.0 85 version: 9.0.1
92 86
93devDependencies: 87devDependencies:
94 '@adonisjs/assembler': 88 '@adonisjs/assembler':
95 specifier: 5.9.5 89 specifier: 7.1.1
96 version: 5.9.5(@adonisjs/core@5.9.0) 90 version: 7.1.1(typescript@5.3.3)
97 '@japa/preset-adonis': 91 '@adonisjs/eslint-config':
98 specifier: 1.2.0 92 specifier: 1.2.1
99 version: 1.2.0(@adonisjs/core@5.9.0)(@japa/runner@2.5.1)(openapi-types@12.1.3) 93 version: 1.2.1(eslint@8.56.0)(prettier@3.2.5)(typescript@5.3.3)
94 '@adonisjs/eslint-plugin':
95 specifier: 1.2.1
96 version: 1.2.1(eslint@8.56.0)(typescript@5.3.3)
97 '@adonisjs/prettier-config':
98 specifier: 1.2.1
99 version: 1.2.1
100 '@adonisjs/tsconfig':
101 specifier: 1.2.1
102 version: 1.2.1
103 '@adonisjs/vite':
104 specifier: 2.0.2
105 version: 2.0.2(@adonisjs/core@6.2.3)(@adonisjs/shield@8.1.1)(edge.js@6.0.1)(vite@5.1.1)
106 '@japa/plugin-adonisjs':
107 specifier: 3.0.0
108 version: 3.0.0(@adonisjs/core@6.2.3)(@japa/runner@3.1.1)
100 '@japa/runner': 109 '@japa/runner':
101 specifier: 2.5.1 110 specifier: 3.1.1
102 version: 2.5.1 111 version: 3.1.1
103 '@symfony/webpack-encore': 112 '@swc/core':
104 specifier: 4.4.0 113 specifier: 1.4.0
105 version: 4.4.0(@babel/core@7.23.0)(@babel/preset-env@7.22.20)(eslint@8.46.0)(postcss@8.4.31)(typescript@5.1.6)(webpack-cli@5.1.4)(webpack@5.88.2) 114 version: 1.4.0
106 '@types/bcrypt': 115 '@types/bcrypt':
107 specifier: 5.0.0 116 specifier: 5.0.2
108 version: 5.0.0 117 version: 5.0.2
109 '@types/fs-extra': 118 '@types/fs-extra':
110 specifier: 11.0.1 119 specifier: 11.0.4
111 version: 11.0.1 120 version: 11.0.4
112 '@types/luxon': 121 '@types/luxon':
113 specifier: 3.3.1 122 specifier: 3.4.2
114 version: 3.3.1 123 version: 3.4.2
115 '@types/node-fetch':
116 specifier: 2.6.4
117 version: 2.6.4
118 '@types/proxy-addr': 124 '@types/proxy-addr':
119 specifier: ^2.0.0 125 specifier: ^2.0.3
120 version: 2.0.1 126 version: 2.0.3
121 '@types/semver': 127 '@types/semver':
122 specifier: 7.5.0 128 specifier: 7.5.6
123 version: 7.5.0 129 version: 7.5.6
124 '@types/source-map-support': 130 '@types/source-map-support':
125 specifier: 0.5.6 131 specifier: 0.5.10
126 version: 0.5.6 132 version: 0.5.10
127 '@types/targz': 133 '@types/targz':
128 specifier: 1.0.1 134 specifier: 1.0.4
129 version: 1.0.1 135 version: 1.0.4
130 '@types/uuid': 136 '@types/uuid':
131 specifier: 9.0.2 137 specifier: 9.0.8
132 version: 9.0.2 138 version: 9.0.8
133 '@typescript-eslint/eslint-plugin': 139 '@typescript-eslint/eslint-plugin':
134 specifier: 6.2.0 140 specifier: 6.21.0
135 version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6) 141 version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
136 '@typescript-eslint/parser': 142 '@typescript-eslint/parser':
137 specifier: 6.2.0 143 specifier: 6.21.0
138 version: 6.2.0(eslint@8.46.0)(typescript@5.1.6) 144 version: 6.21.0(eslint@8.56.0)(typescript@5.3.3)
139 adonis-preset-ts:
140 specifier: 2.1.0
141 version: 2.1.0
142 cross-env: 145 cross-env:
143 specifier: 7.0.3 146 specifier: 7.0.3
144 version: 7.0.3 147 version: 7.0.3
145 eslint: 148 eslint:
146 specifier: 8.46.0 149 specifier: 8.56.0
147 version: 8.46.0 150 version: 8.56.0
148 eslint-config-prettier:
149 specifier: 8.9.0
150 version: 8.9.0(eslint@8.46.0)
151 eslint-plugin-adonis:
152 specifier: 2.1.1
153 version: 2.1.1(eslint@8.46.0)(typescript@5.1.6)
154 eslint-plugin-import: 151 eslint-plugin-import:
155 specifier: 2.28.0 152 specifier: 2.29.1
156 version: 2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0) 153 version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)
157 eslint-plugin-prettier:
158 specifier: 5.0.0
159 version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0)
160 eslint-plugin-unicorn: 154 eslint-plugin-unicorn:
161 specifier: 48.0.1 155 specifier: 51.0.1
162 version: 48.0.1(eslint@8.46.0) 156 version: 51.0.1(eslint@8.56.0)
163 husky: 157 husky:
164 specifier: 8.0.3 158 specifier: 9.0.10
165 version: 8.0.3 159 version: 9.0.10
166 is-ci: 160 is-ci:
167 specifier: 3.0.1 161 specifier: 3.0.1
168 version: 3.0.1 162 version: 3.0.1
169 pino-pretty:
170 specifier: 10.2.0
171 version: 10.2.0
172 prettier: 163 prettier:
173 specifier: 3.0.0 164 specifier: 3.2.5
174 version: 3.0.0 165 version: 3.2.5
166 ts-node:
167 specifier: 10.9.2
168 version: 10.9.2(@swc/core@1.4.0)(@types/node@20.11.17)(typescript@5.3.3)
175 typescript: 169 typescript:
176 specifier: 5.1.6 170 specifier: 5.3.3
177 version: 5.1.6 171 version: 5.3.3
178 youch: 172 vite:
179 specifier: 3.2.3 173 specifier: 5.1.1
180 version: 3.2.3 174 version: 5.1.1(@types/node@20.11.17)
181 youch-terminal:
182 specifier: 2.2.2
183 version: 2.2.2
184 175
185packages: 176packages:
186 177
@@ -189,251 +180,334 @@ packages:
189 engines: {node: '>=0.10.0'} 180 engines: {node: '>=0.10.0'}
190 dev: true 181 dev: true
191 182
192 /@adonisjs/ace@11.3.1(@adonisjs/application@5.3.0): 183 /@adonisjs/ace@13.0.0:
193 resolution: {integrity: sha512-Ho3+Lk/16OSjX3CfhxsoLUTlcVG4sDlXUwHx+Zry/RLft5M6plT5ln0WkZvL7tqtb1uCZgP5YiMrMtDjSRzZLA==} 184 resolution: {integrity: sha512-Hj5QjRgYnMUXiYuzMH5gQtzHH2hBNo4BO8VW7Jkrbbvh/YlUeFBkTSpTY010EBxmxSrslZKuHQynJ9JVRFExyQ==}
194 peerDependencies: 185 engines: {node: '>=18.16.0'}
195 '@adonisjs/application': ^5.0.0
196 dependencies:
197 '@adonisjs/application': 5.3.0
198 '@poppinss/cliui': 3.0.5
199 '@poppinss/prompts': 2.0.2
200 '@poppinss/utils': 4.0.4
201 fs-extra: 10.1.0
202 getopts: 2.3.0
203 leven: 3.1.0
204 mustache: 4.2.0
205 slash: 3.0.0
206 term-size: 2.2.1
207
208 /@adonisjs/application@5.3.0:
209 resolution: {integrity: sha512-AruZZXMgOdmmRxJEHUbXoqhgRavPfhkeIR2nQtGyxbn0PCNjqlGraq8ypuLINY1J+wNuH2tt0xCS98EDeMdTOQ==}
210 dependencies: 186 dependencies:
211 '@adonisjs/config': 3.0.9 187 '@poppinss/cliui': 6.3.0
212 '@adonisjs/env': 3.0.9 188 '@poppinss/hooks': 7.2.2
213 '@adonisjs/fold': 8.2.0 189 '@poppinss/macroable': 1.0.1
214 '@adonisjs/logger': 4.1.5 190 '@poppinss/prompts': 3.1.2
215 '@adonisjs/profiler': 6.0.9(@adonisjs/logger@4.1.5) 191 '@poppinss/utils': 6.7.2
216 '@poppinss/utils': 5.0.0 192 fastest-levenshtein: 1.0.16
217 semver: 7.5.4 193 jsonschema: 1.4.1
194 string-width: 7.1.0
195 yargs-parser: 21.1.1
196 youch: 3.3.3
197 youch-terminal: 2.2.3
218 198
219 /@adonisjs/assembler@5.9.5(@adonisjs/core@5.9.0): 199 /@adonisjs/application@8.0.4(@adonisjs/config@5.0.1)(@adonisjs/fold@10.0.1):
220 resolution: {integrity: sha512-wCtQRZ4KoIZkzi+ux5NrDUDNASRomytRZ7AZBdw8Hi3LlEOeac4T8+47y7gXwJFKH2nnGoiIwnXGIgJyolXEfQ==} 200 resolution: {integrity: sha512-Bh+tKZ/nmU0odBq3FJjpFTZoLcp6/vEosE9DGBu9jbxELeLeW4eY3racNidlEpMz45ObQHA7mAgzeL50xKoWvQ==}
201 engines: {node: '>=18.16.0'}
221 peerDependencies: 202 peerDependencies:
222 '@adonisjs/core': ^5.1.0 203 '@adonisjs/config': ^5.0.0
223 dependencies: 204 '@adonisjs/fold': ^10.0.0
224 '@adonisjs/application': 5.3.0 205 dependencies:
225 '@adonisjs/core': 5.9.0 206 '@adonisjs/config': 5.0.1
226 '@adonisjs/env': 3.0.9 207 '@adonisjs/fold': 10.0.1
227 '@adonisjs/ioc-transformer': 2.3.4 208 '@poppinss/hooks': 7.2.2
228 '@adonisjs/require-ts': 2.0.13 209 '@poppinss/macroable': 1.0.1
229 '@adonisjs/sink': 5.4.3(@adonisjs/application@5.3.0) 210 '@poppinss/utils': 6.7.2
230 '@poppinss/chokidar-ts': 3.3.5
231 '@poppinss/cliui': 3.0.5
232 '@poppinss/utils': 5.0.0
233 cpy: 8.1.2
234 emittery: 0.13.1
235 execa: 5.1.1
236 fs-extra: 10.1.0
237 get-port: 5.1.1
238 glob-parent: 6.0.2 211 glob-parent: 6.0.2
239 has-yarn: 2.1.0 212 tempura: 0.4.0
240 picomatch: 2.3.1 213
241 slash: 3.0.0 214 /@adonisjs/assembler@7.1.1(typescript@5.3.3):
215 resolution: {integrity: sha512-W5D+IXs/6Zym+3htv2E9JUXvo7XUvA5vfEbtLEKSGw+hFEcGL5uo7BGFDafmYran4axF+mrIYS8gJDU8SvwszQ==}
216 engines: {node: '>=18.16.0'}
217 peerDependencies:
218 typescript: ^4.0.0 || ^5.0.0
219 dependencies:
220 '@adonisjs/env': 5.0.1
221 '@antfu/install-pkg': 0.3.1
222 '@poppinss/chokidar-ts': 4.1.3(typescript@5.3.3)
223 '@poppinss/cliui': 6.3.0
224 cpy: 11.0.0
225 dedent: 1.5.1
226 execa: 8.0.1
227 fast-glob: 3.3.2
228 get-port: 7.0.0
229 junk: 4.0.1
230 picomatch: 3.0.1
231 pretty-hrtime: 1.0.3
232 slash: 5.1.0
233 ts-morph: 21.0.1
234 typescript: 5.3.3
242 transitivePeerDependencies: 235 transitivePeerDependencies:
243 - supports-color 236 - babel-plugin-macros
244 dev: true 237
245 238 /@adonisjs/auth@9.1.1(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)(@adonisjs/lucid@20.1.0)(@adonisjs/session@7.1.1)(@japa/plugin-adonisjs@3.0.0):
246 /@adonisjs/auth@8.2.3(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(@adonisjs/lucid@18.4.0)(@adonisjs/session@6.4.0): 239 resolution: {integrity: sha512-gusUQT/9xWYZvdOzHQeqFlI1WDsxi0DIHxjkCNcExwLHpCwBvJ2+VItQ5+dBx5Aryi7Szm2C4od/vg08f//A5g==}
247 resolution: {integrity: sha512-js9e8AHEsNC/8MGvho6MgL+uXr8SlhTg9MJJDWQBBiqsKkT7+H7NMP/pLbuSzYaaf40t2u/OXfq6wXuIC5ZYvw==} 240 engines: {node: '>=18.16.0'}
248 peerDependencies: 241 peerDependencies:
249 '@adonisjs/core': ^5.7.1 242 '@adonisjs/core': ^6.2.1
250 '@adonisjs/i18n': ^1.5.0 243 '@adonisjs/lucid': ^20.1.0
251 '@adonisjs/lucid': ^18.0.0 244 '@adonisjs/session': ^7.1.1
252 '@adonisjs/redis': ^7.2.0 245 '@japa/api-client': ^2.0.2
253 '@adonisjs/session': ^6.2.0 246 '@japa/browser-client': ^2.0.2
247 '@japa/plugin-adonisjs': ^3.0.0
254 peerDependenciesMeta: 248 peerDependenciesMeta:
255 '@adonisjs/i18n':
256 optional: true
257 '@adonisjs/lucid': 249 '@adonisjs/lucid':
258 optional: true 250 optional: true
259 '@adonisjs/redis':
260 optional: true
261 '@adonisjs/session': 251 '@adonisjs/session':
262 optional: true 252 optional: true
253 '@japa/api-client':
254 optional: true
255 '@japa/browser-client':
256 optional: true
257 '@japa/plugin-adonisjs':
258 optional: true
263 dependencies: 259 dependencies:
264 '@adonisjs/core': 5.9.0 260 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
265 '@adonisjs/lucid': 18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) 261 '@adonisjs/lucid': 20.1.0(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)(luxon@3.4.4)(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7)
266 '@adonisjs/session': 6.4.0(@adonisjs/core@5.9.0) 262 '@adonisjs/presets': 2.2.4(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)
267 '@poppinss/hooks': 5.0.3(@adonisjs/application@5.3.0) 263 '@adonisjs/session': 7.1.1(@adonisjs/core@6.2.3)(edge.js@6.0.1)
268 '@poppinss/utils': 5.0.0 264 '@japa/plugin-adonisjs': 3.0.0(@adonisjs/core@6.2.3)(@japa/runner@3.1.1)
269 luxon: 3.3.0 265 basic-auth: 2.0.1
270 transitivePeerDependencies: 266 transitivePeerDependencies:
271 - '@adonisjs/application' 267 - '@adonisjs/assembler'
272 dev: false 268 dev: false
273 269
274 /@adonisjs/bodyparser@8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0): 270 /@adonisjs/bodyparser@10.0.1(@adonisjs/http-server@7.0.3):
275 resolution: {integrity: sha512-enVETPmoBJhg+CP6AVlG/GSwllpW/5y22wjFpEhYZl0YOXnE7i+wsp2VeGfMtQzl4+snTuAPEfwCtG+I/s6jqQ==} 271 resolution: {integrity: sha512-Q5NvSjqSt8yNN/CObu7pRDgMRpFVnPHL1CReBK1Y9ZdPpSCJ+/n/GpOYsUh+ChhFMjRNdFy4rDk3RJ2QUOTHIQ==}
272 engines: {node: '>=18.16.0'}
276 peerDependencies: 273 peerDependencies:
277 '@adonisjs/application': ^5.0.0 274 '@adonisjs/http-server': ^7.0.2
278 '@adonisjs/drive': ^2.0.0 275 dependencies:
279 '@adonisjs/http-server': ^5.0.0 276 '@adonisjs/http-server': 7.0.3(@adonisjs/application@8.0.4)(@adonisjs/encryption@6.0.1)(@adonisjs/events@9.0.1)(@adonisjs/fold@10.0.1)(@adonisjs/logger@6.0.1)
280 dependencies: 277 '@paralleldrive/cuid2': 2.2.2
281 '@adonisjs/application': 5.3.0 278 '@poppinss/macroable': 1.0.1
282 '@adonisjs/drive': 2.3.0(@adonisjs/application@5.3.0)(@adonisjs/http-server@5.12.0)
283 '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8)
284 '@poppinss/co-body': 1.2.0
285 '@poppinss/multiparty': 2.0.1 279 '@poppinss/multiparty': 2.0.1
286 '@poppinss/utils': 5.0.0 280 '@poppinss/utils': 6.7.2
281 '@types/qs': 6.9.11
287 bytes: 3.1.2 282 bytes: 3.1.2
288 file-type: 16.5.4 283 file-type: 19.0.0
289 fs-extra: 10.1.0 284 inflation: 2.1.0
290 media-typer: 1.1.0 285 media-typer: 1.1.0
291 slash: 3.0.0 286 qs: 6.11.2
287 raw-body: 2.5.2
292 288
293 /@adonisjs/config@3.0.9: 289 /@adonisjs/config@5.0.1:
294 resolution: {integrity: sha512-f+wzrc+0HLvhJyYGEMV2QTHtyJ8sI3PKvH9h/baW/iF8UO3KF+llHH0Cf3/M5dYnpdz9rnmj0VtdTaIDfxrgGg==} 290 resolution: {integrity: sha512-hyednyDBGsoBthbcf7S8r8M68tS8Y7rnIBPIZKHhQikXOXgf/E9IkQWgWjJR9+ODbaiMY69roJYR5L9dElre7w==}
295 dependencies: 291 engines: {node: '>=18.16.0'}
296 '@poppinss/utils': 5.0.0 292 dependencies:
297 293 '@poppinss/utils': 6.7.2
298 /@adonisjs/core@5.9.0:
299 resolution: {integrity: sha512-32zG9EW0t0Ck0cMzlwD0+z3GJG7k/gZz6P0+h+s8N1N7fHxGixrKs7W7lT3OcIvk0NsuIw1tUPAU7fAWytHEqA==}
300 dependencies:
301 '@adonisjs/ace': 11.3.1(@adonisjs/application@5.3.0)
302 '@adonisjs/application': 5.3.0
303 '@adonisjs/bodyparser': 8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0)
304 '@adonisjs/drive': 2.3.0(@adonisjs/application@5.3.0)(@adonisjs/http-server@5.12.0)
305 '@adonisjs/encryption': 4.0.8(@adonisjs/application@5.3.0)
306 '@adonisjs/events': 7.2.1(@adonisjs/application@5.3.0)
307 '@adonisjs/hash': 7.2.2(@adonisjs/application@5.3.0)
308 '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8)
309 '@adonisjs/validator': 12.5.0(@adonisjs/application@5.3.0)(@adonisjs/bodyparser@8.1.9)(@adonisjs/http-server@5.12.0)
310 '@poppinss/cliui': 3.0.5
311 '@poppinss/manager': 5.0.2
312 '@poppinss/utils': 5.0.0
313 fs-extra: 10.1.0
314 macroable: 7.0.2
315 memfs: 3.5.3
316 serve-static: 1.15.0
317 stringify-attributes: 2.0.0
318 transitivePeerDependencies:
319 - supports-color
320 294
321 /@adonisjs/drive@2.3.0(@adonisjs/application@5.3.0)(@adonisjs/http-server@5.12.0): 295 /@adonisjs/core@6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1):
322 resolution: {integrity: sha512-3V1kBe2qB/860KcS+dDonv8Xya2YDBdR7291pQgObJeTbV50Vy8RhwdOwtU7ybRfN2kh/svdC4238JGpbQOR9w==} 296 resolution: {integrity: sha512-ompZA34XINVz2FhegQLvjBn0l550DfIalMTRFgxDzSK80BYCd1xEbIZJ33Js361PH/REgekvdOH5YJBxJqJYjw==}
297 engines: {node: '>=18.16.0'}
298 hasBin: true
323 peerDependencies: 299 peerDependencies:
324 '@adonisjs/application': ^5.0.0 300 '@adonisjs/assembler': ^7.1.0
325 '@adonisjs/http-server': ^5.0.0 301 '@vinejs/vine': ^1.7.0
326 dependencies: 302 argon2: ^0.31.1
327 '@adonisjs/application': 5.3.0 303 bcrypt: ^5.1.1
328 '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) 304 edge.js: ^6.0.1
329 '@poppinss/manager': 5.0.2 305 peerDependenciesMeta:
330 '@poppinss/utils': 5.0.0 306 '@adonisjs/assembler':
331 '@types/fs-extra': 9.0.13 307 optional: true
332 etag: 1.8.1 308 '@vinejs/vine':
333 fs-extra: 10.1.0 309 optional: true
334 memfs: 3.5.3 310 argon2:
311 optional: true
312 bcrypt:
313 optional: true
314 edge.js:
315 optional: true
316 dependencies:
317 '@adonisjs/ace': 13.0.0
318 '@adonisjs/application': 8.0.4(@adonisjs/config@5.0.1)(@adonisjs/fold@10.0.1)
319 '@adonisjs/assembler': 7.1.1(typescript@5.3.3)
320 '@adonisjs/bodyparser': 10.0.1(@adonisjs/http-server@7.0.3)
321 '@adonisjs/config': 5.0.1
322 '@adonisjs/encryption': 6.0.1
323 '@adonisjs/env': 5.0.1
324 '@adonisjs/events': 9.0.1(@adonisjs/application@8.0.4)(@adonisjs/fold@10.0.1)
325 '@adonisjs/fold': 10.0.1
326 '@adonisjs/hash': 9.0.1(bcrypt@5.1.1)
327 '@adonisjs/http-server': 7.0.3(@adonisjs/application@8.0.4)(@adonisjs/encryption@6.0.1)(@adonisjs/events@9.0.1)(@adonisjs/fold@10.0.1)(@adonisjs/logger@6.0.1)
328 '@adonisjs/logger': 6.0.1
329 '@adonisjs/repl': 4.0.1
330 '@paralleldrive/cuid2': 2.2.2
331 '@poppinss/macroable': 1.0.1
332 '@poppinss/utils': 6.7.2
333 '@sindresorhus/is': 6.1.0
334 '@types/he': 1.2.3
335 bcrypt: 5.1.1
336 edge.js: 6.0.1
337 he: 1.2.0
338 parse-imports: 1.1.2
339 pretty-hrtime: 1.0.3
340 string-width: 7.1.0
341 youch: 3.3.3
342 youch-terminal: 2.2.3
335 343
336 /@adonisjs/encryption@4.0.8(@adonisjs/application@5.3.0): 344 /@adonisjs/cors@2.2.1(@adonisjs/core@6.2.3):
337 resolution: {integrity: sha512-zMWbIESPHXafsbiLJyON/hlRYwrTIA3PuTil7xC8W4ngC36PgWe86Ra0x0t961u1We/LaSGkT8Vn93DymqB3aA==} 345 resolution: {integrity: sha512-qnrSG8ylpgTeZBOYEN3yXxY0PBUEg1KGDhgn9VKVFGxLKT+o9GGVOSZxUK3wG341B1zB9w5vuZN1z4M0Jitb6g==}
346 engines: {node: '>=18.16.0'}
338 peerDependencies: 347 peerDependencies:
339 '@adonisjs/application': ^5.0.0 348 '@adonisjs/core': ^6.2.0
349 dependencies:
350 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
351 dev: false
352
353 /@adonisjs/encryption@6.0.1:
354 resolution: {integrity: sha512-9Vz2xU8cryCvRgQDri+4khZIeRDM6yJFe35PdR6xyhgQaT91Qn7fJ2oAcg3yVuNp3WKxg6PTRcxva+ZTfdP3SA==}
355 engines: {node: '>=18.16.0'}
340 dependencies: 356 dependencies:
341 '@adonisjs/application': 5.3.0 357 '@poppinss/utils': 6.7.2
342 '@poppinss/utils': 4.0.4
343 358
344 /@adonisjs/env@3.0.9: 359 /@adonisjs/env@5.0.1:
345 resolution: {integrity: sha512-9lxGmOQuF4FpUQ6NIwL/YQumaXG+2Wt8jQlQptplSUTasy6DHSEp7/SYvtC2RD9vxwn4gsptNCo+f8YRiqUvwQ==} 360 resolution: {integrity: sha512-jka5D+LHjG0Cuy1IpuOv7NfO5Pu4SZ41UzX5csPeXzBIWyuD9as+HphxctHZpsD2KZ97EuSbVJv6zzxJfZ4Edg==}
361 engines: {node: '>=18.16.0'}
346 dependencies: 362 dependencies:
347 '@poppinss/utils': 4.0.4 363 '@poppinss/utils': 6.7.2
348 dotenv: 16.3.1 364 '@poppinss/validator-lite': 1.0.3
349 validator: 13.11.0 365 dotenv: 16.4.1
366 split-lines: 3.0.0
350 367
351 /@adonisjs/events@7.2.1(@adonisjs/application@5.3.0): 368 /@adonisjs/eslint-config@1.2.1(eslint@8.56.0)(prettier@3.2.5)(typescript@5.3.3):
352 resolution: {integrity: sha512-N+ewQ19pvdWVIRGBeio1GqlMRJpHpZ+ZHCjhObI+bqoCh5nBApumW0JYe4blyMnUbUAtA9Aq1m1QbGaE7pRMcw==} 369 resolution: {integrity: sha512-kCGvnLcRWyw21YVEnka1TDNquJKrqkY6K7EENxM6tWwoHUyn0j99ssX4+Hv3d2UVvVezcC4KF1l8YZKzLqlgjA==}
353 peerDependencies: 370 peerDependencies:
354 '@adonisjs/application': ^5.0.0 371 eslint: '>=7.4.0'
372 prettier: '>=2.0.0'
355 dependencies: 373 dependencies:
356 '@adonisjs/application': 5.3.0 374 '@adonisjs/eslint-plugin': 1.2.1(eslint@8.56.0)(typescript@5.3.3)
357 emittery: 0.10.2 375 '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
376 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
377 eslint: 8.56.0
378 eslint-config-prettier: 8.10.0(eslint@8.56.0)
379 eslint-plugin-jsonc: 2.13.0(eslint@8.56.0)
380 eslint-plugin-prettier: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.5)
381 eslint-plugin-unicorn: 47.0.0(eslint@8.56.0)
382 jsonc-eslint-parser: 2.4.0
383 prettier: 3.2.5
384 transitivePeerDependencies:
385 - '@types/eslint'
386 - supports-color
387 - typescript
388 dev: true
358 389
359 /@adonisjs/fold@8.2.0: 390 /@adonisjs/eslint-plugin@1.2.1(eslint@8.56.0)(typescript@5.3.3):
360 resolution: {integrity: sha512-Uoo2HPp4SShIkGOF3+p3gT09W3j0zpkK+fOpPyYPTqYm7CWAunklTlowqX45b6CAVb5DCcORDUB8ia4D1ijeKg==} 391 resolution: {integrity: sha512-dwL0x5An5n/q1sy4ZL3eUqqTGlTJKn/Z8m53m7/DpAHtvq4QZTaxUZ3rF5WgnNiI5Q8+wyc/JcQ+lvQ4T0vH+A==}
361 dependencies: 392 dependencies:
362 '@poppinss/utils': 4.0.4 393 '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
394 transitivePeerDependencies:
395 - eslint
396 - supports-color
397 - typescript
398 dev: true
363 399
364 /@adonisjs/hash@7.2.2(@adonisjs/application@5.3.0): 400 /@adonisjs/events@9.0.1(@adonisjs/application@8.0.4)(@adonisjs/fold@10.0.1):
365 resolution: {integrity: sha512-qJxFX8jNH+5+jxckIIvz2y9pMt59ueT50a4B5kUe/68g5iC7UdwKmMos+tj5Pnm5hRFfwKXbtIQBGd+Bb87+2Q==} 401 resolution: {integrity: sha512-1tOwBrwrJLE7zLB+/KzbAzBUq8IeQMLdqUFVC0d5A+Bq0ko/kn4O2xoRAybhrG9NHxQtFoSrOx+Ynb/8d+YffQ==}
402 engines: {node: '>=18.16.0'}
366 peerDependencies: 403 peerDependencies:
367 '@adonisjs/application': ^5.0.0 404 '@adonisjs/application': ^8.0.2
405 '@adonisjs/fold': ^10.0.1
368 dependencies: 406 dependencies:
369 '@adonisjs/application': 5.3.0 407 '@adonisjs/application': 8.0.4(@adonisjs/config@5.0.1)(@adonisjs/fold@10.0.1)
370 '@phc/format': 1.0.0 408 '@adonisjs/fold': 10.0.1
371 '@poppinss/manager': 5.0.2 409 '@poppinss/utils': 6.7.2
372 '@poppinss/utils': 5.0.0 410 '@sindresorhus/is': 6.1.0
411 emittery: 1.0.2
412
413 /@adonisjs/fold@10.0.1:
414 resolution: {integrity: sha512-3SqwopxFtvy3WDs1Z3ZOdjS1M3JfTX8r0dCEQ+ascXhiLYwmv0LCoCY3vcmwVL+wpuyOG1qkKWkjZP1sB3+/bA==}
415 engines: {node: '>=18.16.0'}
416 dependencies:
417 '@poppinss/utils': 6.7.2
373 418
374 /@adonisjs/http-server@5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8): 419 /@adonisjs/hash@9.0.1(bcrypt@5.1.1):
375 resolution: {integrity: sha512-+9cw/DRlLO2NSoHsccmMe3pFf6c0/8INds2yf73ZAZOmzUROb9DQaXHocJ/iwHX9EVxtDuKWDc5z0jI1SYdqEA==} 420 resolution: {integrity: sha512-K1jHQWr7ovXf6zHoo+70fmAt33op50GVygZd6ilvyQfCCEPx3lRqGoxqmRdgzDW5eCAfxCwy+nH7zxf8BhX4GQ==}
421 engines: {node: '>=18.16.0'}
376 peerDependencies: 422 peerDependencies:
377 '@adonisjs/application': ^5.0.0 423 argon2: ^0.31.2
378 '@adonisjs/encryption': ^4.0.0 424 bcrypt: ^5.1.1
425 peerDependenciesMeta:
426 argon2:
427 optional: true
428 bcrypt:
429 optional: true
379 dependencies: 430 dependencies:
380 '@adonisjs/application': 5.3.0 431 '@phc/format': 1.0.0
381 '@adonisjs/encryption': 4.0.8(@adonisjs/application@5.3.0) 432 '@poppinss/utils': 6.7.2
433 bcrypt: 5.1.1
434
435 /@adonisjs/http-server@7.0.3(@adonisjs/application@8.0.4)(@adonisjs/encryption@6.0.1)(@adonisjs/events@9.0.1)(@adonisjs/fold@10.0.1)(@adonisjs/logger@6.0.1):
436 resolution: {integrity: sha512-z8IlnmCsEHiwqYo4eOXx+lKgyXtRCfbQ/KKfEJgfHfspmczJqCt2jVNiJuFuVBeIdPXDIJIys2dJMwu1hsyqoA==}
437 engines: {node: '>=18.16.0'}
438 peerDependencies:
439 '@adonisjs/application': ^8.0.2
440 '@adonisjs/encryption': ^6.0.0
441 '@adonisjs/events': ^9.0.0
442 '@adonisjs/fold': ^10.0.1
443 '@adonisjs/logger': ^6.0.1
444 dependencies:
445 '@adonisjs/application': 8.0.4(@adonisjs/config@5.0.1)(@adonisjs/fold@10.0.1)
446 '@adonisjs/encryption': 6.0.1
447 '@adonisjs/events': 9.0.1(@adonisjs/application@8.0.4)(@adonisjs/fold@10.0.1)
448 '@adonisjs/fold': 10.0.1
449 '@adonisjs/logger': 6.0.1
450 '@paralleldrive/cuid2': 2.2.2
451 '@poppinss/macroable': 1.0.1
382 '@poppinss/matchit': 3.1.2 452 '@poppinss/matchit': 3.1.2
383 '@poppinss/utils': 5.0.0 453 '@poppinss/middleware': 3.2.2
454 '@poppinss/utils': 6.7.2
455 '@sindresorhus/is': 6.1.0
384 accepts: 1.3.8 456 accepts: 1.3.8
385 co-compose: 7.0.3
386 content-disposition: 0.5.4 457 content-disposition: 0.5.4
387 cookie: 0.5.0 458 cookie: 0.6.0
388 destroy: 1.2.0 459 destroy: 1.2.0
389 encodeurl: 1.0.2 460 encodeurl: 1.0.2
390 etag: 1.8.1 461 etag: 1.8.1
391 fresh: 0.5.2 462 fresh: 0.5.2
392 haye: 3.0.0
393 macroable: 7.0.2
394 mime-types: 2.1.35 463 mime-types: 2.1.35
395 ms: 2.1.3
396 on-finished: 2.4.1 464 on-finished: 2.4.1
397 pluralize: 8.0.0
398 proxy-addr: 2.0.7 465 proxy-addr: 2.0.7
399 qs: 6.11.2 466 qs: 6.11.2
400 tmp-cache: 1.1.0 467 tmp-cache: 1.1.0
401 type-is: 1.6.18 468 type-is: 1.6.18
402 vary: 1.1.2 469 vary: 1.1.2
470 youch: 3.3.3
403 471
404 /@adonisjs/ioc-transformer@2.3.4: 472 /@adonisjs/logger@6.0.1:
405 resolution: {integrity: sha512-ik1C7f0Hbqenw6S1Ty06B4pznGfpUH5bL2fiCYgwq+jKPw8CKdsTQKvYudS6Tj68Nr6Mpqow4RNbvFV/OC0mZg==} 473 resolution: {integrity: sha512-zt3G2XPWZcreO6okdZ4A9CXfZhPBaAUTbsJZrLEYILdb5E0r5ZGw/MH6enK4uiN7BI+Y90W6HjXfQzKmXnNV2g==}
406 dev: true 474 engines: {node: '>=18.16.0'}
407
408 /@adonisjs/logger@4.1.5:
409 resolution: {integrity: sha512-JMINhXp/6VW0y4e86luyM8vbBzV4Y5F4IzVklMObCu/SwiaCbp5bgx9Z6QOHiGVW8SFVlRF1KlwLq8pAifjTpQ==}
410 dependencies: 475 dependencies:
411 '@poppinss/utils': 5.0.0 476 '@poppinss/utils': 6.7.2
412 '@types/pino': 6.3.12
413 abstract-logging: 2.0.1 477 abstract-logging: 2.0.1
414 pino: 6.14.0 478 pino: 8.18.0
415 479
416 /@adonisjs/lucid@18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6): 480 /@adonisjs/lucid@20.1.0(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)(luxon@3.4.4)(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7):
417 resolution: {integrity: sha512-pSBhKFzqr6mWoeIiGdcW2OQIWAyCoLn+G7VmXXLqxHvGm+9SaioKJaSMmaJa0xgS5v64r/MVLeH/nw87Q4KpyQ==} 481 resolution: {integrity: sha512-0kCqagM5pvydFFUP5rcc7G+LI18pMNKBnzdYzavAz2jKgw3yclr4I70t9j20DiMJTjWwF0v2X9gFfHXjXSQ7aA==}
482 engines: {node: '>=18.16.0'}
418 peerDependencies: 483 peerDependencies:
419 '@adonisjs/core': ^5.1.0 484 '@adonisjs/assembler': ^7.0.0
485 '@adonisjs/core': ^6.2.2
486 luxon: ^3.4.4
487 peerDependenciesMeta:
488 '@adonisjs/assembler':
489 optional: true
490 luxon:
491 optional: true
420 dependencies: 492 dependencies:
421 '@adonisjs/core': 5.9.0 493 '@adonisjs/assembler': 7.1.1(typescript@5.3.3)
422 '@faker-js/faker': 8.1.0 494 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
423 '@poppinss/hooks': 5.0.3(@adonisjs/application@5.3.0) 495 '@adonisjs/presets': 2.2.4(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3)
424 '@poppinss/utils': 5.0.0 496 '@faker-js/faker': 8.4.0
497 '@poppinss/hooks': 7.2.2
498 '@poppinss/macroable': 1.0.1
499 '@poppinss/utils': 6.7.2
425 fast-deep-equal: 3.1.3 500 fast-deep-equal: 3.1.3
426 igniculus: 1.5.0 501 igniculus: 1.5.0
427 knex: 2.5.1(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) 502 kleur: 4.1.5
428 knex-dynamic-connection: 3.1.0(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) 503 knex: 3.1.0(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7)
429 luxon: 3.3.0 504 knex-dynamic-connection: 3.1.1(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7)
430 macroable: 7.0.2 505 luxon: 3.4.4
431 pretty-hrtime: 1.0.3 506 pretty-hrtime: 1.0.3
432 qs: 6.11.2 507 qs: 6.11.2
433 slash: 3.0.0 508 slash: 5.1.0
434 tarn: 3.0.2 509 tarn: 3.0.2
435 transitivePeerDependencies: 510 transitivePeerDependencies:
436 - '@adonisjs/application'
437 - better-sqlite3 511 - better-sqlite3
438 - mysql 512 - mysql
439 - mysql2 513 - mysql2
@@ -444,23 +518,28 @@ packages:
444 - tedious 518 - tedious
445 dev: false 519 dev: false
446 520
447 /@adonisjs/mail@8.2.0(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4): 521 /@adonisjs/mail@9.2.0(@adonisjs/core@6.2.3)(@types/luxon@3.4.2)(@types/node@20.11.17)(edge.js@6.0.1)(luxon@3.4.4)(moment@2.30.1):
448 resolution: {integrity: sha512-gsmqj4akVnR3UFBotrfY517uWl9JC9CLiXdxMdtO76sq3p6GUUV1GlqL/m6lPurPTrT8a+EFe5CKBpLwIt84CQ==} 522 resolution: {integrity: sha512-TeZuB0VV3dDh4lPdHxvR9nxWFYkgjtRCURCT4mBMpa3Pxu0XtLwCs8s6jLYvt8k+L4pG2zHJttCrKNpM6hsrlw==}
523 engines: {node: '>=18.16.0'}
449 peerDependencies: 524 peerDependencies:
450 '@adonisjs/core': ^5.1.0 525 '@adonisjs/core': ^6.2.0
451 '@adonisjs/view': ^6.0.0 526 '@aws-sdk/client-ses': ^3.485.0
452 dependencies: 527 edge.js: ^6.0.1
453 '@adonisjs/core': 5.9.0 528 peerDependenciesMeta:
454 '@adonisjs/view': 6.2.0(@adonisjs/core@5.9.0) 529 '@aws-sdk/client-ses':
455 '@poppinss/colors': 3.0.3 530 optional: true
456 '@poppinss/manager': 5.0.2 531 dependencies:
457 '@poppinss/utils': 4.0.4 532 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
458 fastq: 1.15.0 533 '@poppinss/colors': 4.1.2
459 get-stream: 6.0.1 534 '@poppinss/macroable': 1.0.1
460 got: 11.8.6 535 '@poppinss/utils': 6.7.2
461 ical-generator: 4.1.0(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4) 536 '@types/nodemailer': 6.4.14
462 multi-part: 3.0.0 537 edge.js: 6.0.1
463 nodemailer: 6.9.5 538 fastq: 1.17.1
539 formdata-node: 6.0.3
540 got: 14.2.0
541 ical-generator: 6.0.1(@types/luxon@3.4.2)(@types/node@20.11.17)(luxon@3.4.4)(moment@2.30.1)
542 nodemailer: 6.9.9
464 transitivePeerDependencies: 543 transitivePeerDependencies:
465 - '@touch4it/ical-timezones' 544 - '@touch4it/ical-timezones'
466 - '@types/luxon' 545 - '@types/luxon'
@@ -473,419 +552,159 @@ packages:
473 - rrule 552 - rrule
474 dev: false 553 dev: false
475 554
476 /@adonisjs/profiler@6.0.9(@adonisjs/logger@4.1.5): 555 /@adonisjs/presets@2.2.4(@adonisjs/assembler@7.1.1)(@adonisjs/core@6.2.3):
477 resolution: {integrity: sha512-V1bJPPDTn05NzAKUEICnYtWi9fC8NownUToaqxVkWOUovYBO6ubt06qtH1Uv9zvUjB2PKHUn+ieDAOgyHle09A==} 556 resolution: {integrity: sha512-bYciFKma/M2JkKR2bxg3A9/oNGGIXgGNLatgvGVSxCJvAZ5LRkcPsdCr+n0rruAmY/BedUrhAV4b82UyDVxBEg==}
478 peerDependencies:
479 '@adonisjs/logger': ^4.0.0
480 dependencies:
481 '@adonisjs/logger': 4.1.5
482 '@poppinss/utils': 4.0.4
483 jest-worker: 27.5.1
484
485 /@adonisjs/repl@3.1.11(@adonisjs/core@5.9.0):
486 resolution: {integrity: sha512-t4xN+G+fa/XeZ+7qHnFbTk1bri/4RIGdFDk1cq2SeZI3nfu3E8Ma62uQVc8U3AAroN51plzXVcUoQ/Iw8q1P+Q==}
487 peerDependencies: 557 peerDependencies:
488 '@adonisjs/core': ^5.1.0 558 '@adonisjs/assembler': ^7.0.0
559 '@adonisjs/core': ^6.2.0
560 peerDependenciesMeta:
561 '@adonisjs/assembler':
562 optional: true
489 dependencies: 563 dependencies:
490 '@adonisjs/core': 5.9.0 564 '@adonisjs/assembler': 7.1.1(typescript@5.3.3)
491 '@poppinss/colors': 3.0.3 565 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
492 node-repl-await: 0.1.2 566 '@poppinss/utils': 6.7.2
493 parse-imports: 0.0.5
494 string-width: 4.2.3
495 dev: false 567 dev: false
496 568
497 /@adonisjs/require-ts@2.0.13: 569 /@adonisjs/prettier-config@1.2.1:
498 resolution: {integrity: sha512-PyDvrGzriU9dJC/ZkP+aT/+5jKCMTWIlc6KivU/uSGX9L9+PF213nzAATS1PKEWP1G0GcWsnyhQW8QgMwuFS3A==} 570 resolution: {integrity: sha512-lE9vJNKvknB+RO7uf11C2aT4nPjCxrP6IqPDjVu3HU7qy1VPY1e44SEsxdCOvOm7aFbv9hRV8ZN7sOl37Wa8ww==}
499 dependencies:
500 '@poppinss/utils': 5.0.0
501 debug: 4.3.4
502 find-cache-dir: 3.3.2
503 fs-extra: 10.1.0
504 normalize-path: 3.0.0
505 pirates: 4.0.6
506 rev-hash: 3.0.0
507 source-map-support: 0.5.21
508 transitivePeerDependencies:
509 - supports-color
510 dev: true 571 dev: true
511 572
512 /@adonisjs/session@6.4.0(@adonisjs/core@5.9.0): 573 /@adonisjs/repl@4.0.1:
513 resolution: {integrity: sha512-9yHS60lFpNBUX5/yB+0j+bXQDWqbaYJ1JelLCYtaKRa7B0NewvmPAmsNpHH8SrXE3XGaRyKOxrUGRcmSGg5mRA==} 574 resolution: {integrity: sha512-fgDRC5I8RBKHzsJPM4rRQF/OWI0K9cNihCIf4yHdqQt3mhFqWSOUjSi4sXWykdICLiddmyBO86au7i0d0dj5vQ==}
575 engines: {node: '>=18.16.0'}
576 dependencies:
577 '@poppinss/colors': 4.1.2
578 string-width: 7.1.0
579
580 /@adonisjs/session@7.1.1(@adonisjs/core@6.2.3)(edge.js@6.0.1):
581 resolution: {integrity: sha512-rv5lF6uEaAT3kujAEbwpVJuTfPcskjXlM8bt8OV2V6eGMQHGVczV3bErvQjW5ouHqyZiotKkCV2+7roGJdDaWw==}
582 engines: {node: '>=18.16.0'}
514 peerDependencies: 583 peerDependencies:
515 '@adonisjs/core': ^5.8.0 584 '@adonisjs/core': ^6.2.0
585 '@adonisjs/redis': ^8.0.0
586 '@japa/api-client': ^2.0.2
587 '@japa/browser-client': ^2.0.2
588 edge.js: ^6.0.1
589 peerDependenciesMeta:
590 '@adonisjs/redis':
591 optional: true
592 '@japa/api-client':
593 optional: true
594 '@japa/browser-client':
595 optional: true
596 edge.js:
597 optional: true
516 dependencies: 598 dependencies:
517 '@adonisjs/core': 5.9.0 599 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
518 '@poppinss/utils': 4.0.4 600 '@poppinss/utils': 6.7.2
519 fs-extra: 10.1.0 601 edge.js: 6.0.1
520 dev: false
521 602
522 /@adonisjs/shield@7.1.1(@adonisjs/core@5.9.0)(@adonisjs/session@6.4.0)(@adonisjs/view@6.2.0): 603 /@adonisjs/shield@8.1.1(@adonisjs/core@6.2.3)(@adonisjs/session@7.1.1)(edge.js@6.0.1):
523 resolution: {integrity: sha512-y1YzXwravcS/A1yxcyfSD/UrRi2+H9v0ntX9NgVhLYvBF5eHuPzQKgv9sICVjmj2z7n94HzcTAio0Rc32EX51Q==} 604 resolution: {integrity: sha512-b/rIypxfG8HKPRvWYJo7qhvAlvYCFXn7/A7eb/QI/PQV4fMmW4iF9tAykxl5peu4WJCHCwXwR3Y6/j0VerQcmQ==}
605 engines: {node: '>=18.16.0'}
524 peerDependencies: 606 peerDependencies:
525 '@adonisjs/core': ^5.7.0 607 '@adonisjs/core': ^6.2.0
526 '@adonisjs/session': ^6.2.0 608 '@adonisjs/i18n': ^2.0.0
527 '@adonisjs/view': ^6.1.0 609 '@adonisjs/session': ^7.0.0
610 '@japa/api-client': ^2.0.2
611 edge.js: ^6.0.1
528 peerDependenciesMeta: 612 peerDependenciesMeta:
529 '@adonisjs/view': 613 '@adonisjs/i18n':
614 optional: true
615 '@japa/api-client':
616 optional: true
617 edge.js:
530 optional: true 618 optional: true
531 dependencies: 619 dependencies:
532 '@adonisjs/core': 5.9.0 620 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
533 '@adonisjs/session': 6.4.0(@adonisjs/core@5.9.0) 621 '@adonisjs/session': 7.1.1(@adonisjs/core@6.2.3)(edge.js@6.0.1)
534 '@adonisjs/view': 6.2.0(@adonisjs/core@5.9.0) 622 '@poppinss/utils': 6.7.2
535 '@poppinss/utils': 4.0.4
536 csrf: 3.1.0 623 csrf: 3.1.0
624 edge.js: 6.0.1
537 helmet-csp: 3.4.0 625 helmet-csp: 3.4.0
538 dev: false
539 626
540 /@adonisjs/sink@5.4.3(@adonisjs/application@5.3.0): 627 /@adonisjs/static@1.1.1(@adonisjs/core@6.2.3):
541 resolution: {integrity: sha512-wmAft/tjHQLtjbDjntaVu3/cmeP+3tXKDaMeWjVf6Dz+tXaM9XNg2EVVSV41F3JDF4W1u9ich9mC+4wvWJDy5g==} 628 resolution: {integrity: sha512-Ukd2WB21/eajKLNQbaQ3Chxdqn7HyeHSO41J29oWc8DQFEhxxQIUGq0C1Kv5cJFY7PvZm9RAKMBi/2JC58LFWQ==}
629 engines: {node: '>=18.16.0'}
542 peerDependencies: 630 peerDependencies:
543 '@adonisjs/application': ^5.0.0 631 '@adonisjs/core': ^6.2.0
544 dependencies: 632 dependencies:
545 '@adonisjs/application': 5.3.0 633 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
546 '@poppinss/cliui': 3.0.5 634 serve-static: 1.15.0
547 '@poppinss/prompts': 2.0.2 635 transitivePeerDependencies:
548 '@poppinss/utils': 5.0.0 636 - supports-color
549 cp-file: 9.1.0 637 dev: false
550 fs-extra: 10.1.0 638
551 marked: 4.3.0 639 /@adonisjs/tsconfig@1.2.1:
552 marked-terminal: 5.2.0(marked@4.3.0) 640 resolution: {integrity: sha512-N8zdNw/bC3ft64e7CGr/LfYDCumoWe3wwePEqq2LRTCjBN/ICyxywW6f60QHLr+q17yHMU6fRFDt0GuRLXtPSA==}
553 mrm-core: 7.1.13
554 mustache: 4.2.0
555 open: 8.4.2
556 dev: true 641 dev: true
557 642
558 /@adonisjs/validator@12.5.0(@adonisjs/application@5.3.0)(@adonisjs/bodyparser@8.1.9)(@adonisjs/http-server@5.12.0): 643 /@adonisjs/validator@13.0.2(@adonisjs/core@6.2.3):
559 resolution: {integrity: sha512-88Lu+8OyS92A4mg0hE8AEjr8q9KmgZeR5obPGoAnCxBrptrsHHtKTQq242c+DbzuAWZzw5ZEX2dvv34PW/FmFw==} 644 resolution: {integrity: sha512-gec1SiJP6Y/SUbm1Co6Z0kh9euUWZnEioWHKJ/XdoX31rTI6qoET1EYX/NGuzT6axsk/zBWmgENhMv/WwNwZ7Q==}
645 engines: {node: '>=18.16.0'}
560 peerDependencies: 646 peerDependencies:
561 '@adonisjs/application': ^5.0.0 647 '@adonisjs/core': ^6.2.0
562 '@adonisjs/bodyparser': ^8.0.0 648 dependencies:
563 '@adonisjs/http-server': ^5.0.0 649 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
564 dependencies: 650 '@poppinss/utils': 6.7.2
565 '@adonisjs/application': 5.3.0 651 '@types/luxon': 3.4.2
566 '@adonisjs/bodyparser': 8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0) 652 '@types/validator': 13.11.8
567 '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) 653 luxon: 3.4.4
568 '@poppinss/utils': 5.0.0 654 normalize-url: 8.0.0
569 '@types/luxon': 3.3.1
570 '@types/validator': 13.11.2
571 luxon: 3.4.3
572 normalize-url: 6.1.0
573 tmp-cache: 1.1.0 655 tmp-cache: 1.1.0
574 validator: 13.11.0 656 validator: 13.11.0
575
576 /@adonisjs/view@6.2.0(@adonisjs/core@5.9.0):
577 resolution: {integrity: sha512-967f0fQ0QqdHIGh8qVdWoTHbfjB21gCh+SmCbuBWk1etpO0xTGgA2P1iDkBp/9Cd8BUTyhJX2TamKTsUP8FraA==}
578 peerDependencies:
579 '@adonisjs/core': ^5.7.0
580 dependencies:
581 '@adonisjs/core': 5.9.0
582 edge-error: 2.0.8
583 edge-supercharged: 3.1.1
584 edge.js: 5.5.1
585 dev: false 657 dev: false
586 658
587 /@ampproject/remapping@2.2.1: 659 /@adonisjs/vite@2.0.2(@adonisjs/core@6.2.3)(@adonisjs/shield@8.1.1)(edge.js@6.0.1)(vite@5.1.1):
588 resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 660 resolution: {integrity: sha512-DBlJGZFPdfGGtwwp119LZgcXlG8oBIdzxA7nqXZdO7KoEcmZJ9QVYTyJHMc5aYxgbhUXcZtKegNcIrfxXCRwjw==}
589 engines: {node: '>=6.0.0'} 661 engines: {node: '>=18.16.0'}
590 dependencies: 662 peerDependencies:
591 '@jridgewell/gen-mapping': 0.3.3 663 '@adonisjs/core': ^6.2.0
592 '@jridgewell/trace-mapping': 0.3.19 664 '@adonisjs/shield': ^8.0.0
593 dev: true 665 edge.js: ^6.0.1
594 666 vite: ^5.0.11
595 /@apidevtools/json-schema-ref-parser@9.1.2: 667 peerDependenciesMeta:
596 resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} 668 '@adonisjs/shield':
669 optional: true
670 edge.js:
671 optional: true
672 vite:
673 optional: true
597 dependencies: 674 dependencies:
598 '@jsdevtools/ono': 7.1.3 675 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
599 '@types/json-schema': 7.0.13 676 '@adonisjs/shield': 8.1.1(@adonisjs/core@6.2.3)(@adonisjs/session@7.1.1)(edge.js@6.0.1)
600 call-me-maybe: 1.0.2 677 defu: 6.1.4
601 js-yaml: 4.1.0 678 edge-error: 4.0.1
602 dev: true 679 edge.js: 6.0.1
603 680 vite: 5.1.1(@types/node@20.11.17)
604 /@apidevtools/openapi-schemas@2.1.0: 681 vite-plugin-restart: 0.4.0(vite@5.1.1)
605 resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==}
606 engines: {node: '>=10'}
607 dev: true
608
609 /@apidevtools/swagger-methods@3.0.2:
610 resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==}
611 dev: true 682 dev: true
612 683
613 /@apidevtools/swagger-parser@10.0.3(openapi-types@12.1.3): 684 /@antfu/install-pkg@0.3.1:
614 resolution: {integrity: sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==} 685 resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==}
615 peerDependencies:
616 openapi-types: '>=7'
617 dependencies: 686 dependencies:
618 '@apidevtools/json-schema-ref-parser': 9.1.2 687 execa: 8.0.1
619 '@apidevtools/openapi-schemas': 2.1.0
620 '@apidevtools/swagger-methods': 3.0.2
621 '@jsdevtools/ono': 7.1.3
622 call-me-maybe: 1.0.2
623 openapi-types: 12.1.3
624 z-schema: 5.0.5
625 dev: true
626 688
627 /@arr/every@1.0.1: 689 /@arr/every@1.0.1:
628 resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} 690 resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==}
629 engines: {node: '>=4'} 691 engines: {node: '>=4'}
630 692
631 /@babel/code-frame@7.22.13: 693 /@babel/code-frame@7.23.5:
632 resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} 694 resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
633 engines: {node: '>=6.9.0'} 695 engines: {node: '>=6.9.0'}
634 dependencies: 696 dependencies:
635 '@babel/highlight': 7.22.20 697 '@babel/highlight': 7.23.4
636 chalk: 2.4.2 698 chalk: 2.4.2
637 dev: true 699 dev: true
638 700
639 /@babel/compat-data@7.22.20:
640 resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==}
641 engines: {node: '>=6.9.0'}
642 dev: true
643
644 /@babel/core@7.23.0:
645 resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==}
646 engines: {node: '>=6.9.0'}
647 dependencies:
648 '@ampproject/remapping': 2.2.1
649 '@babel/code-frame': 7.22.13
650 '@babel/generator': 7.23.0
651 '@babel/helper-compilation-targets': 7.22.15
652 '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0)
653 '@babel/helpers': 7.23.1
654 '@babel/parser': 7.23.0
655 '@babel/template': 7.22.15
656 '@babel/traverse': 7.23.0
657 '@babel/types': 7.23.0
658 convert-source-map: 2.0.0
659 debug: 4.3.4
660 gensync: 1.0.0-beta.2
661 json5: 2.2.3
662 semver: 6.3.1
663 transitivePeerDependencies:
664 - supports-color
665 dev: true
666
667 /@babel/generator@7.23.0:
668 resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==}
669 engines: {node: '>=6.9.0'}
670 dependencies:
671 '@babel/types': 7.23.0
672 '@jridgewell/gen-mapping': 0.3.3
673 '@jridgewell/trace-mapping': 0.3.19
674 jsesc: 2.5.2
675 dev: true
676
677 /@babel/helper-annotate-as-pure@7.22.5:
678 resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
679 engines: {node: '>=6.9.0'}
680 dependencies:
681 '@babel/types': 7.23.0
682 dev: true
683
684 /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
685 resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
686 engines: {node: '>=6.9.0'}
687 dependencies:
688 '@babel/types': 7.23.0
689 dev: true
690
691 /@babel/helper-compilation-targets@7.22.15:
692 resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
693 engines: {node: '>=6.9.0'}
694 dependencies:
695 '@babel/compat-data': 7.22.20
696 '@babel/helper-validator-option': 7.22.15
697 browserslist: 4.22.1
698 lru-cache: 5.1.1
699 semver: 6.3.1
700 dev: true
701
702 /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.0):
703 resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==}
704 engines: {node: '>=6.9.0'}
705 peerDependencies:
706 '@babel/core': ^7.0.0
707 dependencies:
708 '@babel/core': 7.23.0
709 '@babel/helper-annotate-as-pure': 7.22.5
710 '@babel/helper-environment-visitor': 7.22.20
711 '@babel/helper-function-name': 7.23.0
712 '@babel/helper-member-expression-to-functions': 7.23.0
713 '@babel/helper-optimise-call-expression': 7.22.5
714 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0)
715 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
716 '@babel/helper-split-export-declaration': 7.22.6
717 semver: 6.3.1
718 dev: true
719
720 /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.0):
721 resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
722 engines: {node: '>=6.9.0'}
723 peerDependencies:
724 '@babel/core': ^7.0.0
725 dependencies:
726 '@babel/core': 7.23.0
727 '@babel/helper-annotate-as-pure': 7.22.5
728 regexpu-core: 5.3.2
729 semver: 6.3.1
730 dev: true
731
732 /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.23.0):
733 resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==}
734 peerDependencies:
735 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
736 dependencies:
737 '@babel/core': 7.23.0
738 '@babel/helper-compilation-targets': 7.22.15
739 '@babel/helper-plugin-utils': 7.22.5
740 debug: 4.3.4
741 lodash.debounce: 4.0.8
742 resolve: 1.22.6
743 transitivePeerDependencies:
744 - supports-color
745 dev: true
746
747 /@babel/helper-environment-visitor@7.22.20:
748 resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
749 engines: {node: '>=6.9.0'}
750 dev: true
751
752 /@babel/helper-function-name@7.23.0:
753 resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
754 engines: {node: '>=6.9.0'}
755 dependencies:
756 '@babel/template': 7.22.15
757 '@babel/types': 7.23.0
758 dev: true
759
760 /@babel/helper-hoist-variables@7.22.5:
761 resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
762 engines: {node: '>=6.9.0'}
763 dependencies:
764 '@babel/types': 7.23.0
765 dev: true
766
767 /@babel/helper-member-expression-to-functions@7.23.0:
768 resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
769 engines: {node: '>=6.9.0'}
770 dependencies:
771 '@babel/types': 7.23.0
772 dev: true
773
774 /@babel/helper-module-imports@7.22.15:
775 resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
776 engines: {node: '>=6.9.0'}
777 dependencies:
778 '@babel/types': 7.23.0
779 dev: true
780
781 /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0):
782 resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==}
783 engines: {node: '>=6.9.0'}
784 peerDependencies:
785 '@babel/core': ^7.0.0
786 dependencies:
787 '@babel/core': 7.23.0
788 '@babel/helper-environment-visitor': 7.22.20
789 '@babel/helper-module-imports': 7.22.15
790 '@babel/helper-simple-access': 7.22.5
791 '@babel/helper-split-export-declaration': 7.22.6
792 '@babel/helper-validator-identifier': 7.22.20
793 dev: true
794
795 /@babel/helper-optimise-call-expression@7.22.5:
796 resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
797 engines: {node: '>=6.9.0'}
798 dependencies:
799 '@babel/types': 7.23.0
800 dev: true
801
802 /@babel/helper-plugin-utils@7.22.5:
803 resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
804 engines: {node: '>=6.9.0'}
805 dev: true
806
807 /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.0):
808 resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
809 engines: {node: '>=6.9.0'}
810 peerDependencies:
811 '@babel/core': ^7.0.0
812 dependencies:
813 '@babel/core': 7.23.0
814 '@babel/helper-annotate-as-pure': 7.22.5
815 '@babel/helper-environment-visitor': 7.22.20
816 '@babel/helper-wrap-function': 7.22.20
817 dev: true
818
819 /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.0):
820 resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
821 engines: {node: '>=6.9.0'}
822 peerDependencies:
823 '@babel/core': ^7.0.0
824 dependencies:
825 '@babel/core': 7.23.0
826 '@babel/helper-environment-visitor': 7.22.20
827 '@babel/helper-member-expression-to-functions': 7.23.0
828 '@babel/helper-optimise-call-expression': 7.22.5
829 dev: true
830
831 /@babel/helper-simple-access@7.22.5:
832 resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
833 engines: {node: '>=6.9.0'}
834 dependencies:
835 '@babel/types': 7.23.0
836 dev: true
837
838 /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
839 resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
840 engines: {node: '>=6.9.0'}
841 dependencies:
842 '@babel/types': 7.23.0
843 dev: true
844
845 /@babel/helper-split-export-declaration@7.22.6:
846 resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
847 engines: {node: '>=6.9.0'}
848 dependencies:
849 '@babel/types': 7.23.0
850 dev: true
851
852 /@babel/helper-string-parser@7.22.5:
853 resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
854 engines: {node: '>=6.9.0'}
855 dev: true
856
857 /@babel/helper-validator-identifier@7.22.20: 701 /@babel/helper-validator-identifier@7.22.20:
858 resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 702 resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
859 engines: {node: '>=6.9.0'} 703 engines: {node: '>=6.9.0'}
860 dev: true 704 dev: true
861 705
862 /@babel/helper-validator-option@7.22.15: 706 /@babel/highlight@7.23.4:
863 resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} 707 resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
864 engines: {node: '>=6.9.0'}
865 dev: true
866
867 /@babel/helper-wrap-function@7.22.20:
868 resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
869 engines: {node: '>=6.9.0'}
870 dependencies:
871 '@babel/helper-function-name': 7.23.0
872 '@babel/template': 7.22.15
873 '@babel/types': 7.23.0
874 dev: true
875
876 /@babel/helpers@7.23.1:
877 resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==}
878 engines: {node: '>=6.9.0'}
879 dependencies:
880 '@babel/template': 7.22.15
881 '@babel/traverse': 7.23.0
882 '@babel/types': 7.23.0
883 transitivePeerDependencies:
884 - supports-color
885 dev: true
886
887 /@babel/highlight@7.22.20:
888 resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
889 engines: {node: '>=6.9.0'} 708 engines: {node: '>=6.9.0'}
890 dependencies: 709 dependencies:
891 '@babel/helper-validator-identifier': 7.22.20 710 '@babel/helper-validator-identifier': 7.22.20
@@ -893,930 +712,250 @@ packages:
893 js-tokens: 4.0.0 712 js-tokens: 4.0.0
894 dev: true 713 dev: true
895 714
896 /@babel/parser@7.23.0: 715 /@colors/colors@1.5.0:
897 resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} 716 resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
898 engines: {node: '>=6.0.0'} 717 engines: {node: '>=0.1.90'}
899 hasBin: true 718 requiresBuild: true
900 dependencies: 719 optional: true
901 '@babel/types': 7.23.0
902 dev: true
903
904 /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.0):
905 resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==}
906 engines: {node: '>=6.9.0'}
907 peerDependencies:
908 '@babel/core': ^7.0.0
909 dependencies:
910 '@babel/core': 7.23.0
911 '@babel/helper-plugin-utils': 7.22.5
912 dev: true
913
914 /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.0):
915 resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==}
916 engines: {node: '>=6.9.0'}
917 peerDependencies:
918 '@babel/core': ^7.13.0
919 dependencies:
920 '@babel/core': 7.23.0
921 '@babel/helper-plugin-utils': 7.22.5
922 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
923 '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0)
924 dev: true
925
926 /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0):
927 resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
928 engines: {node: '>=6.9.0'}
929 peerDependencies:
930 '@babel/core': ^7.0.0-0
931 dependencies:
932 '@babel/core': 7.23.0
933 dev: true
934
935 /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0):
936 resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
937 peerDependencies:
938 '@babel/core': ^7.0.0-0
939 dependencies:
940 '@babel/core': 7.23.0
941 '@babel/helper-plugin-utils': 7.22.5
942 dev: true
943
944 /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0):
945 resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
946 peerDependencies:
947 '@babel/core': ^7.0.0-0
948 dependencies:
949 '@babel/core': 7.23.0
950 '@babel/helper-plugin-utils': 7.22.5
951 dev: true
952
953 /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.0):
954 resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
955 engines: {node: '>=6.9.0'}
956 peerDependencies:
957 '@babel/core': ^7.0.0-0
958 dependencies:
959 '@babel/core': 7.23.0
960 '@babel/helper-plugin-utils': 7.22.5
961 dev: true
962
963 /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.0):
964 resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
965 peerDependencies:
966 '@babel/core': ^7.0.0-0
967 dependencies:
968 '@babel/core': 7.23.0
969 '@babel/helper-plugin-utils': 7.22.5
970 dev: true
971
972 /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.0):
973 resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
974 peerDependencies:
975 '@babel/core': ^7.0.0-0
976 dependencies:
977 '@babel/core': 7.23.0
978 '@babel/helper-plugin-utils': 7.22.5
979 dev: true
980
981 /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.0):
982 resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==}
983 engines: {node: '>=6.9.0'}
984 peerDependencies:
985 '@babel/core': ^7.0.0-0
986 dependencies:
987 '@babel/core': 7.23.0
988 '@babel/helper-plugin-utils': 7.22.5
989 dev: true
990
991 /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.0):
992 resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==}
993 engines: {node: '>=6.9.0'}
994 peerDependencies:
995 '@babel/core': ^7.0.0-0
996 dependencies:
997 '@babel/core': 7.23.0
998 '@babel/helper-plugin-utils': 7.22.5
999 dev: true
1000
1001 /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0):
1002 resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
1003 peerDependencies:
1004 '@babel/core': ^7.0.0-0
1005 dependencies:
1006 '@babel/core': 7.23.0
1007 '@babel/helper-plugin-utils': 7.22.5
1008 dev: true
1009
1010 /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0):
1011 resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
1012 peerDependencies:
1013 '@babel/core': ^7.0.0-0
1014 dependencies:
1015 '@babel/core': 7.23.0
1016 '@babel/helper-plugin-utils': 7.22.5
1017 dev: true
1018
1019 /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0):
1020 resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
1021 peerDependencies:
1022 '@babel/core': ^7.0.0-0
1023 dependencies:
1024 '@babel/core': 7.23.0
1025 '@babel/helper-plugin-utils': 7.22.5
1026 dev: true
1027
1028 /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0):
1029 resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
1030 peerDependencies:
1031 '@babel/core': ^7.0.0-0
1032 dependencies:
1033 '@babel/core': 7.23.0
1034 '@babel/helper-plugin-utils': 7.22.5
1035 dev: true
1036
1037 /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0):
1038 resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
1039 peerDependencies:
1040 '@babel/core': ^7.0.0-0
1041 dependencies:
1042 '@babel/core': 7.23.0
1043 '@babel/helper-plugin-utils': 7.22.5
1044 dev: true
1045
1046 /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0):
1047 resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
1048 peerDependencies:
1049 '@babel/core': ^7.0.0-0
1050 dependencies:
1051 '@babel/core': 7.23.0
1052 '@babel/helper-plugin-utils': 7.22.5
1053 dev: true
1054
1055 /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0):
1056 resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
1057 peerDependencies:
1058 '@babel/core': ^7.0.0-0
1059 dependencies:
1060 '@babel/core': 7.23.0
1061 '@babel/helper-plugin-utils': 7.22.5
1062 dev: true
1063
1064 /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0):
1065 resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
1066 peerDependencies:
1067 '@babel/core': ^7.0.0-0
1068 dependencies:
1069 '@babel/core': 7.23.0
1070 '@babel/helper-plugin-utils': 7.22.5
1071 dev: true
1072
1073 /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.0):
1074 resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
1075 engines: {node: '>=6.9.0'}
1076 peerDependencies:
1077 '@babel/core': ^7.0.0-0
1078 dependencies:
1079 '@babel/core': 7.23.0
1080 '@babel/helper-plugin-utils': 7.22.5
1081 dev: true
1082
1083 /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0):
1084 resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
1085 engines: {node: '>=6.9.0'}
1086 peerDependencies:
1087 '@babel/core': ^7.0.0-0
1088 dependencies:
1089 '@babel/core': 7.23.0
1090 '@babel/helper-plugin-utils': 7.22.5
1091 dev: true
1092
1093 /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.0):
1094 resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
1095 engines: {node: '>=6.9.0'}
1096 peerDependencies:
1097 '@babel/core': ^7.0.0
1098 dependencies:
1099 '@babel/core': 7.23.0
1100 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0)
1101 '@babel/helper-plugin-utils': 7.22.5
1102 dev: true
1103
1104 /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.0):
1105 resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==}
1106 engines: {node: '>=6.9.0'}
1107 peerDependencies:
1108 '@babel/core': ^7.0.0-0
1109 dependencies:
1110 '@babel/core': 7.23.0
1111 '@babel/helper-plugin-utils': 7.22.5
1112 dev: true
1113
1114 /@babel/plugin-transform-async-generator-functions@7.22.15(@babel/core@7.23.0):
1115 resolution: {integrity: sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==}
1116 engines: {node: '>=6.9.0'}
1117 peerDependencies:
1118 '@babel/core': ^7.0.0-0
1119 dependencies:
1120 '@babel/core': 7.23.0
1121 '@babel/helper-environment-visitor': 7.22.20
1122 '@babel/helper-plugin-utils': 7.22.5
1123 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.0)
1124 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0)
1125 dev: true
1126
1127 /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.0):
1128 resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==}
1129 engines: {node: '>=6.9.0'}
1130 peerDependencies:
1131 '@babel/core': ^7.0.0-0
1132 dependencies:
1133 '@babel/core': 7.23.0
1134 '@babel/helper-module-imports': 7.22.15
1135 '@babel/helper-plugin-utils': 7.22.5
1136 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.0)
1137 dev: true
1138
1139 /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.0):
1140 resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==}
1141 engines: {node: '>=6.9.0'}
1142 peerDependencies:
1143 '@babel/core': ^7.0.0-0
1144 dependencies:
1145 '@babel/core': 7.23.0
1146 '@babel/helper-plugin-utils': 7.22.5
1147 dev: true
1148
1149 /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.0):
1150 resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==}
1151 engines: {node: '>=6.9.0'}
1152 peerDependencies:
1153 '@babel/core': ^7.0.0-0
1154 dependencies:
1155 '@babel/core': 7.23.0
1156 '@babel/helper-plugin-utils': 7.22.5
1157 dev: true
1158
1159 /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.0):
1160 resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==}
1161 engines: {node: '>=6.9.0'}
1162 peerDependencies:
1163 '@babel/core': ^7.0.0-0
1164 dependencies:
1165 '@babel/core': 7.23.0
1166 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0)
1167 '@babel/helper-plugin-utils': 7.22.5
1168 dev: true
1169
1170 /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.0):
1171 resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==}
1172 engines: {node: '>=6.9.0'}
1173 peerDependencies:
1174 '@babel/core': ^7.12.0
1175 dependencies:
1176 '@babel/core': 7.23.0
1177 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0)
1178 '@babel/helper-plugin-utils': 7.22.5
1179 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0)
1180 dev: true
1181
1182 /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.0):
1183 resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==}
1184 engines: {node: '>=6.9.0'}
1185 peerDependencies:
1186 '@babel/core': ^7.0.0-0
1187 dependencies:
1188 '@babel/core': 7.23.0
1189 '@babel/helper-annotate-as-pure': 7.22.5
1190 '@babel/helper-compilation-targets': 7.22.15
1191 '@babel/helper-environment-visitor': 7.22.20
1192 '@babel/helper-function-name': 7.23.0
1193 '@babel/helper-optimise-call-expression': 7.22.5
1194 '@babel/helper-plugin-utils': 7.22.5
1195 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0)
1196 '@babel/helper-split-export-declaration': 7.22.6
1197 globals: 11.12.0
1198 dev: true
1199
1200 /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.0):
1201 resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==}
1202 engines: {node: '>=6.9.0'}
1203 peerDependencies:
1204 '@babel/core': ^7.0.0-0
1205 dependencies:
1206 '@babel/core': 7.23.0
1207 '@babel/helper-plugin-utils': 7.22.5
1208 '@babel/template': 7.22.15
1209 dev: true
1210
1211 /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.0):
1212 resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==}
1213 engines: {node: '>=6.9.0'}
1214 peerDependencies:
1215 '@babel/core': ^7.0.0-0
1216 dependencies:
1217 '@babel/core': 7.23.0
1218 '@babel/helper-plugin-utils': 7.22.5
1219 dev: true
1220
1221 /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.0):
1222 resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==}
1223 engines: {node: '>=6.9.0'}
1224 peerDependencies:
1225 '@babel/core': ^7.0.0-0
1226 dependencies:
1227 '@babel/core': 7.23.0
1228 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0)
1229 '@babel/helper-plugin-utils': 7.22.5
1230 dev: true
1231
1232 /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.0):
1233 resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==}
1234 engines: {node: '>=6.9.0'}
1235 peerDependencies:
1236 '@babel/core': ^7.0.0-0
1237 dependencies:
1238 '@babel/core': 7.23.0
1239 '@babel/helper-plugin-utils': 7.22.5
1240 dev: true
1241
1242 /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.0):
1243 resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==}
1244 engines: {node: '>=6.9.0'}
1245 peerDependencies:
1246 '@babel/core': ^7.0.0-0
1247 dependencies:
1248 '@babel/core': 7.23.0
1249 '@babel/helper-plugin-utils': 7.22.5
1250 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0)
1251 dev: true
1252
1253 /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.0):
1254 resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==}
1255 engines: {node: '>=6.9.0'}
1256 peerDependencies:
1257 '@babel/core': ^7.0.0-0
1258 dependencies:
1259 '@babel/core': 7.23.0
1260 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
1261 '@babel/helper-plugin-utils': 7.22.5
1262 dev: true
1263
1264 /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.0):
1265 resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==}
1266 engines: {node: '>=6.9.0'}
1267 peerDependencies:
1268 '@babel/core': ^7.0.0-0
1269 dependencies:
1270 '@babel/core': 7.23.0
1271 '@babel/helper-plugin-utils': 7.22.5
1272 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0)
1273 dev: true
1274
1275 /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.0):
1276 resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==}
1277 engines: {node: '>=6.9.0'}
1278 peerDependencies:
1279 '@babel/core': ^7.0.0-0
1280 dependencies:
1281 '@babel/core': 7.23.0
1282 '@babel/helper-plugin-utils': 7.22.5
1283 dev: true
1284
1285 /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.0):
1286 resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==}
1287 engines: {node: '>=6.9.0'}
1288 peerDependencies:
1289 '@babel/core': ^7.0.0-0
1290 dependencies:
1291 '@babel/core': 7.23.0
1292 '@babel/helper-compilation-targets': 7.22.15
1293 '@babel/helper-function-name': 7.23.0
1294 '@babel/helper-plugin-utils': 7.22.5
1295 dev: true
1296
1297 /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.0):
1298 resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==}
1299 engines: {node: '>=6.9.0'}
1300 peerDependencies:
1301 '@babel/core': ^7.0.0-0
1302 dependencies:
1303 '@babel/core': 7.23.0
1304 '@babel/helper-plugin-utils': 7.22.5
1305 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0)
1306 dev: true
1307
1308 /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.0):
1309 resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==}
1310 engines: {node: '>=6.9.0'}
1311 peerDependencies:
1312 '@babel/core': ^7.0.0-0
1313 dependencies:
1314 '@babel/core': 7.23.0
1315 '@babel/helper-plugin-utils': 7.22.5
1316 dev: true
1317
1318 /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.0):
1319 resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==}
1320 engines: {node: '>=6.9.0'}
1321 peerDependencies:
1322 '@babel/core': ^7.0.0-0
1323 dependencies:
1324 '@babel/core': 7.23.0
1325 '@babel/helper-plugin-utils': 7.22.5
1326 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0)
1327 dev: true
1328
1329 /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.0):
1330 resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==}
1331 engines: {node: '>=6.9.0'}
1332 peerDependencies:
1333 '@babel/core': ^7.0.0-0
1334 dependencies:
1335 '@babel/core': 7.23.0
1336 '@babel/helper-plugin-utils': 7.22.5
1337 dev: true
1338
1339 /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.0):
1340 resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==}
1341 engines: {node: '>=6.9.0'}
1342 peerDependencies:
1343 '@babel/core': ^7.0.0-0
1344 dependencies:
1345 '@babel/core': 7.23.0
1346 '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0)
1347 '@babel/helper-plugin-utils': 7.22.5
1348 dev: true
1349
1350 /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.0):
1351 resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==}
1352 engines: {node: '>=6.9.0'}
1353 peerDependencies:
1354 '@babel/core': ^7.0.0-0
1355 dependencies:
1356 '@babel/core': 7.23.0
1357 '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0)
1358 '@babel/helper-plugin-utils': 7.22.5
1359 '@babel/helper-simple-access': 7.22.5
1360 dev: true
1361
1362 /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.0):
1363 resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==}
1364 engines: {node: '>=6.9.0'}
1365 peerDependencies:
1366 '@babel/core': ^7.0.0-0
1367 dependencies:
1368 '@babel/core': 7.23.0
1369 '@babel/helper-hoist-variables': 7.22.5
1370 '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0)
1371 '@babel/helper-plugin-utils': 7.22.5
1372 '@babel/helper-validator-identifier': 7.22.20
1373 dev: true
1374
1375 /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.0):
1376 resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==}
1377 engines: {node: '>=6.9.0'}
1378 peerDependencies:
1379 '@babel/core': ^7.0.0-0
1380 dependencies:
1381 '@babel/core': 7.23.0
1382 '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0)
1383 '@babel/helper-plugin-utils': 7.22.5
1384 dev: true
1385
1386 /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.0):
1387 resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
1388 engines: {node: '>=6.9.0'}
1389 peerDependencies:
1390 '@babel/core': ^7.0.0
1391 dependencies:
1392 '@babel/core': 7.23.0
1393 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0)
1394 '@babel/helper-plugin-utils': 7.22.5
1395 dev: true
1396
1397 /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.0):
1398 resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==}
1399 engines: {node: '>=6.9.0'}
1400 peerDependencies:
1401 '@babel/core': ^7.0.0-0
1402 dependencies:
1403 '@babel/core': 7.23.0
1404 '@babel/helper-plugin-utils': 7.22.5
1405 dev: true
1406
1407 /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.0):
1408 resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==}
1409 engines: {node: '>=6.9.0'}
1410 peerDependencies:
1411 '@babel/core': ^7.0.0-0
1412 dependencies:
1413 '@babel/core': 7.23.0
1414 '@babel/helper-plugin-utils': 7.22.5
1415 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0)
1416 dev: true
1417
1418 /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.0):
1419 resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==}
1420 engines: {node: '>=6.9.0'}
1421 peerDependencies:
1422 '@babel/core': ^7.0.0-0
1423 dependencies:
1424 '@babel/core': 7.23.0
1425 '@babel/helper-plugin-utils': 7.22.5
1426 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0)
1427 dev: true
1428
1429 /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.0):
1430 resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==}
1431 engines: {node: '>=6.9.0'}
1432 peerDependencies:
1433 '@babel/core': ^7.0.0-0
1434 dependencies:
1435 '@babel/compat-data': 7.22.20
1436 '@babel/core': 7.23.0
1437 '@babel/helper-compilation-targets': 7.22.15
1438 '@babel/helper-plugin-utils': 7.22.5
1439 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0)
1440 '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0)
1441 dev: true
1442
1443 /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.0):
1444 resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==}
1445 engines: {node: '>=6.9.0'}
1446 peerDependencies:
1447 '@babel/core': ^7.0.0-0
1448 dependencies:
1449 '@babel/core': 7.23.0
1450 '@babel/helper-plugin-utils': 7.22.5
1451 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0)
1452 dev: true
1453
1454 /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.0):
1455 resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==}
1456 engines: {node: '>=6.9.0'}
1457 peerDependencies:
1458 '@babel/core': ^7.0.0-0
1459 dependencies:
1460 '@babel/core': 7.23.0
1461 '@babel/helper-plugin-utils': 7.22.5
1462 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0)
1463 dev: true
1464
1465 /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.0):
1466 resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==}
1467 engines: {node: '>=6.9.0'}
1468 peerDependencies:
1469 '@babel/core': ^7.0.0-0
1470 dependencies:
1471 '@babel/core': 7.23.0
1472 '@babel/helper-plugin-utils': 7.22.5
1473 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
1474 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0)
1475 dev: true
1476 720
1477 /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.0): 721 /@cspotcode/source-map-support@0.8.1:
1478 resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} 722 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
1479 engines: {node: '>=6.9.0'} 723 engines: {node: '>=12'}
1480 peerDependencies:
1481 '@babel/core': ^7.0.0-0
1482 dependencies: 724 dependencies:
1483 '@babel/core': 7.23.0 725 '@jridgewell/trace-mapping': 0.3.9
1484 '@babel/helper-plugin-utils': 7.22.5
1485 dev: true 726 dev: true
1486 727
1487 /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.0): 728 /@esbuild/aix-ppc64@0.19.12:
1488 resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} 729 resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
1489 engines: {node: '>=6.9.0'} 730 engines: {node: '>=12'}
1490 peerDependencies: 731 cpu: [ppc64]
1491 '@babel/core': ^7.0.0-0 732 os: [aix]
1492 dependencies: 733 requiresBuild: true
1493 '@babel/core': 7.23.0
1494 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0)
1495 '@babel/helper-plugin-utils': 7.22.5
1496 dev: true 734 dev: true
735 optional: true
1497 736
1498 /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.0): 737 /@esbuild/android-arm64@0.19.12:
1499 resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} 738 resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
1500 engines: {node: '>=6.9.0'} 739 engines: {node: '>=12'}
1501 peerDependencies: 740 cpu: [arm64]
1502 '@babel/core': ^7.0.0-0 741 os: [android]
1503 dependencies: 742 requiresBuild: true
1504 '@babel/core': 7.23.0
1505 '@babel/helper-annotate-as-pure': 7.22.5
1506 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0)
1507 '@babel/helper-plugin-utils': 7.22.5
1508 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0)
1509 dev: true 743 dev: true
744 optional: true
1510 745
1511 /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.0): 746 /@esbuild/android-arm@0.19.12:
1512 resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} 747 resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
1513 engines: {node: '>=6.9.0'} 748 engines: {node: '>=12'}
1514 peerDependencies: 749 cpu: [arm]
1515 '@babel/core': ^7.0.0-0 750 os: [android]
1516 dependencies: 751 requiresBuild: true
1517 '@babel/core': 7.23.0
1518 '@babel/helper-plugin-utils': 7.22.5
1519 dev: true 752 dev: true
753 optional: true
1520 754
1521 /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.0): 755 /@esbuild/android-x64@0.19.12:
1522 resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} 756 resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
1523 engines: {node: '>=6.9.0'} 757 engines: {node: '>=12'}
1524 peerDependencies: 758 cpu: [x64]
1525 '@babel/core': ^7.0.0-0 759 os: [android]
1526 dependencies: 760 requiresBuild: true
1527 '@babel/core': 7.23.0
1528 '@babel/helper-plugin-utils': 7.22.5
1529 regenerator-transform: 0.15.2
1530 dev: true 761 dev: true
762 optional: true
1531 763
1532 /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.0): 764 /@esbuild/darwin-arm64@0.19.12:
1533 resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} 765 resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
1534 engines: {node: '>=6.9.0'} 766 engines: {node: '>=12'}
1535 peerDependencies: 767 cpu: [arm64]
1536 '@babel/core': ^7.0.0-0 768 os: [darwin]
1537 dependencies: 769 requiresBuild: true
1538 '@babel/core': 7.23.0
1539 '@babel/helper-plugin-utils': 7.22.5
1540 dev: true 770 dev: true
771 optional: true
1541 772
1542 /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.0): 773 /@esbuild/darwin-x64@0.19.12:
1543 resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} 774 resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
1544 engines: {node: '>=6.9.0'} 775 engines: {node: '>=12'}
1545 peerDependencies: 776 cpu: [x64]
1546 '@babel/core': ^7.0.0-0 777 os: [darwin]
1547 dependencies: 778 requiresBuild: true
1548 '@babel/core': 7.23.0
1549 '@babel/helper-plugin-utils': 7.22.5
1550 dev: true 779 dev: true
780 optional: true
1551 781
1552 /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.0): 782 /@esbuild/freebsd-arm64@0.19.12:
1553 resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} 783 resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
1554 engines: {node: '>=6.9.0'} 784 engines: {node: '>=12'}
1555 peerDependencies: 785 cpu: [arm64]
1556 '@babel/core': ^7.0.0-0 786 os: [freebsd]
1557 dependencies: 787 requiresBuild: true
1558 '@babel/core': 7.23.0
1559 '@babel/helper-plugin-utils': 7.22.5
1560 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
1561 dev: true 788 dev: true
789 optional: true
1562 790
1563 /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.0): 791 /@esbuild/freebsd-x64@0.19.12:
1564 resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} 792 resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
1565 engines: {node: '>=6.9.0'} 793 engines: {node: '>=12'}
1566 peerDependencies: 794 cpu: [x64]
1567 '@babel/core': ^7.0.0-0 795 os: [freebsd]
1568 dependencies: 796 requiresBuild: true
1569 '@babel/core': 7.23.0
1570 '@babel/helper-plugin-utils': 7.22.5
1571 dev: true 797 dev: true
798 optional: true
1572 799
1573 /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.0): 800 /@esbuild/linux-arm64@0.19.12:
1574 resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} 801 resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
1575 engines: {node: '>=6.9.0'} 802 engines: {node: '>=12'}
1576 peerDependencies: 803 cpu: [arm64]
1577 '@babel/core': ^7.0.0-0 804 os: [linux]
1578 dependencies: 805 requiresBuild: true
1579 '@babel/core': 7.23.0
1580 '@babel/helper-plugin-utils': 7.22.5
1581 dev: true 806 dev: true
807 optional: true
1582 808
1583 /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.0): 809 /@esbuild/linux-arm@0.19.12:
1584 resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} 810 resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
1585 engines: {node: '>=6.9.0'} 811 engines: {node: '>=12'}
1586 peerDependencies: 812 cpu: [arm]
1587 '@babel/core': ^7.0.0-0 813 os: [linux]
1588 dependencies: 814 requiresBuild: true
1589 '@babel/core': 7.23.0
1590 '@babel/helper-plugin-utils': 7.22.5
1591 dev: true 815 dev: true
816 optional: true
1592 817
1593 /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.0): 818 /@esbuild/linux-ia32@0.19.12:
1594 resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} 819 resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
1595 engines: {node: '>=6.9.0'} 820 engines: {node: '>=12'}
1596 peerDependencies: 821 cpu: [ia32]
1597 '@babel/core': ^7.0.0-0 822 os: [linux]
1598 dependencies: 823 requiresBuild: true
1599 '@babel/core': 7.23.0
1600 '@babel/helper-plugin-utils': 7.22.5
1601 dev: true 824 dev: true
825 optional: true
1602 826
1603 /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.0): 827 /@esbuild/linux-loong64@0.19.12:
1604 resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} 828 resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
1605 engines: {node: '>=6.9.0'} 829 engines: {node: '>=12'}
1606 peerDependencies: 830 cpu: [loong64]
1607 '@babel/core': ^7.0.0-0 831 os: [linux]
1608 dependencies: 832 requiresBuild: true
1609 '@babel/core': 7.23.0
1610 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0)
1611 '@babel/helper-plugin-utils': 7.22.5
1612 dev: true 833 dev: true
834 optional: true
1613 835
1614 /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.0): 836 /@esbuild/linux-mips64el@0.19.12:
1615 resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} 837 resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
1616 engines: {node: '>=6.9.0'} 838 engines: {node: '>=12'}
1617 peerDependencies: 839 cpu: [mips64el]
1618 '@babel/core': ^7.0.0-0 840 os: [linux]
1619 dependencies: 841 requiresBuild: true
1620 '@babel/core': 7.23.0
1621 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0)
1622 '@babel/helper-plugin-utils': 7.22.5
1623 dev: true 842 dev: true
843 optional: true
1624 844
1625 /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.0): 845 /@esbuild/linux-ppc64@0.19.12:
1626 resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} 846 resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
1627 engines: {node: '>=6.9.0'} 847 engines: {node: '>=12'}
1628 peerDependencies: 848 cpu: [ppc64]
1629 '@babel/core': ^7.0.0 849 os: [linux]
1630 dependencies: 850 requiresBuild: true
1631 '@babel/core': 7.23.0
1632 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.0)
1633 '@babel/helper-plugin-utils': 7.22.5
1634 dev: true 851 dev: true
852 optional: true
1635 853
1636 /@babel/preset-env@7.22.20(@babel/core@7.23.0): 854 /@esbuild/linux-riscv64@0.19.12:
1637 resolution: {integrity: sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==} 855 resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
1638 engines: {node: '>=6.9.0'} 856 engines: {node: '>=12'}
1639 peerDependencies: 857 cpu: [riscv64]
1640 '@babel/core': ^7.0.0-0 858 os: [linux]
1641 dependencies: 859 requiresBuild: true
1642 '@babel/compat-data': 7.22.20
1643 '@babel/core': 7.23.0
1644 '@babel/helper-compilation-targets': 7.22.15
1645 '@babel/helper-plugin-utils': 7.22.5
1646 '@babel/helper-validator-option': 7.22.15
1647 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.0)
1648 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.0)
1649 '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0)
1650 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0)
1651 '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0)
1652 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.0)
1653 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.0)
1654 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.0)
1655 '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.0)
1656 '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.0)
1657 '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0)
1658 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0)
1659 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0)
1660 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0)
1661 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0)
1662 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0)
1663 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0)
1664 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0)
1665 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.0)
1666 '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0)
1667 '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.0)
1668 '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.0)
1669 '@babel/plugin-transform-async-generator-functions': 7.22.15(@babel/core@7.23.0)
1670 '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.0)
1671 '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.0)
1672 '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.0)
1673 '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.0)
1674 '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.0)
1675 '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.0)
1676 '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.0)
1677 '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.0)
1678 '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.0)
1679 '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.0)
1680 '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.0)
1681 '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.0)
1682 '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.0)
1683 '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.0)
1684 '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.0)
1685 '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.0)
1686 '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.0)
1687 '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.0)
1688 '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.0)
1689 '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.0)
1690 '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.0)
1691 '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.0)
1692 '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.0)
1693 '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.0)
1694 '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.0)
1695 '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.0)
1696 '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.0)
1697 '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.0)
1698 '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.0)
1699 '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.0)
1700 '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.0)
1701 '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.0)
1702 '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.0)
1703 '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.0)
1704 '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.0)
1705 '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.0)
1706 '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.0)
1707 '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.0)
1708 '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.0)
1709 '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.0)
1710 '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.0)
1711 '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.0)
1712 '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.0)
1713 '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.0)
1714 '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.0)
1715 '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.0)
1716 '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.0)
1717 '@babel/types': 7.23.0
1718 babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.23.0)
1719 babel-plugin-polyfill-corejs3: 0.8.4(@babel/core@7.23.0)
1720 babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.23.0)
1721 core-js-compat: 3.32.2
1722 semver: 6.3.1
1723 transitivePeerDependencies:
1724 - supports-color
1725 dev: true 860 dev: true
861 optional: true
1726 862
1727 /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.0): 863 /@esbuild/linux-s390x@0.19.12:
1728 resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} 864 resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
1729 peerDependencies: 865 engines: {node: '>=12'}
1730 '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 866 cpu: [s390x]
1731 dependencies: 867 os: [linux]
1732 '@babel/core': 7.23.0 868 requiresBuild: true
1733 '@babel/helper-plugin-utils': 7.22.5
1734 '@babel/types': 7.23.0
1735 esutils: 2.0.3
1736 dev: true 869 dev: true
870 optional: true
1737 871
1738 /@babel/regjsgen@0.8.0: 872 /@esbuild/linux-x64@0.19.12:
1739 resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} 873 resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
874 engines: {node: '>=12'}
875 cpu: [x64]
876 os: [linux]
877 requiresBuild: true
1740 dev: true 878 dev: true
879 optional: true
1741 880
1742 /@babel/runtime@7.23.1: 881 /@esbuild/netbsd-x64@0.19.12:
1743 resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==} 882 resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
1744 engines: {node: '>=6.9.0'} 883 engines: {node: '>=12'}
1745 dependencies: 884 cpu: [x64]
1746 regenerator-runtime: 0.14.0 885 os: [netbsd]
886 requiresBuild: true
1747 dev: true 887 dev: true
888 optional: true
1748 889
1749 /@babel/template@7.22.15: 890 /@esbuild/openbsd-x64@0.19.12:
1750 resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 891 resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
1751 engines: {node: '>=6.9.0'} 892 engines: {node: '>=12'}
1752 dependencies: 893 cpu: [x64]
1753 '@babel/code-frame': 7.22.13 894 os: [openbsd]
1754 '@babel/parser': 7.23.0 895 requiresBuild: true
1755 '@babel/types': 7.23.0
1756 dev: true 896 dev: true
897 optional: true
1757 898
1758 /@babel/traverse@7.23.0: 899 /@esbuild/sunos-x64@0.19.12:
1759 resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} 900 resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
1760 engines: {node: '>=6.9.0'} 901 engines: {node: '>=12'}
1761 dependencies: 902 cpu: [x64]
1762 '@babel/code-frame': 7.22.13 903 os: [sunos]
1763 '@babel/generator': 7.23.0 904 requiresBuild: true
1764 '@babel/helper-environment-visitor': 7.22.20
1765 '@babel/helper-function-name': 7.23.0
1766 '@babel/helper-hoist-variables': 7.22.5
1767 '@babel/helper-split-export-declaration': 7.22.6
1768 '@babel/parser': 7.23.0
1769 '@babel/types': 7.23.0
1770 debug: 4.3.4
1771 globals: 11.12.0
1772 transitivePeerDependencies:
1773 - supports-color
1774 dev: true 905 dev: true
906 optional: true
1775 907
1776 /@babel/types@7.23.0: 908 /@esbuild/win32-arm64@0.19.12:
1777 resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} 909 resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
1778 engines: {node: '>=6.9.0'} 910 engines: {node: '>=12'}
1779 dependencies: 911 cpu: [arm64]
1780 '@babel/helper-string-parser': 7.22.5 912 os: [win32]
1781 '@babel/helper-validator-identifier': 7.22.20 913 requiresBuild: true
1782 to-fast-properties: 2.0.0
1783 dev: true 914 dev: true
915 optional: true
1784 916
1785 /@colors/colors@1.5.0: 917 /@esbuild/win32-ia32@0.19.12:
1786 resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} 918 resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
1787 engines: {node: '>=0.1.90'} 919 engines: {node: '>=12'}
920 cpu: [ia32]
921 os: [win32]
1788 requiresBuild: true 922 requiresBuild: true
923 dev: true
1789 optional: true 924 optional: true
1790 925
1791 /@discoveryjs/json-ext@0.5.7: 926 /@esbuild/win32-x64@0.19.12:
1792 resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} 927 resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
1793 engines: {node: '>=10.0.0'} 928 engines: {node: '>=12'}
929 cpu: [x64]
930 os: [win32]
931 requiresBuild: true
1794 dev: true 932 dev: true
933 optional: true
1795 934
1796 /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): 935 /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
1797 resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 936 resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
1798 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 937 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1799 peerDependencies: 938 peerDependencies:
1800 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 939 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
1801 dependencies: 940 dependencies:
1802 eslint: 8.46.0 941 eslint: 8.56.0
1803 eslint-visitor-keys: 3.4.3 942 eslint-visitor-keys: 3.4.3
1804 dev: true 943 dev: true
1805 944
1806 /@eslint-community/regexpp@4.9.0: 945 /@eslint-community/regexpp@4.10.0:
1807 resolution: {integrity: sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==} 946 resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
1808 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 947 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
1809 dev: true 948 dev: true
1810 949
1811 /@eslint/eslintrc@2.1.2: 950 /@eslint/eslintrc@2.1.4:
1812 resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} 951 resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
1813 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 952 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1814 dependencies: 953 dependencies:
1815 ajv: 6.12.6 954 ajv: 6.12.6
1816 debug: 4.3.4 955 debug: 4.3.4
1817 espree: 9.6.1 956 espree: 9.6.1
1818 globals: 13.22.0 957 globals: 13.22.0
1819 ignore: 5.2.4 958 ignore: 5.3.1
1820 import-fresh: 3.3.0 959 import-fresh: 3.3.0
1821 js-yaml: 4.1.0 960 js-yaml: 4.1.0
1822 minimatch: 3.1.2 961 minimatch: 3.1.2
@@ -1825,13 +964,13 @@ packages:
1825 - supports-color 964 - supports-color
1826 dev: true 965 dev: true
1827 966
1828 /@eslint/js@8.50.0: 967 /@eslint/js@8.56.0:
1829 resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} 968 resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
1830 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 969 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1831 dev: true 970 dev: true
1832 971
1833 /@faker-js/faker@8.1.0: 972 /@faker-js/faker@8.4.0:
1834 resolution: {integrity: sha512-38DT60rumHfBYynif3lmtxMqMqmsOQIxQgEuPZxCk2yUYN0eqWpTACgxi0VpidvsJB8CRxCpvP7B3anK85FjtQ==} 973 resolution: {integrity: sha512-htW87352wzUCdX1jyUQocUcmAaFqcR/w082EC8iP/gtkF0K+aKcBp0hR5Arb7dzR8tQ1TrhE9DNa5EbJELm84w==}
1835 engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} 974 engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'}
1836 dev: false 975 dev: false
1837 976
@@ -1841,11 +980,11 @@ packages:
1841 dev: false 980 dev: false
1842 optional: true 981 optional: true
1843 982
1844 /@humanwhocodes/config-array@0.11.11: 983 /@humanwhocodes/config-array@0.11.14:
1845 resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} 984 resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
1846 engines: {node: '>=10.10.0'} 985 engines: {node: '>=10.10.0'}
1847 dependencies: 986 dependencies:
1848 '@humanwhocodes/object-schema': 1.2.1 987 '@humanwhocodes/object-schema': 2.0.2
1849 debug: 4.3.4 988 debug: 4.3.4
1850 minimatch: 3.1.2 989 minimatch: 3.1.2
1851 transitivePeerDependencies: 990 transitivePeerDependencies:
@@ -1857,194 +996,91 @@ packages:
1857 engines: {node: '>=12.22'} 996 engines: {node: '>=12.22'}
1858 dev: true 997 dev: true
1859 998
1860 /@humanwhocodes/object-schema@1.2.1: 999 /@humanwhocodes/object-schema@2.0.2:
1861 resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 1000 resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
1862 dev: true 1001 dev: true
1863 1002
1864 /@japa/api-client@1.4.4(@japa/runner@2.5.1): 1003 /@japa/core@9.0.0:
1865 resolution: {integrity: sha512-7YVDWMWDvUGRlAxOS2QmYTyfxsY+EC0fiVz/w7J4qIT2oYhl1TVfJ/R1WWRoLe/KuZr2yIUNlp7OdStVjESB5A==} 1004 resolution: {integrity: sha512-BQiS8rd1qiSkz+uTsx+Bfsp+FVeoKpJXMtUse4XDt2cUfDdCnvYkvRnqmR/F/u8ttt71sZ4mHKizGa1Q5MG3DQ==}
1866 peerDependencies: 1005 engines: {node: '>=18.16.0'}
1867 '@japa/runner': ^2.2.3
1868 dependencies: 1006 dependencies:
1869 '@japa/runner': 2.5.1 1007 '@poppinss/cliui': 6.3.0
1870 '@poppinss/hooks': 6.0.2-0 1008 '@poppinss/hooks': 7.2.2
1871 '@types/superagent': 4.1.19 1009 '@poppinss/macroable': 1.0.1
1872 cookie: 0.5.0
1873 macroable: 7.0.2
1874 set-cookie-parser: 2.6.0
1875 superagent: 8.1.2
1876 transitivePeerDependencies:
1877 - supports-color
1878 dev: true
1879
1880 /@japa/assert@1.4.1(@japa/runner@2.5.1)(openapi-types@12.1.3):
1881 resolution: {integrity: sha512-IyacnyaGzHqKTUbnOproPluHGWybt0ix0UsISAnjK62aTlDS4pOYPXkCDexk21/iReXNLtFgKM/RrDPDAUfrqA==}
1882 peerDependencies:
1883 '@japa/runner': ^2.1.1
1884 dependencies:
1885 '@japa/runner': 2.5.1
1886 '@types/chai': 4.3.6
1887 api-contract-validator: 2.2.8(openapi-types@12.1.3)
1888 chai: 4.3.10
1889 macroable: 7.0.2
1890 transitivePeerDependencies:
1891 - openapi-types
1892 dev: true
1893
1894 /@japa/base-reporter@1.1.2:
1895 resolution: {integrity: sha512-6MYs/EsXjouFPNUQL3VGllryZ5enI5rqhvQbY2Dzh3Zmhu22DWw6v9d2pxucrFptDTtQ38MBPVL/BIeZAafmOw==}
1896 dependencies:
1897 '@japa/errors-printer': 2.1.0
1898 '@poppinss/cliui': 3.0.5
1899 ms: 2.1.3
1900 dev: true
1901
1902 /@japa/core@7.3.3:
1903 resolution: {integrity: sha512-3mkWlzWVALZANFfMK6Q6xtYGM3mpzZeeGGUVQGDt2OOxvL8FDADVxHrRn9BFc1V4fVJO4jR/QH5utrb+RfCF5g==}
1904 dependencies:
1905 '@poppinss/hooks': 6.0.2-0
1906 async-retry: 1.3.3 1010 async-retry: 1.3.3
1907 emittery: 0.13.1 1011 emittery: 1.0.2
1908 macroable: 7.0.2 1012 string-width: 7.1.0
1909 time-span: 4.0.0 1013 time-span: 5.1.0
1910 dev: true
1911 1014
1912 /@japa/errors-printer@2.1.0: 1015 /@japa/errors-printer@3.0.2:
1913 resolution: {integrity: sha512-iZUrB58e29jbRxb7lxocz5uHt9mQ1q7iojs8Gh1kIKmvaPx0KMqce77JDtqYzu2+95WjmppAvM6au1l1WYJmpw==} 1016 resolution: {integrity: sha512-8U4d8umhyg3YNAzQaJoHSULjFdEp/c+xGBwZgpMgIIYvhy3NKU0KvE3TfVAjfKcO8zaLuvh72NlnLSfyP3ooqw==}
1017 engines: {node: '>=18.16.0'}
1914 dependencies: 1018 dependencies:
1915 '@poppinss/cliui': 3.0.5 1019 '@poppinss/colors': 4.1.2
1916 jest-diff: 29.7.0 1020 jest-diff: 29.7.0
1917 youch: 3.2.3 1021 youch: 3.3.3
1918 youch-terminal: 2.2.2 1022 youch-terminal: 2.2.3
1919 dev: true 1023
1920 1024 /@japa/plugin-adonisjs@3.0.0(@adonisjs/core@6.2.3)(@japa/runner@3.1.1):
1921 /@japa/preset-adonis@1.2.0(@adonisjs/core@5.9.0)(@japa/runner@2.5.1)(openapi-types@12.1.3): 1025 resolution: {integrity: sha512-gw92tnOlNeVuZoI/ysX/AW9AZdACd5cm50Jpa+dUPQ7VJU7J7PQCNGhp3FF98h7czdGvw8KJvszr/grr3SENEA==}
1922 resolution: {integrity: sha512-jcvQCN9U5WA4kdKDtYuV6DZMzrZomxho3MASS6yhnJsSqSW6jgFDNwhOgSzY7AyPgxmVAf3jZ6JKd7r2USctlA==} 1026 engines: {node: '>=18.16.0'}
1923 peerDependencies: 1027 peerDependencies:
1924 '@adonisjs/core': ^5.0.0 1028 '@adonisjs/core': ^6.2.0
1925 '@japa/runner': ^2.0.0 1029 '@japa/api-client': ^2.0.2
1926 dependencies: 1030 '@japa/browser-client': ^2.0.2
1927 '@adonisjs/core': 5.9.0 1031 '@japa/runner': ^3.1.1
1928 '@japa/api-client': 1.4.4(@japa/runner@2.5.1) 1032 playwright: ^1.40.1
1929 '@japa/assert': 1.4.1(@japa/runner@2.5.1)(openapi-types@12.1.3) 1033 peerDependenciesMeta:
1930 '@japa/run-failed-tests': 1.1.1(@japa/runner@2.5.1) 1034 '@japa/api-client':
1931 '@japa/runner': 2.5.1 1035 optional: true
1932 '@japa/spec-reporter': 1.3.3 1036 '@japa/browser-client':
1933 transitivePeerDependencies: 1037 optional: true
1934 - openapi-types 1038 playwright:
1935 - supports-color 1039 optional: true
1936 dev: true
1937
1938 /@japa/run-failed-tests@1.1.1(@japa/runner@2.5.1):
1939 resolution: {integrity: sha512-lMv1nAtKBpX7CH8K+HHRr2aaCTAJ9Q3i7DG12MmU2A/EDJFuP7e9ZASE8O0UTlk5Goc+DR6mzuFXG3R351J89w==}
1940 peerDependencies:
1941 '@japa/runner': ^2.2.3
1942 dependencies: 1040 dependencies:
1943 '@japa/runner': 2.5.1 1041 '@adonisjs/core': 6.2.3(@adonisjs/assembler@7.1.1)(bcrypt@5.1.1)(edge.js@6.0.1)
1944 '@poppinss/cliui': 3.0.5 1042 '@japa/runner': 3.1.1
1945 find-cache-dir: 3.3.2
1946 fs-extra: 11.1.1
1947 dev: true
1948 1043
1949 /@japa/runner@2.5.1: 1044 /@japa/runner@3.1.1:
1950 resolution: {integrity: sha512-p1zjniMCiGxRnZkUs5WtZjTQhbXcnK0aM2Wu4Qc+w+MBpmOrw5J2zJuge0FweepTUR9CT3r2x65uw4qIshy8XQ==} 1045 resolution: {integrity: sha512-DWy16uw2naDMitXGNN0ULURLaVIQY/VBVtxw7rpdA8QL1Q2nCaaqJXufHqS8kO1ZRd0bOtFHMgx2/eYvxkmapA==}
1046 engines: {node: '>=18.16.0'}
1951 dependencies: 1047 dependencies:
1952 '@japa/core': 7.3.3 1048 '@japa/core': 9.0.0
1953 '@japa/errors-printer': 2.1.0 1049 '@japa/errors-printer': 3.0.2
1954 '@poppinss/cliui': 3.0.5 1050 '@poppinss/colors': 4.1.2
1955 '@poppinss/hooks': 6.0.2-0 1051 '@poppinss/hooks': 7.2.2
1956 fast-glob: 3.3.1 1052 fast-glob: 3.3.2
1053 find-cache-dir: 5.0.0
1957 getopts: 2.3.0 1054 getopts: 2.3.0
1958 inclusion: 1.0.1
1959 dev: true
1960
1961 /@japa/spec-reporter@1.3.3:
1962 resolution: {integrity: sha512-EOOjvQVmmWZDKxmO+f0v/BSNeKzKkeJSrNwEldkF40zZWdHX2J3Jb2MJowE5DgSOQCiG/OG2UFen0I+XLnPoxQ==}
1963 dependencies:
1964 '@japa/base-reporter': 1.1.2
1965 '@japa/errors-printer': 2.1.0
1966 '@poppinss/cliui': 3.0.5
1967 ms: 2.1.3 1055 ms: 2.1.3
1968 dev: true 1056 serialize-error: 11.0.3
1057 slash: 5.1.0
1969 1058
1970 /@jest/schemas@29.6.3: 1059 /@jest/schemas@29.6.3:
1971 resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 1060 resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
1972 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1061 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1973 dependencies: 1062 dependencies:
1974 '@sinclair/typebox': 0.27.8 1063 '@sinclair/typebox': 0.27.8
1975 dev: true
1976
1977 /@jest/types@25.5.0:
1978 resolution: {integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==}
1979 engines: {node: '>= 8.3'}
1980 dependencies:
1981 '@types/istanbul-lib-coverage': 2.0.4
1982 '@types/istanbul-reports': 1.1.2
1983 '@types/yargs': 15.0.16
1984 chalk: 3.0.0
1985 dev: true
1986
1987 /@jest/types@29.6.3:
1988 resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
1989 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1990 dependencies:
1991 '@jest/schemas': 29.6.3
1992 '@types/istanbul-lib-coverage': 2.0.4
1993 '@types/istanbul-reports': 3.0.2
1994 '@types/node': 20.7.2
1995 '@types/yargs': 17.0.26
1996 chalk: 4.1.2
1997 dev: true
1998
1999 /@jridgewell/gen-mapping@0.3.3:
2000 resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
2001 engines: {node: '>=6.0.0'}
2002 dependencies:
2003 '@jridgewell/set-array': 1.1.2
2004 '@jridgewell/sourcemap-codec': 1.4.15
2005 '@jridgewell/trace-mapping': 0.3.19
2006 dev: true
2007 1064
2008 /@jridgewell/resolve-uri@3.1.1: 1065 /@jridgewell/resolve-uri@3.1.1:
2009 resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 1066 resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
2010 engines: {node: '>=6.0.0'} 1067 engines: {node: '>=6.0.0'}
2011 dev: true 1068 dev: true
2012 1069
2013 /@jridgewell/set-array@1.1.2:
2014 resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
2015 engines: {node: '>=6.0.0'}
2016 dev: true
2017
2018 /@jridgewell/source-map@0.3.5:
2019 resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
2020 dependencies:
2021 '@jridgewell/gen-mapping': 0.3.3
2022 '@jridgewell/trace-mapping': 0.3.19
2023 dev: true
2024
2025 /@jridgewell/sourcemap-codec@1.4.15: 1070 /@jridgewell/sourcemap-codec@1.4.15:
2026 resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 1071 resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
2027 dev: true 1072 dev: true
2028 1073
2029 /@jridgewell/trace-mapping@0.3.19: 1074 /@jridgewell/trace-mapping@0.3.9:
2030 resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} 1075 resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
2031 dependencies: 1076 dependencies:
2032 '@jridgewell/resolve-uri': 3.1.1 1077 '@jridgewell/resolve-uri': 3.1.1
2033 '@jridgewell/sourcemap-codec': 1.4.15 1078 '@jridgewell/sourcemap-codec': 1.4.15
2034 dev: true 1079 dev: true
2035 1080
2036 /@jsdevtools/ono@7.1.3: 1081 /@lukeed/ms@2.0.2:
2037 resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} 1082 resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==}
2038 dev: true 1083 engines: {node: '>=8'}
2039
2040 /@kdf/salt@2.0.1:
2041 resolution: {integrity: sha512-1RBY7HcGYuWBm0+4ygjdRerN+mhpuT5picGB6+azqUXsz/IZljegrKkeHRiV6wuxY8n4HrxOuw8ou7JuGxRWdQ==}
2042 engines: {node: '>=10'}
2043 dev: false
2044
2045 /@leichtgewicht/ip-codec@2.0.4:
2046 resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
2047 dev: true
2048 1084
2049 /@mapbox/node-pre-gyp@1.0.11: 1085 /@mapbox/node-pre-gyp@1.0.11:
2050 resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} 1086 resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
@@ -2057,20 +1093,15 @@ packages:
2057 nopt: 5.0.0 1093 nopt: 5.0.0
2058 npmlog: 5.0.1 1094 npmlog: 5.0.1
2059 rimraf: 3.0.2 1095 rimraf: 3.0.2
2060 semver: 7.5.4 1096 semver: 7.6.0
2061 tar: 6.2.0 1097 tar: 6.2.0
2062 transitivePeerDependencies: 1098 transitivePeerDependencies:
2063 - encoding 1099 - encoding
2064 - supports-color 1100 - supports-color
2065 dev: false
2066 1101
2067 /@mrmlnc/readdir-enhanced@2.2.1: 1102 /@noble/hashes@1.3.3:
2068 resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} 1103 resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==}
2069 engines: {node: '>=4'} 1104 engines: {node: '>= 16'}
2070 dependencies:
2071 call-me-maybe: 1.0.2
2072 glob-to-regexp: 0.3.0
2073 dev: true
2074 1105
2075 /@nodelib/fs.scandir@2.1.5: 1106 /@nodelib/fs.scandir@2.1.5:
2076 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 1107 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
@@ -2079,11 +1110,6 @@ packages:
2079 '@nodelib/fs.stat': 2.0.5 1110 '@nodelib/fs.stat': 2.0.5
2080 run-parallel: 1.2.0 1111 run-parallel: 1.2.0
2081 1112
2082 /@nodelib/fs.stat@1.1.3:
2083 resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==}
2084 engines: {node: '>= 6'}
2085 dev: true
2086
2087 /@nodelib/fs.stat@2.0.5: 1113 /@nodelib/fs.stat@2.0.5:
2088 resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 1114 resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
2089 engines: {node: '>= 8'} 1115 engines: {node: '>= 8'}
@@ -2093,14 +1119,14 @@ packages:
2093 engines: {node: '>= 8'} 1119 engines: {node: '>= 8'}
2094 dependencies: 1120 dependencies:
2095 '@nodelib/fs.scandir': 2.1.5 1121 '@nodelib/fs.scandir': 2.1.5
2096 fastq: 1.15.0 1122 fastq: 1.17.1
2097 1123
2098 /@npmcli/fs@1.1.1: 1124 /@npmcli/fs@1.1.1:
2099 resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} 1125 resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
2100 requiresBuild: true 1126 requiresBuild: true
2101 dependencies: 1127 dependencies:
2102 '@gar/promisify': 1.1.3 1128 '@gar/promisify': 1.1.3
2103 semver: 7.5.4 1129 semver: 7.6.0
2104 dev: false 1130 dev: false
2105 optional: true 1131 optional: true
2106 1132
@@ -2115,107 +1141,74 @@ packages:
2115 dev: false 1141 dev: false
2116 optional: true 1142 optional: true
2117 1143
2118 /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.88.2): 1144 /@paralleldrive/cuid2@2.2.2:
2119 resolution: {integrity: sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==} 1145 resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==}
2120 engines: {node: '>=8.0.0', npm: '>=5.0.0'}
2121 peerDependencies:
2122 webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
2123 dependencies: 1146 dependencies:
2124 chalk: 2.4.2 1147 '@noble/hashes': 1.3.3
2125 consola: 2.15.3
2126 error-stack-parser: 2.1.4
2127 string-width: 4.2.3
2128 webpack: 5.88.2(webpack-cli@5.1.4)
2129 dev: true
2130 1148
2131 /@phc/format@1.0.0: 1149 /@phc/format@1.0.0:
2132 resolution: {integrity: sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==} 1150 resolution: {integrity: sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==}
2133 engines: {node: '>=10'} 1151 engines: {node: '>=10'}
2134 1152
2135 /@pkgr/utils@2.4.2: 1153 /@pkgr/core@0.1.1:
2136 resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} 1154 resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
2137 engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 1155 engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
2138 dependencies:
2139 cross-spawn: 7.0.3
2140 fast-glob: 3.3.1
2141 is-glob: 4.0.3
2142 open: 9.1.0
2143 picocolors: 1.0.0
2144 tslib: 2.6.2
2145 dev: true 1156 dev: true
2146 1157
2147 /@poppinss/chokidar-ts@3.3.5: 1158 /@poppinss/chokidar-ts@4.1.3(typescript@5.3.3):
2148 resolution: {integrity: sha512-Ht//xB2ZPa16EDH/bmaWEBWunsBTnBYdnv3nKwXHrqNHDfcYX1DHcJmcNORRH9YLOOuVsTmqDcpiAdTn06LaHQ==} 1159 resolution: {integrity: sha512-v5Tx0mxt1fX6+acYKm1ZUhFMlGdcKgO1C8wSPRO/X44LjE0PduHGDDq6ePBrMDyg+EKnUUt3DcU9APRri7zEcA==}
1160 engines: {node: '>=18.16.0'}
1161 peerDependencies:
1162 typescript: ^4.0.0 || ^5.0.0
2149 dependencies: 1163 dependencies:
2150 builtin-modules: 3.3.0
2151 chokidar: 3.5.3 1164 chokidar: 3.5.3
2152 debug: 4.3.4 1165 emittery: 1.0.2
2153 emittery: 0.10.2 1166 memoize: 10.0.0
2154 fs-extra: 10.1.0 1167 picomatch: 3.0.1
2155 mem: 8.1.1 1168 slash: 5.1.0
2156 picomatch: 2.3.1 1169 typescript: 5.3.3
2157 transitivePeerDependencies:
2158 - supports-color
2159 dev: true
2160 1170
2161 /@poppinss/cliui@3.0.5: 1171 /@poppinss/cliui@6.3.0:
2162 resolution: {integrity: sha512-9TCwhJ6hQDAv7LWredEQL7eSA97kQ/i5Td80T7InV9z9rOXT8keywAM0pSvTUS01bwCeiZQVoT4r/G67DRiPJA==} 1172 resolution: {integrity: sha512-GEu/IsJ9SanzAGa9NaHsHneumwlScLfhBJHU8uYcB6GyaTvQQg38OuiGnn5U95Wk3a/roUOSsrEVU1bnVvYtoQ==}
1173 engines: {node: '>=18.16.0'}
2163 dependencies: 1174 dependencies:
2164 '@poppinss/colors': 3.0.3 1175 '@poppinss/colors': 4.1.2
2165 cli-boxes: 3.0.0 1176 cli-boxes: 3.0.0
2166 cli-table3: 0.6.3 1177 cli-table3: 0.6.3
2167 color-support: 1.1.3 1178 cli-truncate: 4.0.0
2168 log-update: 4.0.0 1179 log-update: 6.0.0
2169 pretty-hrtime: 1.0.3 1180 pretty-hrtime: 1.0.3
2170 string-width: 4.2.3 1181 string-width: 7.1.0
2171 1182 supports-color: 9.4.0
2172 /@poppinss/co-body@1.2.0: 1183 terminal-size: 4.0.0
2173 resolution: {integrity: sha512-1aJ06XrtQ8gueo91+Vc7TTSeXECsW1pWDCKumtuGL+9xsjJvP6n567YuimwHuH99wFMIhyNW5U1g2C/4wjvXCQ==} 1184 wordwrap: 1.0.0
2174 dependencies:
2175 '@poppinss/utils': 5.0.0
2176 inflation: 2.0.0
2177 qs: 6.11.2
2178 raw-body: 2.5.2
2179 type-is: 1.6.18
2180 1185
2181 /@poppinss/colors@3.0.3: 1186 /@poppinss/colors@4.1.2:
2182 resolution: {integrity: sha512-jiZcp91PvIs5s4Wz4gEVY9J2tqH6H1++mZmsrC3TmFam9gbVPUJPEubPM5j4BQYJre7bjs9nkIbYFcWMOFHIVQ==} 1187 resolution: {integrity: sha512-+qLfhQrdLa7RqJNZmGIc1ERVz2JtMD3kLI41tNfKhQBZt0wiWoYMhP/Tv+eopPnMy3NwANWgDSbqsi+teY1oig==}
1188 engines: {node: '>=18.16.0'}
2183 dependencies: 1189 dependencies:
2184 color-support: 1.1.3
2185 kleur: 4.1.5 1190 kleur: 4.1.5
2186 1191
2187 /@poppinss/file-generator@1.0.2: 1192 /@poppinss/hooks@7.2.2:
2188 resolution: {integrity: sha512-rRob//4jLbUVbDSsNRihloKGgpyVsWdFQWUmONxX/gyv4koT1OlVoc3ccWgk7Y/sEa2cFxj3zrFs+wdT09iXWw==} 1193 resolution: {integrity: sha512-EDivPMt9sAUV5kNhH2bvtVjuLvHhQ6SKVP19OjvvcyRalqAa6KqCItJ2qeU8A93s0cr1a28Sytu+KSwsmOY8pg==}
2189 dependencies: 1194 engines: {node: '>=18.16.0'}
2190 bytes: 3.1.2
2191
2192 /@poppinss/hooks@5.0.3(@adonisjs/application@5.3.0):
2193 resolution: {integrity: sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==}
2194 peerDependencies:
2195 '@adonisjs/application': '>=4.0.0'
2196 peerDependenciesMeta:
2197 '@adonisjs/application':
2198 optional: true
2199 dependencies:
2200 '@adonisjs/application': 5.3.0
2201 dev: false
2202
2203 /@poppinss/hooks@6.0.2-0:
2204 resolution: {integrity: sha512-mG0hnQlxgflvxyM6t/XO8z/FwotsYRXPhtLZ3cz3iyk4t8xaNtOihSANBcvqdkxZCtGBvotNIf/GnES9hvlfSQ==}
2205 dev: true
2206 1195
2207 /@poppinss/inspect@1.0.1: 1196 /@poppinss/inspect@1.0.1:
2208 resolution: {integrity: sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==} 1197 resolution: {integrity: sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==}
2209 dev: false
2210 1198
2211 /@poppinss/manager@5.0.2: 1199 /@poppinss/macroable@1.0.1:
2212 resolution: {integrity: sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==} 1200 resolution: {integrity: sha512-bO3+rnqGhE+gdx4DOyYjY9jCm2+c5Ncyl2Gmst0w271rIFnsB00btonpdmAqvFNzS8rcas+APGm+47fYMmkpQA==}
1201 engines: {node: '>=18.16.0'}
2213 1202
2214 /@poppinss/matchit@3.1.2: 1203 /@poppinss/matchit@3.1.2:
2215 resolution: {integrity: sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==} 1204 resolution: {integrity: sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==}
2216 dependencies: 1205 dependencies:
2217 '@arr/every': 1.0.1 1206 '@arr/every': 1.0.1
2218 1207
1208 /@poppinss/middleware@3.2.2:
1209 resolution: {integrity: sha512-73AJXODpZcfpO3b9Fr4SQNksXtATpUpCAnKgIUVDfZqAsS1gzLGhDfYo/Qi44hH29P8q28MXqmaoYY2oTpdZFQ==}
1210 engines: {node: '>=18.16.0'}
1211
2219 /@poppinss/multiparty@2.0.1: 1212 /@poppinss/multiparty@2.0.1:
2220 resolution: {integrity: sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==} 1213 resolution: {integrity: sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==}
2221 dependencies: 1214 dependencies:
@@ -2223,612 +1216,430 @@ packages:
2223 safe-buffer: 5.2.1 1216 safe-buffer: 5.2.1
2224 uid-safe: 2.1.5 1217 uid-safe: 2.1.5
2225 1218
2226 /@poppinss/prompts@2.0.2: 1219 /@poppinss/prompts@3.1.2:
2227 resolution: {integrity: sha512-jTrE8U5rnHTZNpBvPauFVDMQZZuEnfABbJUEXfq0uu8oGJnPaaA+y0bQbyqVf4yWqgRGldgrzAwNz739hIEnPQ==} 1220 resolution: {integrity: sha512-wjAWTZkZz2kH5dVGbEPx9IRxJcIy6Nzn614TdGsn2kzeMI5woPaKWKxrLEQfK/teIxUrOVUmbjcorDohBkIjiw==}
1221 engines: {node: '>=18.16.0'}
2228 dependencies: 1222 dependencies:
2229 '@poppinss/colors': 3.0.3 1223 '@poppinss/colors': 4.1.2
1224 '@poppinss/utils': 6.7.2
2230 enquirer: 2.4.1 1225 enquirer: 2.4.1
2231 1226
2232 /@poppinss/utils@3.3.1: 1227 /@poppinss/utils@6.7.2:
2233 resolution: {integrity: sha512-k4MFt+4JhOWJZ9D2xpEcG/mpZyXVXYT+dSOg83vHK1xhXl+7r0IYBXRKWX2+To7/90KJaWlwpcdCAalXE8Debg==} 1228 resolution: {integrity: sha512-C7K0gy7nW0XzlWcuVrSqT1nLQBAddhpgbnvHtYtxFYkS/BdJKzeVz771c80yhLcmrqXoGqZZgjdC7y6Me1L4Tg==}
1229 engines: {node: '>=18.16.0'}
2234 dependencies: 1230 dependencies:
2235 '@types/bytes': 3.1.2 1231 '@lukeed/ms': 2.0.2
2236 '@types/he': 1.2.1 1232 '@types/bytes': 3.1.4
2237 buffer-alloc: 1.2.0 1233 '@types/pluralize': 0.0.33
2238 bytes: 3.1.2 1234 bytes: 3.1.2
2239 change-case: 4.1.2 1235 case-anything: 2.1.13
2240 cuid: 2.1.8
2241 flattie: 1.1.0 1236 flattie: 1.1.0
2242 fs-readdir-recursive: 1.1.0
2243 he: 1.2.0
2244 kind-of: 6.0.3
2245 lodash: 4.17.21
2246 ms: 2.1.3
2247 pluralize: 8.0.0 1237 pluralize: 8.0.0
2248 require-all: 3.0.0 1238 safe-stable-stringify: 2.4.3
2249 resolve-from: 5.0.0 1239 secure-json-parse: 2.7.0
2250 slugify: 1.6.6 1240 slash: 5.1.0
2251 truncatise: 0.0.8
2252 dev: false
2253
2254 /@poppinss/utils@4.0.4:
2255 resolution: {integrity: sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==}
2256 dependencies:
2257 '@poppinss/file-generator': 1.0.2
2258 '@types/bytes': 3.1.2
2259 '@types/he': 1.2.1
2260 bytes: 3.1.2
2261 change-case: 4.1.2
2262 cuid: 2.1.8
2263 flattie: 1.1.0
2264 fs-readdir-recursive: 1.1.0
2265 he: 1.2.0
2266 kind-of: 6.0.3
2267 lodash: 4.17.21
2268 ms: 2.1.3
2269 pluralize: 8.0.0
2270 require-all: 3.0.0
2271 resolve-from: 5.0.0
2272 slugify: 1.6.6 1241 slugify: 1.6.6
2273 truncatise: 0.0.8 1242 truncatise: 0.0.8
2274 1243
2275 /@poppinss/utils@5.0.0: 1244 /@poppinss/validator-lite@1.0.3:
2276 resolution: {integrity: sha512-SpJL5p4Nx3bRCpCf62KagZLUHLvJD+VDylGpXAeP2G5qb3s6SSOBlpaFmer4GxdyTqLIUt0PRCzF1TbpNU+qZw==} 1245 resolution: {integrity: sha512-u4dmT7PDHwNtxY3q1jHVp/u+hMEEcBlkzd37QwwM4tVt/0mLlEDttSfPQ+TT7sqPG4VEtWKwVSlMInwPUYyJpA==}
2277 dependencies: 1246 dependencies:
2278 '@poppinss/file-generator': 1.0.2 1247 validator: 13.11.0
2279 '@types/bytes': 3.1.2
2280 '@types/he': 1.2.1
2281 bytes: 3.1.2
2282 change-case: 4.1.2
2283 cuid: 2.1.8
2284 flattie: 1.1.0
2285 fs-readdir-recursive: 1.1.0
2286 he: 1.2.0
2287 kind-of: 6.0.3
2288 lodash: 4.17.21
2289 ms: 2.1.3
2290 pluralize: 8.0.0
2291 require-all: 3.0.0
2292 resolve-from: 5.0.0
2293 slugify: 1.6.6
2294 truncatise: 0.0.8
2295 1248
2296 /@sinclair/typebox@0.27.8: 1249 /@rollup/rollup-android-arm-eabi@4.10.0:
2297 resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 1250 resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==}
1251 cpu: [arm]
1252 os: [android]
1253 requiresBuild: true
2298 dev: true 1254 dev: true
1255 optional: true
2299 1256
2300 /@sindresorhus/is@4.6.0: 1257 /@rollup/rollup-android-arm64@4.10.0:
2301 resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} 1258 resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==}
2302 engines: {node: '>=10'} 1259 cpu: [arm64]
2303 dev: false 1260 os: [android]
2304 1261 requiresBuild: true
2305 /@symfony/webpack-encore@4.4.0(@babel/core@7.23.0)(@babel/preset-env@7.22.20)(eslint@8.46.0)(postcss@8.4.31)(typescript@5.1.6)(webpack-cli@5.1.4)(webpack@5.88.2):
2306 resolution: {integrity: sha512-p3n2Z16sGV6odZ3ihIU+gupYc55KfrfCt62+Gppe8MUo6QuT5Bk2cXXjR4Hb89KvCRDHnjYEWVfnewRsfE8TRQ==}
2307 engines: {node: '>=14.0.0'}
2308 hasBin: true
2309 peerDependencies:
2310 '@babel/core': ^7.17.0
2311 '@babel/plugin-transform-react-jsx': ^7.12.11
2312 '@babel/preset-env': ^7.16.0
2313 '@babel/preset-react': ^7.0.0
2314 '@babel/preset-typescript': ^7.0.0
2315 '@symfony/stimulus-bridge': ^3.0.0
2316 '@vue/babel-helper-vue-jsx-merge-props': ^1.0.0
2317 '@vue/babel-preset-jsx': ^1.0.0
2318 '@vue/compiler-sfc': ^2.6 || ^3.0.2
2319 eslint: ^8.0.0
2320 eslint-webpack-plugin: ^3.1.0 || ^4.0.0
2321 file-loader: ^6.0.0
2322 fork-ts-checker-webpack-plugin: ^7.0.0
2323 handlebars: ^4.7.7
2324 handlebars-loader: ^1.7.0
2325 less: ^4.0.0
2326 less-loader: ^11.0.0
2327 postcss: ^8.3.0
2328 postcss-loader: ^7.0.0
2329 sass: ^1.17.0
2330 sass-loader: ^13.0.0
2331 stylus: ^0.58.1
2332 stylus-loader: ^7.0.0
2333 ts-loader: ^9.0.0
2334 typescript: ^4.2.2 || ^5.0.0
2335 vue: ^2.6 || ^3.2.14
2336 vue-loader: ^15.0.11 || ^17.0.0
2337 vue-template-compiler: ^2.5
2338 webpack: ^5.72
2339 webpack-cli: ^4.9.1 || ^5.0.1
2340 webpack-notifier: ^1.15.0
2341 peerDependenciesMeta:
2342 '@babel/plugin-transform-react-jsx':
2343 optional: true
2344 '@babel/preset-react':
2345 optional: true
2346 '@babel/preset-typescript':
2347 optional: true
2348 '@symfony/stimulus-bridge':
2349 optional: true
2350 '@vue/babel-helper-vue-jsx-merge-props':
2351 optional: true
2352 '@vue/babel-preset-jsx':
2353 optional: true
2354 '@vue/compiler-sfc':
2355 optional: true
2356 eslint:
2357 optional: true
2358 eslint-webpack-plugin:
2359 optional: true
2360 file-loader:
2361 optional: true
2362 fork-ts-checker-webpack-plugin:
2363 optional: true
2364 handlebars:
2365 optional: true
2366 handlebars-loader:
2367 optional: true
2368 less:
2369 optional: true
2370 less-loader:
2371 optional: true
2372 postcss:
2373 optional: true
2374 postcss-loader:
2375 optional: true
2376 sass:
2377 optional: true
2378 sass-loader:
2379 optional: true
2380 stylus:
2381 optional: true
2382 stylus-loader:
2383 optional: true
2384 ts-loader:
2385 optional: true
2386 typescript:
2387 optional: true
2388 vue:
2389 optional: true
2390 vue-loader:
2391 optional: true
2392 vue-template-compiler:
2393 optional: true
2394 webpack-notifier:
2395 optional: true
2396 dependencies:
2397 '@babel/core': 7.23.0
2398 '@babel/preset-env': 7.22.20(@babel/core@7.23.0)
2399 '@nuxt/friendly-errors-webpack-plugin': 2.5.2(webpack@5.88.2)
2400 assets-webpack-plugin: 7.0.0(webpack@5.88.2)
2401 babel-loader: 8.3.0(@babel/core@7.23.0)(webpack@5.88.2)
2402 chalk: 4.1.2
2403 clean-webpack-plugin: 4.0.0(webpack@5.88.2)
2404 css-loader: 6.8.1(webpack@5.88.2)
2405 css-minimizer-webpack-plugin: 5.0.1(webpack@5.88.2)
2406 eslint: 8.46.0
2407 fast-levenshtein: 3.0.0
2408 mini-css-extract-plugin: 2.7.6(webpack@5.88.2)
2409 pkg-up: 3.1.0
2410 postcss: 8.4.31
2411 pretty-error: 4.0.0
2412 resolve-url-loader: 5.0.0
2413 semver: 7.5.4
2414 style-loader: 3.3.3(webpack@5.88.2)
2415 sync-rpc: 1.3.6
2416 tapable: 2.2.1
2417 terser-webpack-plugin: 5.3.9(webpack@5.88.2)
2418 tmp: 0.2.1
2419 typescript: 5.1.6
2420 webpack: 5.88.2(webpack-cli@5.1.4)
2421 webpack-cli: 5.1.4(webpack@5.88.2)
2422 webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.88.2)
2423 yargs-parser: 21.1.1
2424 transitivePeerDependencies:
2425 - '@parcel/css'
2426 - '@swc/core'
2427 - '@swc/css'
2428 - bufferutil
2429 - clean-css
2430 - csso
2431 - debug
2432 - esbuild
2433 - lightningcss
2434 - supports-color
2435 - uglify-js
2436 - utf-8-validate
2437 dev: true 1262 dev: true
1263 optional: true
2438 1264
2439 /@szmarczak/http-timer@4.0.6: 1265 /@rollup/rollup-darwin-arm64@4.10.0:
2440 resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} 1266 resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==}
2441 engines: {node: '>=10'} 1267 cpu: [arm64]
2442 dependencies: 1268 os: [darwin]
2443 defer-to-connect: 2.0.1
2444 dev: false
2445
2446 /@tokenizer/token@0.3.0:
2447 resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
2448
2449 /@tootallnate/once@1.1.2:
2450 resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
2451 engines: {node: '>= 6'}
2452 requiresBuild: true 1269 requiresBuild: true
2453 dev: false 1270 dev: true
2454 optional: true 1271 optional: true
2455 1272
2456 /@trysound/sax@0.2.0: 1273 /@rollup/rollup-darwin-x64@4.10.0:
2457 resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} 1274 resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==}
2458 engines: {node: '>=10.13.0'} 1275 cpu: [x64]
1276 os: [darwin]
1277 requiresBuild: true
2459 dev: true 1278 dev: true
1279 optional: true
2460 1280
2461 /@ts-morph/common@0.17.0: 1281 /@rollup/rollup-linux-arm-gnueabihf@4.10.0:
2462 resolution: {integrity: sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g==} 1282 resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==}
2463 dependencies: 1283 cpu: [arm]
2464 fast-glob: 3.3.1 1284 os: [linux]
2465 minimatch: 5.1.6 1285 requiresBuild: true
2466 mkdirp: 1.0.4
2467 path-browserify: 1.0.1
2468 dev: false
2469
2470 /@types/bcrypt@5.0.0:
2471 resolution: {integrity: sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==}
2472 dependencies:
2473 '@types/node': 20.7.2
2474 dev: true 1286 dev: true
1287 optional: true
2475 1288
2476 /@types/body-parser@1.19.3: 1289 /@rollup/rollup-linux-arm64-gnu@4.10.0:
2477 resolution: {integrity: sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==} 1290 resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==}
2478 dependencies: 1291 cpu: [arm64]
2479 '@types/connect': 3.4.36 1292 os: [linux]
2480 '@types/node': 20.7.2 1293 requiresBuild: true
2481 dev: true 1294 dev: true
1295 optional: true
2482 1296
2483 /@types/bonjour@3.5.11: 1297 /@rollup/rollup-linux-arm64-musl@4.10.0:
2484 resolution: {integrity: sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==} 1298 resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==}
2485 dependencies: 1299 cpu: [arm64]
2486 '@types/node': 20.7.2 1300 os: [linux]
1301 requiresBuild: true
2487 dev: true 1302 dev: true
1303 optional: true
2488 1304
2489 /@types/bytes@3.1.2: 1305 /@rollup/rollup-linux-riscv64-gnu@4.10.0:
2490 resolution: {integrity: sha512-92b6q7CSYBMVZDtMZh5PuKm3LjZwcU7s6H8e9sU20Z1tOrTuXN+Hz3VuP9E8axiQRaCoiEOMN1duqPCEIhamrQ==} 1306 resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==}
2491 1307 cpu: [riscv64]
2492 /@types/cacheable-request@6.0.3: 1308 os: [linux]
2493 resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} 1309 requiresBuild: true
2494 dependencies:
2495 '@types/http-cache-semantics': 4.0.2
2496 '@types/keyv': 3.1.4
2497 '@types/node': 20.7.2
2498 '@types/responselike': 1.0.1
2499 dev: false
2500
2501 /@types/chai@4.3.6:
2502 resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==}
2503 dev: true 1310 dev: true
1311 optional: true
2504 1312
2505 /@types/connect-history-api-fallback@1.5.1: 1313 /@rollup/rollup-linux-x64-gnu@4.10.0:
2506 resolution: {integrity: sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==} 1314 resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==}
2507 dependencies: 1315 cpu: [x64]
2508 '@types/express-serve-static-core': 4.17.37 1316 os: [linux]
2509 '@types/node': 20.7.2 1317 requiresBuild: true
2510 dev: true 1318 dev: true
1319 optional: true
2511 1320
2512 /@types/connect@3.4.36: 1321 /@rollup/rollup-linux-x64-musl@4.10.0:
2513 resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} 1322 resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==}
2514 dependencies: 1323 cpu: [x64]
2515 '@types/node': 20.7.2 1324 os: [linux]
1325 requiresBuild: true
2516 dev: true 1326 dev: true
1327 optional: true
2517 1328
2518 /@types/cookiejar@2.1.2: 1329 /@rollup/rollup-win32-arm64-msvc@4.10.0:
2519 resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} 1330 resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==}
1331 cpu: [arm64]
1332 os: [win32]
1333 requiresBuild: true
2520 dev: true 1334 dev: true
1335 optional: true
2521 1336
2522 /@types/eslint-scope@3.7.5: 1337 /@rollup/rollup-win32-ia32-msvc@4.10.0:
2523 resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==} 1338 resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==}
2524 dependencies: 1339 cpu: [ia32]
2525 '@types/eslint': 8.44.3 1340 os: [win32]
2526 '@types/estree': 1.0.2 1341 requiresBuild: true
2527 dev: true 1342 dev: true
1343 optional: true
2528 1344
2529 /@types/eslint@8.44.3: 1345 /@rollup/rollup-win32-x64-msvc@4.10.0:
2530 resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==} 1346 resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==}
2531 dependencies: 1347 cpu: [x64]
2532 '@types/estree': 1.0.2 1348 os: [win32]
2533 '@types/json-schema': 7.0.13 1349 requiresBuild: true
2534 dev: true 1350 dev: true
1351 optional: true
2535 1352
2536 /@types/estree@1.0.2: 1353 /@sinclair/typebox@0.27.8:
2537 resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} 1354 resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
2538 dev: true
2539 1355
2540 /@types/express-serve-static-core@4.17.37: 1356 /@sindresorhus/is@6.1.0:
2541 resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==} 1357 resolution: {integrity: sha512-BuvU07zq3tQ/2SIgBsEuxKYDyDjC0n7Zir52bpHy2xnBbW81+po43aLFPLbeV3HRAheFbGud1qgcqSYfhtHMAg==}
2542 dependencies: 1358 engines: {node: '>=16'}
2543 '@types/node': 20.7.2
2544 '@types/qs': 6.9.8
2545 '@types/range-parser': 1.2.5
2546 '@types/send': 0.17.2
2547 dev: true
2548 1359
2549 /@types/express@4.17.18: 1360 /@swc/core-darwin-arm64@1.4.0:
2550 resolution: {integrity: sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==} 1361 resolution: {integrity: sha512-UTJ/Vz+s7Pagef6HmufWt6Rs0aUu+EJF4Pzuwvr7JQQ5b1DZeAAUeUtkUTFx/PvCbM8Xfw4XdKBUZfrIKCfW8A==}
2551 dependencies: 1362 engines: {node: '>=10'}
2552 '@types/body-parser': 1.19.3 1363 cpu: [arm64]
2553 '@types/express-serve-static-core': 4.17.37 1364 os: [darwin]
2554 '@types/qs': 6.9.8 1365 requiresBuild: true
2555 '@types/serve-static': 1.15.3
2556 dev: true 1366 dev: true
1367 optional: true
2557 1368
2558 /@types/fs-extra@11.0.1: 1369 /@swc/core-darwin-x64@1.4.0:
2559 resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} 1370 resolution: {integrity: sha512-f8v58u2GsGak8EtZFN9guXqE0Ep10Suny6xriaW2d8FGqESPyNrnBzli3aqkSeQk5gGqu2zJ7WiiKp3XoUOidA==}
2560 dependencies: 1371 engines: {node: '>=10'}
2561 '@types/jsonfile': 6.1.2 1372 cpu: [x64]
2562 '@types/node': 20.7.2 1373 os: [darwin]
1374 requiresBuild: true
2563 dev: true 1375 dev: true
1376 optional: true
2564 1377
2565 /@types/fs-extra@9.0.13: 1378 /@swc/core-linux-arm-gnueabihf@1.4.0:
2566 resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} 1379 resolution: {integrity: sha512-q2KAkBzmPcTnRij/Y1fgHCKAGevUX/H4uUESrw1J5gmUg9Qip6onKV80lTumA1/aooGJ18LOsB31qdbwmZk9OA==}
2567 dependencies: 1380 engines: {node: '>=10'}
2568 '@types/node': 20.7.2 1381 cpu: [arm]
2569 1382 os: [linux]
2570 /@types/glob@7.2.0: 1383 requiresBuild: true
2571 resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
2572 dependencies:
2573 '@types/minimatch': 5.1.2
2574 '@types/node': 20.7.2
2575 dev: true 1384 dev: true
1385 optional: true
2576 1386
2577 /@types/he@1.2.1: 1387 /@swc/core-linux-arm64-gnu@1.4.0:
2578 resolution: {integrity: sha512-CdNmJMcSqX1BiP3iSsWt+VgixndRIDGzWyaGpBnW3i5heATSk5bJu2j3buutsoBQNjyryqxaNpr8M7fRsGL15w==} 1388 resolution: {integrity: sha512-SknGu96W0mzHtLHWm+62fk5+Omp9fMPFO7AWyGFmz2tr8EgRRXtTSrBUnWhAbgcalnhen48GsvtMdxf1KNputg==}
1389 engines: {node: '>=10'}
1390 cpu: [arm64]
1391 os: [linux]
1392 requiresBuild: true
1393 dev: true
1394 optional: true
2579 1395
2580 /@types/http-cache-semantics@4.0.2: 1396 /@swc/core-linux-arm64-musl@1.4.0:
2581 resolution: {integrity: sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==} 1397 resolution: {integrity: sha512-/k3TDvpBRMDNskHooNN1KqwUhcwkfBlIYxRTnJvsfT2C7My4pffR+4KXmt0IKynlTTbCdlU/4jgX4801FSuliw==}
2582 dev: false 1398 engines: {node: '>=10'}
1399 cpu: [arm64]
1400 os: [linux]
1401 requiresBuild: true
1402 dev: true
1403 optional: true
2583 1404
2584 /@types/http-errors@2.0.2: 1405 /@swc/core-linux-x64-gnu@1.4.0:
2585 resolution: {integrity: sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==} 1406 resolution: {integrity: sha512-GYsTMvNt5+WTVlwwQzOOWsPMw6P/F41u5PGHWmfev8Nd4QJ1h3rWPySKk4mV42IJwH9MgQCVSl3ygwNqwl6kFg==}
1407 engines: {node: '>=10'}
1408 cpu: [x64]
1409 os: [linux]
1410 requiresBuild: true
2586 dev: true 1411 dev: true
1412 optional: true
2587 1413
2588 /@types/http-proxy@1.17.12: 1414 /@swc/core-linux-x64-musl@1.4.0:
2589 resolution: {integrity: sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==} 1415 resolution: {integrity: sha512-jGVPdM/VwF7kK/uYRW5N6FwzKf/FnDjGIR3RPvQokjYJy7Auk+3Oj21C0Jev7sIT9RYnO/TrFEoEozKeD/z2Qw==}
2590 dependencies: 1416 engines: {node: '>=10'}
2591 '@types/node': 20.7.2 1417 cpu: [x64]
1418 os: [linux]
1419 requiresBuild: true
2592 dev: true 1420 dev: true
1421 optional: true
2593 1422
2594 /@types/istanbul-lib-coverage@2.0.4: 1423 /@swc/core-win32-arm64-msvc@1.4.0:
2595 resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} 1424 resolution: {integrity: sha512-biHYm1AronEKlt47O/H8sSOBM2BKXMmWT+ApvlxUw50m1RGNnVnE0bgY7tylFuuSiWyXsQPJbmUV708JqORXVg==}
1425 engines: {node: '>=10'}
1426 cpu: [arm64]
1427 os: [win32]
1428 requiresBuild: true
2596 dev: true 1429 dev: true
1430 optional: true
2597 1431
2598 /@types/istanbul-lib-report@3.0.1: 1432 /@swc/core-win32-ia32-msvc@1.4.0:
2599 resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==} 1433 resolution: {integrity: sha512-TL5L2tFQb19kJwv6+elToGBj74QXCn9j+hZfwQatvZEJRA5rDK16eH6oAE751dGUArhnWlW3Vj65hViPvTuycw==}
2600 dependencies: 1434 engines: {node: '>=10'}
2601 '@types/istanbul-lib-coverage': 2.0.4 1435 cpu: [ia32]
1436 os: [win32]
1437 requiresBuild: true
2602 dev: true 1438 dev: true
1439 optional: true
2603 1440
2604 /@types/istanbul-reports@1.1.2: 1441 /@swc/core-win32-x64-msvc@1.4.0:
2605 resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} 1442 resolution: {integrity: sha512-e2xVezU7XZ2Stzn4i7TOQe2Kn84oYdG0M3A7XI7oTdcpsKCcKwgiMoroiAhqCv+iN20KNqhnWwJiUiTj/qN5AA==}
2606 dependencies: 1443 engines: {node: '>=10'}
2607 '@types/istanbul-lib-coverage': 2.0.4 1444 cpu: [x64]
2608 '@types/istanbul-lib-report': 3.0.1 1445 os: [win32]
1446 requiresBuild: true
2609 dev: true 1447 dev: true
1448 optional: true
2610 1449
2611 /@types/istanbul-reports@3.0.2: 1450 /@swc/core@1.4.0:
2612 resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==} 1451 resolution: {integrity: sha512-wc5DMI5BJftnK0Fyx9SNJKkA0+BZSJQx8430yutWmsILkHMBD3Yd9GhlMaxasab9RhgKqZp7Ht30hUYO5ZDvQg==}
1452 engines: {node: '>=10'}
1453 requiresBuild: true
1454 peerDependencies:
1455 '@swc/helpers': ^0.5.0
1456 peerDependenciesMeta:
1457 '@swc/helpers':
1458 optional: true
2613 dependencies: 1459 dependencies:
2614 '@types/istanbul-lib-report': 3.0.1 1460 '@swc/counter': 0.1.3
1461 '@swc/types': 0.1.5
1462 optionalDependencies:
1463 '@swc/core-darwin-arm64': 1.4.0
1464 '@swc/core-darwin-x64': 1.4.0
1465 '@swc/core-linux-arm-gnueabihf': 1.4.0
1466 '@swc/core-linux-arm64-gnu': 1.4.0
1467 '@swc/core-linux-arm64-musl': 1.4.0
1468 '@swc/core-linux-x64-gnu': 1.4.0
1469 '@swc/core-linux-x64-musl': 1.4.0
1470 '@swc/core-win32-arm64-msvc': 1.4.0
1471 '@swc/core-win32-ia32-msvc': 1.4.0
1472 '@swc/core-win32-x64-msvc': 1.4.0
2615 dev: true 1473 dev: true
2616 1474
2617 /@types/json-schema@7.0.13: 1475 /@swc/counter@0.1.3:
2618 resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} 1476 resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
2619 dev: true 1477 dev: true
2620 1478
2621 /@types/json5@0.0.29: 1479 /@swc/types@0.1.5:
2622 resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 1480 resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
2623 dev: true 1481 dev: true
2624 1482
2625 /@types/jsonfile@6.1.2: 1483 /@szmarczak/http-timer@5.0.1:
2626 resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==} 1484 resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
1485 engines: {node: '>=14.16'}
2627 dependencies: 1486 dependencies:
2628 '@types/node': 20.7.2 1487 defer-to-connect: 2.0.1
2629 dev: true 1488 dev: false
2630 1489
2631 /@types/keyv@3.1.4: 1490 /@tokenizer/token@0.3.0:
2632 resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} 1491 resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
2633 dependencies: 1492
2634 '@types/node': 20.7.2 1493 /@tootallnate/once@1.1.2:
1494 resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
1495 engines: {node: '>= 6'}
1496 requiresBuild: true
2635 dev: false 1497 dev: false
1498 optional: true
2636 1499
2637 /@types/luxon@3.3.1: 1500 /@ts-morph/common@0.17.0:
2638 resolution: {integrity: sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==} 1501 resolution: {integrity: sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g==}
1502 dependencies:
1503 fast-glob: 3.3.2
1504 minimatch: 5.1.6
1505 mkdirp: 1.0.4
1506 path-browserify: 1.0.1
1507 dev: false
2639 1508
2640 /@types/mime@1.3.3: 1509 /@ts-morph/common@0.22.0:
2641 resolution: {integrity: sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==} 1510 resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==}
2642 dev: true 1511 dependencies:
1512 fast-glob: 3.3.2
1513 minimatch: 9.0.3
1514 mkdirp: 3.0.1
1515 path-browserify: 1.0.1
2643 1516
2644 /@types/mime@3.0.2: 1517 /@tsconfig/node10@1.0.9:
2645 resolution: {integrity: sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ==} 1518 resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
2646 dev: true 1519 dev: true
2647 1520
2648 /@types/minimatch@5.1.2: 1521 /@tsconfig/node12@1.0.11:
2649 resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} 1522 resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
2650 dev: true 1523 dev: true
2651 1524
2652 /@types/node-fetch@2.6.4: 1525 /@tsconfig/node14@1.0.3:
2653 resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} 1526 resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
2654 dependencies:
2655 '@types/node': 20.7.2
2656 form-data: 3.0.1
2657 dev: true 1527 dev: true
2658 1528
2659 /@types/node@20.7.2: 1529 /@tsconfig/node16@1.0.4:
2660 resolution: {integrity: sha512-RcdC3hOBOauLP+r/kRt27NrByYtDjsXyAuSbR87O6xpsvi763WI+5fbSIvYJrXnt9w4RuxhV6eAXfIs7aaf/FQ==} 1530 resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
2661
2662 /@types/normalize-package-data@2.4.2:
2663 resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
2664 dev: true 1531 dev: true
2665 1532
2666 /@types/pino-pretty@5.0.0: 1533 /@types/bcrypt@5.0.2:
2667 resolution: {integrity: sha512-N1uzqSzioqz8R3AkDbSJwcfDWeI3YMPNapSQQhnB2ISU4NYgUIcAh+hYT5ygqBM+klX4htpEhXMmoJv3J7GrdA==} 1534 resolution: {integrity: sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ==}
2668 deprecated: This is a stub types definition. pino-pretty provides its own type definitions, so you do not need this installed.
2669 dependencies:
2670 pino-pretty: 10.2.0
2671
2672 /@types/pino-std-serializers@4.0.0:
2673 resolution: {integrity: sha512-gXfUZx2xIBbFYozGms53fT0nvkacx/+62c8iTxrEqH5PkIGAQvDbXg2774VWOycMPbqn5YJBQ3BMsg4Li3dWbg==}
2674 deprecated: This is a stub types definition. pino-std-serializers provides its own type definitions, so you do not need this installed.
2675 dependencies: 1535 dependencies:
2676 pino-std-serializers: 6.2.2 1536 '@types/node': 20.11.17
1537 dev: true
2677 1538
2678 /@types/pino@6.3.12: 1539 /@types/bytes@3.1.4:
2679 resolution: {integrity: sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==} 1540 resolution: {integrity: sha512-A0uYgOj3zNc4hNjHc5lYUfJQ/HVyBXiUMKdXd7ysclaE6k9oJdavQzODHuwjpUu2/boCP8afjQYi8z/GtvNCWA==}
2680 dependencies:
2681 '@types/node': 20.7.2
2682 '@types/pino-pretty': 5.0.0
2683 '@types/pino-std-serializers': 4.0.0
2684 sonic-boom: 2.8.0
2685 1541
2686 /@types/proxy-addr@2.0.1: 1542 /@types/estree@1.0.5:
2687 resolution: {integrity: sha512-fLqXRu+ihH+/V7AB12siUu84uloauJ7SdBMrHARcHQN/yYIa0d9uQSYxSWnMRF0892N2/CJzPVYP3ltgtkkgsQ==} 1543 resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
2688 dependencies:
2689 '@types/node': 20.7.2
2690 dev: true 1544 dev: true
2691 1545
2692 /@types/qs@6.9.8: 1546 /@types/fs-extra@11.0.4:
2693 resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} 1547 resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
1548 dependencies:
1549 '@types/jsonfile': 6.1.4
1550 '@types/node': 20.11.17
2694 dev: true 1551 dev: true
2695 1552
2696 /@types/range-parser@1.2.5: 1553 /@types/he@1.2.3:
2697 resolution: {integrity: sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==} 1554 resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==}
2698 dev: true
2699 1555
2700 /@types/responselike@1.0.1: 1556 /@types/http-cache-semantics@4.0.4:
2701 resolution: {integrity: sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==} 1557 resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
2702 dependencies:
2703 '@types/node': 20.7.2
2704 dev: false 1558 dev: false
2705 1559
2706 /@types/retry@0.12.0: 1560 /@types/json-schema@7.0.15:
2707 resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} 1561 resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
2708 dev: true 1562 dev: true
2709 1563
2710 /@types/semver@7.5.0: 1564 /@types/json5@0.0.29:
2711 resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} 1565 resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
2712 dev: true
2713
2714 /@types/send@0.17.2:
2715 resolution: {integrity: sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==}
2716 dependencies:
2717 '@types/mime': 1.3.3
2718 '@types/node': 20.7.2
2719 dev: true 1566 dev: true
2720 1567
2721 /@types/serve-index@1.9.2: 1568 /@types/jsonfile@6.1.4:
2722 resolution: {integrity: sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==} 1569 resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
2723 dependencies: 1570 dependencies:
2724 '@types/express': 4.17.18 1571 '@types/node': 20.11.17
2725 dev: true 1572 dev: true
2726 1573
2727 /@types/serve-static@1.15.3: 1574 /@types/luxon@3.4.2:
2728 resolution: {integrity: sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==} 1575 resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==}
2729 dependencies:
2730 '@types/http-errors': 2.0.2
2731 '@types/mime': 3.0.2
2732 '@types/node': 20.7.2
2733 dev: true
2734 1576
2735 /@types/sockjs@0.3.34: 1577 /@types/node@20.11.17:
2736 resolution: {integrity: sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==} 1578 resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==}
2737 dependencies: 1579 dependencies:
2738 '@types/node': 20.7.2 1580 undici-types: 5.26.5
2739 dev: true
2740 1581
2741 /@types/source-map-support@0.5.6: 1582 /@types/nodemailer@6.4.14:
2742 resolution: {integrity: sha512-b2nJ9YyXmkhGaa2b8VLM0kJ04xxwNyijcq12/kDoomCt43qbHBeK2SLNJ9iJmETaAj+bKUT05PQUu3Q66GvLhQ==} 1583 resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==}
2743 dependencies: 1584 dependencies:
2744 source-map: 0.6.1 1585 '@types/node': 20.11.17
2745 dev: true 1586 dev: false
2746 1587
2747 /@types/superagent@4.1.19: 1588 /@types/normalize-package-data@2.4.4:
2748 resolution: {integrity: sha512-McM1mlc7PBZpCaw0fw/36uFqo0YeA6m8JqoyE4OfqXsZCIg0hPP2xdE6FM7r6fdprDZHlJwDpydUj1R++93hCA==} 1589 resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
2749 dependencies:
2750 '@types/cookiejar': 2.1.2
2751 '@types/node': 20.7.2
2752 dev: true 1590 dev: true
2753 1591
2754 /@types/tar-fs@2.0.2: 1592 /@types/pluralize@0.0.33:
2755 resolution: {integrity: sha512-XuZRAvdo7FbDfgQCNkc8NOdSae5XtG+of2mTSgJ85G4OG0miN4E8BTGT+JBTLO87RQ7iCwsIDCqCsHnf2IaSXA==} 1593 resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==}
2756 dependencies:
2757 '@types/node': 20.7.2
2758 '@types/tar-stream': 3.1.1
2759 dev: true
2760 1594
2761 /@types/tar-stream@3.1.1: 1595 /@types/proxy-addr@2.0.3:
2762 resolution: {integrity: sha512-/1E+a09mAFQwhlEHqiS3LuNWIBiyrn0HqUWZk2IyGzodu9zkXbaT5vl94iGlZGnG2IONVFZd84SFhns3MhhAQQ==} 1596 resolution: {integrity: sha512-TgAHHO4tNG3HgLTUhB+hM4iwW6JUNeQHCLnF1DjaDA9c69PN+IasoFu2MYDhubFc+ZIw5c5t9DMtjvrD6R3Egg==}
2763 dependencies: 1597 dependencies:
2764 '@types/node': 20.7.2 1598 '@types/node': 20.11.17
2765 dev: true 1599 dev: true
2766 1600
2767 /@types/targz@1.0.1: 1601 /@types/qs@6.9.11:
2768 resolution: {integrity: sha512-Uf5QxuLICkVOmSyDhPicBpIXk2oLIqaldObfr/WsTKTAPk666OpbeL0wZuNXwc5yg9OH1cBVj1rpMHGBJe4ilg==} 1602 resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==}
2769 dependencies:
2770 '@types/tar-fs': 2.0.2
2771 dev: true
2772 1603
2773 /@types/uuid@9.0.2: 1604 /@types/semver@7.5.6:
2774 resolution: {integrity: sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==} 1605 resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
2775 dev: true 1606 dev: true
2776 1607
2777 /@types/validator@13.11.2: 1608 /@types/source-map-support@0.5.10:
2778 resolution: {integrity: sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ==} 1609 resolution: {integrity: sha512-tgVP2H469x9zq34Z0m/fgPewGhg/MLClalNOiPIzQlXrSS2YrKu/xCdSCKnEDwkFha51VKEKB6A9wW26/ZNwzA==}
2779
2780 /@types/ws@8.5.6:
2781 resolution: {integrity: sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==}
2782 dependencies: 1610 dependencies:
2783 '@types/node': 20.7.2 1611 source-map: 0.6.1
2784 dev: true 1612 dev: true
2785 1613
2786 /@types/yargs-parser@21.0.1: 1614 /@types/tar-fs@2.0.4:
2787 resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} 1615 resolution: {integrity: sha512-ipPec0CjTmVDWE+QKr9cTmIIoTl7dFG/yARCM5MqK8i6CNLIG1P8x4kwDsOQY1ChZOZjH0wO9nvfgBvWl4R3kA==}
1616 dependencies:
1617 '@types/node': 20.11.17
1618 '@types/tar-stream': 3.1.3
2788 dev: true 1619 dev: true
2789 1620
2790 /@types/yargs@15.0.16: 1621 /@types/tar-stream@3.1.3:
2791 resolution: {integrity: sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==} 1622 resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==}
2792 dependencies: 1623 dependencies:
2793 '@types/yargs-parser': 21.0.1 1624 '@types/node': 20.11.17
2794 dev: true 1625 dev: true
2795 1626
2796 /@types/yargs@17.0.26: 1627 /@types/targz@1.0.4:
2797 resolution: {integrity: sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==} 1628 resolution: {integrity: sha512-4i2weIjweWsnrvutLH7dM/+FPVSFSqxb+XKWo61tAiHxyYYHveImqys5JijMboKJz+jhFu24SlFrdVAB0xAMIw==}
2798 dependencies: 1629 dependencies:
2799 '@types/yargs-parser': 21.0.1 1630 '@types/tar-fs': 2.0.4
2800 dev: true 1631 dev: true
2801 1632
2802 /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): 1633 /@types/uuid@9.0.8:
2803 resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} 1634 resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
2804 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2805 peerDependencies:
2806 '@typescript-eslint/parser': ^5.0.0
2807 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2808 typescript: '*'
2809 peerDependenciesMeta:
2810 typescript:
2811 optional: true
2812 dependencies:
2813 '@eslint-community/regexpp': 4.9.0
2814 '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
2815 '@typescript-eslint/scope-manager': 5.62.0
2816 '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
2817 '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
2818 debug: 4.3.4
2819 eslint: 8.46.0
2820 graphemer: 1.4.0
2821 ignore: 5.2.4
2822 natural-compare-lite: 1.4.0
2823 semver: 7.5.4
2824 tsutils: 3.21.0(typescript@5.1.6)
2825 typescript: 5.1.6
2826 transitivePeerDependencies:
2827 - supports-color
2828 dev: true 1635 dev: true
2829 1636
2830 /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0)(typescript@5.1.6): 1637 /@types/validator@13.11.8:
2831 resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} 1638 resolution: {integrity: sha512-c/hzNDBh7eRF+KbCf+OoZxKbnkpaK/cKp9iLQWqB7muXtM+MtL9SUUH8vCFcLn6dH1Qm05jiexK0ofWY7TfOhQ==}
1639 dev: false
1640
1641 /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3):
1642 resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
2832 engines: {node: ^16.0.0 || >=18.0.0} 1643 engines: {node: ^16.0.0 || >=18.0.0}
2833 peerDependencies: 1644 peerDependencies:
2834 '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha 1645 '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -2838,47 +1649,26 @@ packages:
2838 typescript: 1649 typescript:
2839 optional: true 1650 optional: true
2840 dependencies: 1651 dependencies:
2841 '@eslint-community/regexpp': 4.9.0 1652 '@eslint-community/regexpp': 4.10.0
2842 '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) 1653 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
2843 '@typescript-eslint/scope-manager': 6.2.0 1654 '@typescript-eslint/scope-manager': 6.21.0
2844 '@typescript-eslint/type-utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) 1655 '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
2845 '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) 1656 '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
2846 '@typescript-eslint/visitor-keys': 6.2.0 1657 '@typescript-eslint/visitor-keys': 6.21.0
2847 debug: 4.3.4 1658 debug: 4.3.4
2848 eslint: 8.46.0 1659 eslint: 8.56.0
2849 graphemer: 1.4.0 1660 graphemer: 1.4.0
2850 ignore: 5.2.4 1661 ignore: 5.3.1
2851 natural-compare: 1.4.0 1662 natural-compare: 1.4.0
2852 natural-compare-lite: 1.4.0 1663 semver: 7.6.0
2853 semver: 7.5.4 1664 ts-api-utils: 1.2.1(typescript@5.3.3)
2854 ts-api-utils: 1.0.3(typescript@5.1.6) 1665 typescript: 5.3.3
2855 typescript: 5.1.6
2856 transitivePeerDependencies:
2857 - supports-color
2858 dev: true
2859
2860 /@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6):
2861 resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
2862 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2863 peerDependencies:
2864 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2865 typescript: '*'
2866 peerDependenciesMeta:
2867 typescript:
2868 optional: true
2869 dependencies:
2870 '@typescript-eslint/scope-manager': 5.62.0
2871 '@typescript-eslint/types': 5.62.0
2872 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
2873 debug: 4.3.4
2874 eslint: 8.46.0
2875 typescript: 5.1.6
2876 transitivePeerDependencies: 1666 transitivePeerDependencies:
2877 - supports-color 1667 - supports-color
2878 dev: true 1668 dev: true
2879 1669
2880 /@typescript-eslint/parser@6.2.0(eslint@8.46.0)(typescript@5.1.6): 1670 /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3):
2881 resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} 1671 resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
2882 engines: {node: ^16.0.0 || >=18.0.0} 1672 engines: {node: ^16.0.0 || >=18.0.0}
2883 peerDependencies: 1673 peerDependencies:
2884 eslint: ^7.0.0 || ^8.0.0 1674 eslint: ^7.0.0 || ^8.0.0
@@ -2887,55 +1677,27 @@ packages:
2887 typescript: 1677 typescript:
2888 optional: true 1678 optional: true
2889 dependencies: 1679 dependencies:
2890 '@typescript-eslint/scope-manager': 6.2.0 1680 '@typescript-eslint/scope-manager': 6.21.0
2891 '@typescript-eslint/types': 6.2.0 1681 '@typescript-eslint/types': 6.21.0
2892 '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) 1682 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
2893 '@typescript-eslint/visitor-keys': 6.2.0 1683 '@typescript-eslint/visitor-keys': 6.21.0
2894 debug: 4.3.4 1684 debug: 4.3.4
2895 eslint: 8.46.0 1685 eslint: 8.56.0
2896 typescript: 5.1.6 1686 typescript: 5.3.3
2897 transitivePeerDependencies: 1687 transitivePeerDependencies:
2898 - supports-color 1688 - supports-color
2899 dev: true 1689 dev: true
2900 1690
2901 /@typescript-eslint/scope-manager@5.62.0: 1691 /@typescript-eslint/scope-manager@6.21.0:
2902 resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} 1692 resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
2903 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2904 dependencies:
2905 '@typescript-eslint/types': 5.62.0
2906 '@typescript-eslint/visitor-keys': 5.62.0
2907 dev: true
2908
2909 /@typescript-eslint/scope-manager@6.2.0:
2910 resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==}
2911 engines: {node: ^16.0.0 || >=18.0.0} 1693 engines: {node: ^16.0.0 || >=18.0.0}
2912 dependencies: 1694 dependencies:
2913 '@typescript-eslint/types': 6.2.0 1695 '@typescript-eslint/types': 6.21.0
2914 '@typescript-eslint/visitor-keys': 6.2.0 1696 '@typescript-eslint/visitor-keys': 6.21.0
2915 dev: true 1697 dev: true
2916 1698
2917 /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): 1699 /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3):
2918 resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} 1700 resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
2919 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2920 peerDependencies:
2921 eslint: '*'
2922 typescript: '*'
2923 peerDependenciesMeta:
2924 typescript:
2925 optional: true
2926 dependencies:
2927 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
2928 '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
2929 debug: 4.3.4
2930 eslint: 8.46.0
2931 tsutils: 3.21.0(typescript@5.1.6)
2932 typescript: 5.1.6
2933 transitivePeerDependencies:
2934 - supports-color
2935 dev: true
2936
2937 /@typescript-eslint/type-utils@6.2.0(eslint@8.46.0)(typescript@5.1.6):
2938 resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==}
2939 engines: {node: ^16.0.0 || >=18.0.0} 1701 engines: {node: ^16.0.0 || >=18.0.0}
2940 peerDependencies: 1702 peerDependencies:
2941 eslint: ^7.0.0 || ^8.0.0 1703 eslint: ^7.0.0 || ^8.0.0
@@ -2944,49 +1706,23 @@ packages:
2944 typescript: 1706 typescript:
2945 optional: true 1707 optional: true
2946 dependencies: 1708 dependencies:
2947 '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) 1709 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
2948 '@typescript-eslint/utils': 6.2.0(eslint@8.46.0)(typescript@5.1.6) 1710 '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
2949 debug: 4.3.4 1711 debug: 4.3.4
2950 eslint: 8.46.0 1712 eslint: 8.56.0
2951 ts-api-utils: 1.0.3(typescript@5.1.6) 1713 ts-api-utils: 1.2.1(typescript@5.3.3)
2952 typescript: 5.1.6 1714 typescript: 5.3.3
2953 transitivePeerDependencies: 1715 transitivePeerDependencies:
2954 - supports-color 1716 - supports-color
2955 dev: true 1717 dev: true
2956 1718
2957 /@typescript-eslint/types@5.62.0: 1719 /@typescript-eslint/types@6.21.0:
2958 resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} 1720 resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
2959 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2960 dev: true
2961
2962 /@typescript-eslint/types@6.2.0:
2963 resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==}
2964 engines: {node: ^16.0.0 || >=18.0.0} 1721 engines: {node: ^16.0.0 || >=18.0.0}
2965 dev: true 1722 dev: true
2966 1723
2967 /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): 1724 /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3):
2968 resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} 1725 resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
2969 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2970 peerDependencies:
2971 typescript: '*'
2972 peerDependenciesMeta:
2973 typescript:
2974 optional: true
2975 dependencies:
2976 '@typescript-eslint/types': 5.62.0
2977 '@typescript-eslint/visitor-keys': 5.62.0
2978 debug: 4.3.4
2979 globby: 11.1.0
2980 is-glob: 4.0.3
2981 semver: 7.5.4
2982 tsutils: 3.21.0(typescript@5.1.6)
2983 typescript: 5.1.6
2984 transitivePeerDependencies:
2985 - supports-color
2986 dev: true
2987
2988 /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6):
2989 resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==}
2990 engines: {node: ^16.0.0 || >=18.0.0} 1726 engines: {node: ^16.0.0 || >=18.0.0}
2991 peerDependencies: 1727 peerDependencies:
2992 typescript: '*' 1728 typescript: '*'
@@ -2994,228 +1730,53 @@ packages:
2994 typescript: 1730 typescript:
2995 optional: true 1731 optional: true
2996 dependencies: 1732 dependencies:
2997 '@typescript-eslint/types': 6.2.0 1733 '@typescript-eslint/types': 6.21.0
2998 '@typescript-eslint/visitor-keys': 6.2.0 1734 '@typescript-eslint/visitor-keys': 6.21.0
2999 debug: 4.3.4 1735 debug: 4.3.4
3000 globby: 11.1.0 1736 globby: 11.1.0
3001 is-glob: 4.0.3 1737 is-glob: 4.0.3
3002 semver: 7.5.4 1738 minimatch: 9.0.3
3003 ts-api-utils: 1.0.3(typescript@5.1.6) 1739 semver: 7.6.0
3004 typescript: 5.1.6 1740 ts-api-utils: 1.2.1(typescript@5.3.3)
1741 typescript: 5.3.3
3005 transitivePeerDependencies: 1742 transitivePeerDependencies:
3006 - supports-color 1743 - supports-color
3007 dev: true 1744 dev: true
3008 1745
3009 /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): 1746 /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3):
3010 resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} 1747 resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
3011 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
3012 peerDependencies:
3013 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
3014 dependencies:
3015 '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0)
3016 '@types/json-schema': 7.0.13
3017 '@types/semver': 7.5.0
3018 '@typescript-eslint/scope-manager': 5.62.0
3019 '@typescript-eslint/types': 5.62.0
3020 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
3021 eslint: 8.46.0
3022 eslint-scope: 5.1.1
3023 semver: 7.5.4
3024 transitivePeerDependencies:
3025 - supports-color
3026 - typescript
3027 dev: true
3028
3029 /@typescript-eslint/utils@6.2.0(eslint@8.46.0)(typescript@5.1.6):
3030 resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==}
3031 engines: {node: ^16.0.0 || >=18.0.0} 1748 engines: {node: ^16.0.0 || >=18.0.0}
3032 peerDependencies: 1749 peerDependencies:
3033 eslint: ^7.0.0 || ^8.0.0 1750 eslint: ^7.0.0 || ^8.0.0
3034 dependencies: 1751 dependencies:
3035 '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) 1752 '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
3036 '@types/json-schema': 7.0.13 1753 '@types/json-schema': 7.0.15
3037 '@types/semver': 7.5.0 1754 '@types/semver': 7.5.6
3038 '@typescript-eslint/scope-manager': 6.2.0 1755 '@typescript-eslint/scope-manager': 6.21.0
3039 '@typescript-eslint/types': 6.2.0 1756 '@typescript-eslint/types': 6.21.0
3040 '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) 1757 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
3041 eslint: 8.46.0 1758 eslint: 8.56.0
3042 semver: 7.5.4 1759 semver: 7.6.0
3043 transitivePeerDependencies: 1760 transitivePeerDependencies:
3044 - supports-color 1761 - supports-color
3045 - typescript 1762 - typescript
3046 dev: true 1763 dev: true
3047 1764
3048 /@typescript-eslint/visitor-keys@5.62.0: 1765 /@typescript-eslint/visitor-keys@6.21.0:
3049 resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} 1766 resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
3050 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
3051 dependencies:
3052 '@typescript-eslint/types': 5.62.0
3053 eslint-visitor-keys: 3.4.3
3054 dev: true
3055
3056 /@typescript-eslint/visitor-keys@6.2.0:
3057 resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==}
3058 engines: {node: ^16.0.0 || >=18.0.0} 1767 engines: {node: ^16.0.0 || >=18.0.0}
3059 dependencies: 1768 dependencies:
3060 '@typescript-eslint/types': 6.2.0 1769 '@typescript-eslint/types': 6.21.0
3061 eslint-visitor-keys: 3.4.3 1770 eslint-visitor-keys: 3.4.3
3062 dev: true 1771 dev: true
3063 1772
3064 /@webassemblyjs/ast@1.11.6: 1773 /@ungap/structured-clone@1.2.0:
3065 resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} 1774 resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
3066 dependencies:
3067 '@webassemblyjs/helper-numbers': 1.11.6
3068 '@webassemblyjs/helper-wasm-bytecode': 1.11.6
3069 dev: true
3070
3071 /@webassemblyjs/floating-point-hex-parser@1.11.6:
3072 resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
3073 dev: true
3074
3075 /@webassemblyjs/helper-api-error@1.11.6:
3076 resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
3077 dev: true
3078
3079 /@webassemblyjs/helper-buffer@1.11.6:
3080 resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
3081 dev: true
3082
3083 /@webassemblyjs/helper-numbers@1.11.6:
3084 resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
3085 dependencies:
3086 '@webassemblyjs/floating-point-hex-parser': 1.11.6
3087 '@webassemblyjs/helper-api-error': 1.11.6
3088 '@xtuc/long': 4.2.2
3089 dev: true
3090
3091 /@webassemblyjs/helper-wasm-bytecode@1.11.6:
3092 resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
3093 dev: true
3094
3095 /@webassemblyjs/helper-wasm-section@1.11.6:
3096 resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
3097 dependencies:
3098 '@webassemblyjs/ast': 1.11.6
3099 '@webassemblyjs/helper-buffer': 1.11.6
3100 '@webassemblyjs/helper-wasm-bytecode': 1.11.6
3101 '@webassemblyjs/wasm-gen': 1.11.6
3102 dev: true
3103
3104 /@webassemblyjs/ieee754@1.11.6:
3105 resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
3106 dependencies:
3107 '@xtuc/ieee754': 1.2.0
3108 dev: true
3109
3110 /@webassemblyjs/leb128@1.11.6:
3111 resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
3112 dependencies:
3113 '@xtuc/long': 4.2.2
3114 dev: true
3115
3116 /@webassemblyjs/utf8@1.11.6:
3117 resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
3118 dev: true
3119
3120 /@webassemblyjs/wasm-edit@1.11.6:
3121 resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
3122 dependencies:
3123 '@webassemblyjs/ast': 1.11.6
3124 '@webassemblyjs/helper-buffer': 1.11.6
3125 '@webassemblyjs/helper-wasm-bytecode': 1.11.6
3126 '@webassemblyjs/helper-wasm-section': 1.11.6
3127 '@webassemblyjs/wasm-gen': 1.11.6
3128 '@webassemblyjs/wasm-opt': 1.11.6
3129 '@webassemblyjs/wasm-parser': 1.11.6
3130 '@webassemblyjs/wast-printer': 1.11.6
3131 dev: true
3132
3133 /@webassemblyjs/wasm-gen@1.11.6:
3134 resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
3135 dependencies:
3136 '@webassemblyjs/ast': 1.11.6
3137 '@webassemblyjs/helper-wasm-bytecode': 1.11.6
3138 '@webassemblyjs/ieee754': 1.11.6
3139 '@webassemblyjs/leb128': 1.11.6
3140 '@webassemblyjs/utf8': 1.11.6
3141 dev: true
3142
3143 /@webassemblyjs/wasm-opt@1.11.6:
3144 resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
3145 dependencies:
3146 '@webassemblyjs/ast': 1.11.6
3147 '@webassemblyjs/helper-buffer': 1.11.6
3148 '@webassemblyjs/wasm-gen': 1.11.6
3149 '@webassemblyjs/wasm-parser': 1.11.6
3150 dev: true
3151
3152 /@webassemblyjs/wasm-parser@1.11.6:
3153 resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
3154 dependencies:
3155 '@webassemblyjs/ast': 1.11.6
3156 '@webassemblyjs/helper-api-error': 1.11.6
3157 '@webassemblyjs/helper-wasm-bytecode': 1.11.6
3158 '@webassemblyjs/ieee754': 1.11.6
3159 '@webassemblyjs/leb128': 1.11.6
3160 '@webassemblyjs/utf8': 1.11.6
3161 dev: true
3162
3163 /@webassemblyjs/wast-printer@1.11.6:
3164 resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
3165 dependencies:
3166 '@webassemblyjs/ast': 1.11.6
3167 '@xtuc/long': 4.2.2
3168 dev: true
3169
3170 /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.88.2):
3171 resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
3172 engines: {node: '>=14.15.0'}
3173 peerDependencies:
3174 webpack: 5.x.x
3175 webpack-cli: 5.x.x
3176 dependencies:
3177 webpack: 5.88.2(webpack-cli@5.1.4)
3178 webpack-cli: 5.1.4(webpack@5.88.2)
3179 dev: true
3180
3181 /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.88.2):
3182 resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
3183 engines: {node: '>=14.15.0'}
3184 peerDependencies:
3185 webpack: 5.x.x
3186 webpack-cli: 5.x.x
3187 dependencies:
3188 webpack: 5.88.2(webpack-cli@5.1.4)
3189 webpack-cli: 5.1.4(webpack@5.88.2)
3190 dev: true
3191
3192 /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.88.2):
3193 resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
3194 engines: {node: '>=14.15.0'}
3195 peerDependencies:
3196 webpack: 5.x.x
3197 webpack-cli: 5.x.x
3198 webpack-dev-server: '*'
3199 peerDependenciesMeta:
3200 webpack-dev-server:
3201 optional: true
3202 dependencies:
3203 webpack: 5.88.2(webpack-cli@5.1.4)
3204 webpack-cli: 5.1.4(webpack@5.88.2)
3205 dev: true
3206
3207 /@xtuc/ieee754@1.2.0:
3208 resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
3209 dev: true
3210
3211 /@xtuc/long@4.2.2:
3212 resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
3213 dev: true 1775 dev: true
3214 1776
3215 /abbrev@1.1.1: 1777 /abbrev@1.1.1:
3216 resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 1778 resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
3217 requiresBuild: true 1779 requiresBuild: true
3218 dev: false
3219 1780
3220 /abort-controller@3.0.0: 1781 /abort-controller@3.0.0:
3221 resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 1782 resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
@@ -3233,83 +1794,24 @@ packages:
3233 mime-types: 2.1.35 1794 mime-types: 2.1.35
3234 negotiator: 0.6.3 1795 negotiator: 0.6.3
3235 1796
3236 /acorn-class-fields@1.0.0(acorn@8.10.0): 1797 /acorn-jsx@5.3.2(acorn@8.11.3):
3237 resolution: {integrity: sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==}
3238 engines: {node: '>=4.8.2'}
3239 peerDependencies:
3240 acorn: ^6 || ^7 || ^8
3241 dependencies:
3242 acorn: 8.10.0
3243 acorn-private-class-elements: 1.0.0(acorn@8.10.0)
3244 dev: false
3245
3246 /acorn-import-assertions@1.9.0(acorn@8.10.0):
3247 resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
3248 peerDependencies:
3249 acorn: ^8
3250 dependencies:
3251 acorn: 8.10.0
3252 dev: true
3253
3254 /acorn-jsx@5.3.2(acorn@8.10.0):
3255 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1798 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
3256 peerDependencies: 1799 peerDependencies:
3257 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1800 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
3258 dependencies: 1801 dependencies:
3259 acorn: 8.10.0 1802 acorn: 8.11.3
3260 dev: true 1803 dev: true
3261 1804
3262 /acorn-private-class-elements@1.0.0(acorn@8.10.0): 1805 /acorn-walk@8.3.2:
3263 resolution: {integrity: sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==} 1806 resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
3264 engines: {node: '>=4.8.2'}
3265 peerDependencies:
3266 acorn: ^6.1.0 || ^7 || ^8
3267 dependencies:
3268 acorn: 8.10.0
3269 dev: false
3270
3271 /acorn-private-methods@1.0.0(acorn@8.10.0):
3272 resolution: {integrity: sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==}
3273 engines: {node: '>=4.8.2'}
3274 peerDependencies:
3275 acorn: ^6 || ^7 || ^8
3276 dependencies:
3277 acorn: 8.10.0
3278 acorn-private-class-elements: 1.0.0(acorn@8.10.0)
3279 dev: false
3280
3281 /acorn-static-class-features@1.0.0(acorn@8.10.0):
3282 resolution: {integrity: sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==}
3283 engines: {node: '>=4.8.2'}
3284 peerDependencies:
3285 acorn: ^6.1.0 || ^7 || ^8
3286 dependencies:
3287 acorn: 8.10.0
3288 acorn-private-class-elements: 1.0.0(acorn@8.10.0)
3289 dev: false
3290
3291 /acorn-walk@8.2.0:
3292 resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
3293 engines: {node: '>=0.4.0'} 1807 engines: {node: '>=0.4.0'}
3294 dev: false 1808 dev: true
3295 1809
3296 /acorn@8.10.0: 1810 /acorn@8.11.3:
3297 resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 1811 resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
3298 engines: {node: '>=0.4.0'} 1812 engines: {node: '>=0.4.0'}
3299 hasBin: true 1813 hasBin: true
3300 1814
3301 /adjust-sourcemap-loader@4.0.0:
3302 resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==}
3303 engines: {node: '>=8.9'}
3304 dependencies:
3305 loader-utils: 2.0.4
3306 regex-parser: 2.2.11
3307 dev: true
3308
3309 /adonis-preset-ts@2.1.0:
3310 resolution: {integrity: sha512-cQH/NP250gOF9k3TTDhVsTOPSAvyH4MhKVZ4ryYiihA+vnP27sut1gVIrRas3Evl5d2wEgWVGI5DgdP/ZFSk0w==}
3311 dev: true
3312
3313 /agent-base@6.0.2: 1815 /agent-base@6.0.2:
3314 resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 1816 resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
3315 engines: {node: '>= 6.0.0'} 1817 engines: {node: '>= 6.0.0'}
@@ -3317,7 +1819,6 @@ packages:
3317 debug: 4.3.4 1819 debug: 4.3.4
3318 transitivePeerDependencies: 1820 transitivePeerDependencies:
3319 - supports-color 1821 - supports-color
3320 dev: false
3321 1822
3322 /agentkeepalive@4.5.0: 1823 /agentkeepalive@4.5.0:
3323 resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} 1824 resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
@@ -3331,37 +1832,19 @@ packages:
3331 /aggregate-error@3.1.0: 1832 /aggregate-error@3.1.0:
3332 resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 1833 resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
3333 engines: {node: '>=8'} 1834 engines: {node: '>=8'}
1835 requiresBuild: true
3334 dependencies: 1836 dependencies:
3335 clean-stack: 2.2.0 1837 clean-stack: 2.2.0
3336 indent-string: 4.0.0 1838 indent-string: 4.0.0
1839 dev: false
1840 optional: true
3337 1841
3338 /ajv-formats@2.1.1(ajv@8.12.0): 1842 /aggregate-error@4.0.1:
3339 resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 1843 resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==}
3340 peerDependencies: 1844 engines: {node: '>=12'}
3341 ajv: ^8.0.0
3342 peerDependenciesMeta:
3343 ajv:
3344 optional: true
3345 dependencies:
3346 ajv: 8.12.0
3347 dev: true
3348
3349 /ajv-keywords@3.5.2(ajv@6.12.6):
3350 resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
3351 peerDependencies:
3352 ajv: ^6.9.1
3353 dependencies:
3354 ajv: 6.12.6
3355 dev: true
3356
3357 /ajv-keywords@5.1.0(ajv@8.12.0):
3358 resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
3359 peerDependencies:
3360 ajv: ^8.8.2
3361 dependencies: 1845 dependencies:
3362 ajv: 8.12.0 1846 clean-stack: 4.2.0
3363 fast-deep-equal: 3.1.3 1847 indent-string: 5.0.0
3364 dev: true
3365 1848
3366 /ajv@6.12.6: 1849 /ajv@6.12.6:
3367 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1850 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -3372,51 +1855,23 @@ packages:
3372 uri-js: 4.4.1 1855 uri-js: 4.4.1
3373 dev: true 1856 dev: true
3374 1857
3375 /ajv@8.12.0:
3376 resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
3377 dependencies:
3378 fast-deep-equal: 3.1.3
3379 json-schema-traverse: 1.0.0
3380 require-from-string: 2.0.2
3381 uri-js: 4.4.1
3382 dev: true
3383
3384 /ansi-colors@4.1.3: 1858 /ansi-colors@4.1.3:
3385 resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 1859 resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
3386 engines: {node: '>=6'} 1860 engines: {node: '>=6'}
3387 1861
3388 /ansi-escapes@4.3.2:
3389 resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
3390 engines: {node: '>=8'}
3391 dependencies:
3392 type-fest: 0.21.3
3393
3394 /ansi-escapes@6.2.0: 1862 /ansi-escapes@6.2.0:
3395 resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} 1863 resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==}
3396 engines: {node: '>=14.16'} 1864 engines: {node: '>=14.16'}
3397 dependencies: 1865 dependencies:
3398 type-fest: 3.13.1 1866 type-fest: 3.13.1
3399 dev: true
3400
3401 /ansi-html-community@0.0.8:
3402 resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
3403 engines: {'0': node >= 0.8.0}
3404 hasBin: true
3405 dev: true
3406
3407 /ansi-regex@2.1.1:
3408 resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
3409 engines: {node: '>=0.10.0'}
3410 dev: true
3411 1867
3412 /ansi-regex@5.0.1: 1868 /ansi-regex@5.0.1:
3413 resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1869 resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
3414 engines: {node: '>=8'} 1870 engines: {node: '>=8'}
3415 1871
3416 /ansi-styles@2.2.1: 1872 /ansi-regex@6.0.1:
3417 resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} 1873 resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
3418 engines: {node: '>=0.10.0'} 1874 engines: {node: '>=12'}
3419 dev: true
3420 1875
3421 /ansi-styles@3.2.1: 1876 /ansi-styles@3.2.1:
3422 resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1877 resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
@@ -3434,11 +1889,10 @@ packages:
3434 /ansi-styles@5.2.0: 1889 /ansi-styles@5.2.0:
3435 resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 1890 resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
3436 engines: {node: '>=10'} 1891 engines: {node: '>=10'}
3437 dev: true
3438 1892
3439 /ansicolors@0.3.2: 1893 /ansi-styles@6.2.1:
3440 resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} 1894 resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
3441 dev: true 1895 engines: {node: '>=12'}
3442 1896
3443 /anymatch@3.1.3: 1897 /anymatch@3.1.3:
3444 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1898 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
@@ -3446,44 +1900,9 @@ packages:
3446 dependencies: 1900 dependencies:
3447 normalize-path: 3.0.0 1901 normalize-path: 3.0.0
3448 picomatch: 2.3.1 1902 picomatch: 2.3.1
3449 dev: true
3450
3451 /api-contract-validator@2.2.8(openapi-types@12.1.3):
3452 resolution: {integrity: sha512-YM3rMcrIp8Thf/WWbVBXBGX793Mm3Phw2pn3VbJpiZkpeTCTtF10huKPrzQ2gSIaK5GjAhTRJMAOyf+rsS7MAw==}
3453 engines: {node: '>=8'}
3454 dependencies:
3455 api-schema-builder: 2.0.11(openapi-types@12.1.3)
3456 chalk: 3.0.0
3457 columnify: 1.6.0
3458 jest-diff: 25.5.0
3459 jest-matcher-utils: 25.5.0
3460 lodash.flatten: 4.4.0
3461 lodash.get: 4.4.2
3462 lodash.set: 4.3.2
3463 uri-js: 4.4.1
3464 transitivePeerDependencies:
3465 - openapi-types
3466 dev: true
3467
3468 /api-schema-builder@2.0.11(openapi-types@12.1.3):
3469 resolution: {integrity: sha512-85zbwf8MtPWodhfnmQRW5YD/fuGR12FP+8TbcYai5wbRnoUmPYLftLSbp7NB6zQMPb61Gjz+ApPUSyTdcCos7g==}
3470 engines: {node: '>=8'}
3471 dependencies:
3472 ajv: 6.12.6
3473 clone-deep: 4.0.1
3474 decimal.js: 10.4.3
3475 js-yaml: 3.14.1
3476 json-schema-deref-sync: 0.14.0
3477 lodash.get: 4.4.2
3478 openapi-schema-validator: 3.0.3
3479 swagger-parser: 10.0.3(openapi-types@12.1.3)
3480 transitivePeerDependencies:
3481 - openapi-types
3482 dev: true
3483 1903
3484 /aproba@2.0.0: 1904 /aproba@2.0.0:
3485 resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} 1905 resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
3486 dev: false
3487 1906
3488 /are-we-there-yet@2.0.0: 1907 /are-we-there-yet@2.0.0:
3489 resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} 1908 resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
@@ -3491,7 +1910,6 @@ packages:
3491 dependencies: 1910 dependencies:
3492 delegates: 1.0.0 1911 delegates: 1.0.0
3493 readable-stream: 3.6.2 1912 readable-stream: 3.6.2
3494 dev: false
3495 1913
3496 /are-we-there-yet@3.0.1: 1914 /are-we-there-yet@3.0.1:
3497 resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} 1915 resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
@@ -3503,108 +1921,66 @@ packages:
3503 dev: false 1921 dev: false
3504 optional: true 1922 optional: true
3505 1923
3506 /argparse@1.0.10: 1924 /arg@4.1.3:
3507 resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 1925 resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
3508 dependencies:
3509 sprintf-js: 1.0.3
3510 dev: true 1926 dev: true
3511 1927
3512 /argparse@2.0.1: 1928 /argparse@2.0.1:
3513 resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1929 resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
3514 dev: true 1930 dev: true
3515 1931
3516 /arr-diff@4.0.0:
3517 resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
3518 engines: {node: '>=0.10.0'}
3519 dev: true
3520
3521 /arr-flatten@1.1.0:
3522 resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
3523 engines: {node: '>=0.10.0'}
3524 dev: true
3525
3526 /arr-union@3.1.0:
3527 resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
3528 engines: {node: '>=0.10.0'}
3529 dev: true
3530
3531 /array-buffer-byte-length@1.0.0: 1932 /array-buffer-byte-length@1.0.0:
3532 resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 1933 resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
3533 dependencies: 1934 dependencies:
3534 call-bind: 1.0.2 1935 call-bind: 1.0.5
3535 is-array-buffer: 3.0.2 1936 is-array-buffer: 3.0.2
3536 dev: true 1937 dev: true
3537 1938
3538 /array-flatten@1.1.1:
3539 resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
3540 dev: true
3541
3542 /array-flatten@2.1.2:
3543 resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==}
3544 dev: true
3545
3546 /array-includes@3.1.7: 1939 /array-includes@3.1.7:
3547 resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} 1940 resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
3548 engines: {node: '>= 0.4'} 1941 engines: {node: '>= 0.4'}
3549 dependencies: 1942 dependencies:
3550 call-bind: 1.0.2 1943 call-bind: 1.0.5
3551 define-properties: 1.2.1 1944 define-properties: 1.2.1
3552 es-abstract: 1.22.2 1945 es-abstract: 1.22.3
3553 get-intrinsic: 1.2.1 1946 get-intrinsic: 1.2.2
3554 is-string: 1.0.7 1947 is-string: 1.0.7
3555 dev: true 1948 dev: true
3556 1949
3557 /array-union@1.0.2:
3558 resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==}
3559 engines: {node: '>=0.10.0'}
3560 dependencies:
3561 array-uniq: 1.0.3
3562 dev: true
3563
3564 /array-union@2.1.0: 1950 /array-union@2.1.0:
3565 resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1951 resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
3566 engines: {node: '>=8'} 1952 engines: {node: '>=8'}
3567 dev: true 1953 dev: true
3568 1954
3569 /array-uniq@1.0.3:
3570 resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==}
3571 engines: {node: '>=0.10.0'}
3572 dev: true
3573
3574 /array-unique@0.3.2:
3575 resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
3576 engines: {node: '>=0.10.0'}
3577 dev: true
3578
3579 /array.prototype.findlastindex@1.2.3: 1955 /array.prototype.findlastindex@1.2.3:
3580 resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} 1956 resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
3581 engines: {node: '>= 0.4'} 1957 engines: {node: '>= 0.4'}
3582 dependencies: 1958 dependencies:
3583 call-bind: 1.0.2 1959 call-bind: 1.0.5
3584 define-properties: 1.2.1 1960 define-properties: 1.2.1
3585 es-abstract: 1.22.2 1961 es-abstract: 1.22.3
3586 es-shim-unscopables: 1.0.0 1962 es-shim-unscopables: 1.0.2
3587 get-intrinsic: 1.2.1 1963 get-intrinsic: 1.2.2
3588 dev: true 1964 dev: true
3589 1965
3590 /array.prototype.flat@1.3.2: 1966 /array.prototype.flat@1.3.2:
3591 resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 1967 resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
3592 engines: {node: '>= 0.4'} 1968 engines: {node: '>= 0.4'}
3593 dependencies: 1969 dependencies:
3594 call-bind: 1.0.2 1970 call-bind: 1.0.5
3595 define-properties: 1.2.1 1971 define-properties: 1.2.1
3596 es-abstract: 1.22.2 1972 es-abstract: 1.22.3
3597 es-shim-unscopables: 1.0.0 1973 es-shim-unscopables: 1.0.2
3598 dev: true 1974 dev: true
3599 1975
3600 /array.prototype.flatmap@1.3.2: 1976 /array.prototype.flatmap@1.3.2:
3601 resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 1977 resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
3602 engines: {node: '>= 0.4'} 1978 engines: {node: '>= 0.4'}
3603 dependencies: 1979 dependencies:
3604 call-bind: 1.0.2 1980 call-bind: 1.0.5
3605 define-properties: 1.2.1 1981 define-properties: 1.2.1
3606 es-abstract: 1.22.2 1982 es-abstract: 1.22.3
3607 es-shim-unscopables: 1.0.0 1983 es-shim-unscopables: 1.0.2
3608 dev: true 1984 dev: true
3609 1985
3610 /arraybuffer.prototype.slice@1.0.2: 1986 /arraybuffer.prototype.slice@1.0.2:
@@ -3612,74 +1988,27 @@ packages:
3612 engines: {node: '>= 0.4'} 1988 engines: {node: '>= 0.4'}
3613 dependencies: 1989 dependencies:
3614 array-buffer-byte-length: 1.0.0 1990 array-buffer-byte-length: 1.0.0
3615 call-bind: 1.0.2 1991 call-bind: 1.0.5
3616 define-properties: 1.2.1 1992 define-properties: 1.2.1
3617 es-abstract: 1.22.2 1993 es-abstract: 1.22.3
3618 get-intrinsic: 1.2.1 1994 get-intrinsic: 1.2.2
3619 is-array-buffer: 3.0.2 1995 is-array-buffer: 3.0.2
3620 is-shared-array-buffer: 1.0.2 1996 is-shared-array-buffer: 1.0.2
3621 dev: true 1997 dev: true
3622 1998
3623 /arrify@2.0.1:
3624 resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
3625 engines: {node: '>=8'}
3626 dev: true
3627
3628 /as-table@1.0.55: 1999 /as-table@1.0.55:
3629 resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 2000 resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
3630 dependencies: 2001 dependencies:
3631 printable-characters: 1.0.42 2002 printable-characters: 1.0.42
3632 dev: true
3633
3634 /asap@2.0.6:
3635 resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
3636 dev: true
3637
3638 /assertion-error@1.1.0:
3639 resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
3640 dev: true
3641
3642 /assets-webpack-plugin@7.0.0(webpack@5.88.2):
3643 resolution: {integrity: sha512-DMZ9r6HFxynWeONRMhSOFTvTrmit5dovdoUKdJgCG03M6CC7XiwNImPH+Ad1jaVrQ2n59e05lBhte52xPt4MSA==}
3644 engines: {node: '>=10.x.x'}
3645 peerDependencies:
3646 webpack: '>=5.0.0'
3647 dependencies:
3648 camelcase: 6.3.0
3649 escape-string-regexp: 4.0.0
3650 lodash: 4.17.21
3651 webpack: 5.88.2(webpack-cli@5.1.4)
3652 dev: true
3653
3654 /assign-symbols@1.0.0:
3655 resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
3656 engines: {node: '>=0.10.0'}
3657 dev: true
3658
3659 /astral-regex@2.0.0:
3660 resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
3661 engines: {node: '>=8'}
3662 2003
3663 /astring@1.8.6: 2004 /astring@1.8.6:
3664 resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} 2005 resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
3665 hasBin: true 2006 hasBin: true
3666 dev: false
3667 2007
3668 /async-retry@1.3.3: 2008 /async-retry@1.3.3:
3669 resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} 2009 resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
3670 dependencies: 2010 dependencies:
3671 retry: 0.13.1 2011 retry: 0.13.1
3672 dev: true
3673
3674 /asynckit@0.4.0:
3675 resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
3676 dev: true
3677
3678 /atob@2.1.2:
3679 resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
3680 engines: {node: '>= 4.5.0'}
3681 hasBin: true
3682 dev: true
3683 2012
3684 /atomic-sleep@1.0.0: 2013 /atomic-sleep@1.0.0:
3685 resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 2014 resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
@@ -3688,80 +2017,6 @@ packages:
3688 /available-typed-arrays@1.0.5: 2017 /available-typed-arrays@1.0.5:
3689 resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 2018 resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
3690 engines: {node: '>= 0.4'} 2019 engines: {node: '>= 0.4'}
3691
3692 /aws-sdk@2.1425.0:
3693 resolution: {integrity: sha512-DbY5z7E8RsrX8/0pMBKMuh/rWFic3AghtU2AWkUdzxDi0cUSK7rOSPS/OIURU9Rh0jaNXoA0ujBDdx/CC5CvRA==}
3694 engines: {node: '>= 10.0.0'}
3695 dependencies:
3696 buffer: 4.9.2
3697 events: 1.1.1
3698 ieee754: 1.1.13
3699 jmespath: 0.16.0
3700 querystring: 0.2.0
3701 sax: 1.2.1
3702 url: 0.10.3
3703 util: 0.12.5
3704 uuid: 8.0.0
3705 xml2js: 0.5.0
3706 dev: false
3707
3708 /babel-code-frame@6.26.0:
3709 resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==}
3710 dependencies:
3711 chalk: 1.1.3
3712 esutils: 2.0.3
3713 js-tokens: 3.0.2
3714 dev: true
3715
3716 /babel-loader@8.3.0(@babel/core@7.23.0)(webpack@5.88.2):
3717 resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
3718 engines: {node: '>= 8.9'}
3719 peerDependencies:
3720 '@babel/core': ^7.0.0
3721 webpack: '>=2'
3722 dependencies:
3723 '@babel/core': 7.23.0
3724 find-cache-dir: 3.3.2
3725 loader-utils: 2.0.4
3726 make-dir: 3.1.0
3727 schema-utils: 2.7.1
3728 webpack: 5.88.2(webpack-cli@5.1.4)
3729 dev: true
3730
3731 /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.23.0):
3732 resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==}
3733 peerDependencies:
3734 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
3735 dependencies:
3736 '@babel/compat-data': 7.22.20
3737 '@babel/core': 7.23.0
3738 '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.23.0)
3739 semver: 6.3.1
3740 transitivePeerDependencies:
3741 - supports-color
3742 dev: true
3743
3744 /babel-plugin-polyfill-corejs3@0.8.4(@babel/core@7.23.0):
3745 resolution: {integrity: sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==}
3746 peerDependencies:
3747 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
3748 dependencies:
3749 '@babel/core': 7.23.0
3750 '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.23.0)
3751 core-js-compat: 3.32.2
3752 transitivePeerDependencies:
3753 - supports-color
3754 dev: true
3755
3756 /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.23.0):
3757 resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==}
3758 peerDependencies:
3759 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
3760 dependencies:
3761 '@babel/core': 7.23.0
3762 '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.23.0)
3763 transitivePeerDependencies:
3764 - supports-color
3765 dev: true 2020 dev: true
3766 2021
3767 /balanced-match@1.0.2: 2022 /balanced-match@1.0.2:
@@ -3770,22 +2025,12 @@ packages:
3770 /base64-js@1.5.1: 2025 /base64-js@1.5.1:
3771 resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 2026 resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
3772 2027
3773 /base@0.11.2: 2028 /basic-auth@2.0.1:
3774 resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} 2029 resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
3775 engines: {node: '>=0.10.0'} 2030 engines: {node: '>= 0.8'}
3776 dependencies: 2031 dependencies:
3777 cache-base: 1.0.1 2032 safe-buffer: 5.1.2
3778 class-utils: 0.3.6 2033 dev: false
3779 component-emitter: 1.3.0
3780 define-property: 1.0.0
3781 isobject: 3.0.1
3782 mixin-deep: 1.3.2
3783 pascalcase: 0.1.1
3784 dev: true
3785
3786 /batch@0.6.1:
3787 resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
3788 dev: true
3789 2034
3790 /bcrypt@5.1.1: 2035 /bcrypt@5.1.1:
3791 resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==} 2036 resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==}
@@ -3797,16 +2042,6 @@ packages:
3797 transitivePeerDependencies: 2042 transitivePeerDependencies:
3798 - encoding 2043 - encoding
3799 - supports-color 2044 - supports-color
3800 dev: false
3801
3802 /big-integer@1.6.51:
3803 resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
3804 engines: {node: '>=0.6'}
3805 dev: true
3806
3807 /big.js@5.2.2:
3808 resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
3809 dev: true
3810 2045
3811 /bignumber.js@9.0.0: 2046 /bignumber.js@9.0.0:
3812 resolution: {integrity: sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==} 2047 resolution: {integrity: sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==}
@@ -3815,7 +2050,12 @@ packages:
3815 /binary-extensions@2.2.0: 2050 /binary-extensions@2.2.0:
3816 resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 2051 resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
3817 engines: {node: '>=8'} 2052 engines: {node: '>=8'}
3818 dev: true 2053
2054 /bindings@1.5.0:
2055 resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
2056 dependencies:
2057 file-uri-to-path: 1.0.0
2058 dev: false
3819 2059
3820 /bl@1.2.3: 2060 /bl@1.2.3:
3821 resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} 2061 resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==}
@@ -3824,45 +2064,13 @@ packages:
3824 safe-buffer: 5.2.1 2064 safe-buffer: 5.2.1
3825 dev: false 2065 dev: false
3826 2066
3827 /body-parser@1.20.1: 2067 /bl@4.1.0:
3828 resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} 2068 resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
3829 engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
3830 dependencies: 2069 dependencies:
3831 bytes: 3.1.2 2070 buffer: 5.7.1
3832 content-type: 1.0.5 2071 inherits: 2.0.4
3833 debug: 2.6.9 2072 readable-stream: 3.6.2
3834 depd: 2.0.0 2073 dev: false
3835 destroy: 1.2.0
3836 http-errors: 2.0.0
3837 iconv-lite: 0.4.24
3838 on-finished: 2.4.1
3839 qs: 6.11.0
3840 raw-body: 2.5.1
3841 type-is: 1.6.18
3842 unpipe: 1.0.0
3843 transitivePeerDependencies:
3844 - supports-color
3845 dev: true
3846
3847 /bonjour-service@1.1.1:
3848 resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==}
3849 dependencies:
3850 array-flatten: 2.1.2
3851 dns-equal: 1.0.0
3852 fast-deep-equal: 3.1.3
3853 multicast-dns: 7.2.5
3854 dev: true
3855
3856 /boolbase@1.0.0:
3857 resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
3858 dev: true
3859
3860 /bplist-parser@0.2.0:
3861 resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
3862 engines: {node: '>= 5.10.0'}
3863 dependencies:
3864 big-integer: 1.6.51
3865 dev: true
3866 2074
3867 /brace-expansion@1.1.11: 2075 /brace-expansion@1.1.11:
3868 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 2076 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -3875,39 +2083,21 @@ packages:
3875 dependencies: 2083 dependencies:
3876 balanced-match: 1.0.2 2084 balanced-match: 1.0.2
3877 2085
3878 /braces@2.3.2:
3879 resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
3880 engines: {node: '>=0.10.0'}
3881 dependencies:
3882 arr-flatten: 1.1.0
3883 array-unique: 0.3.2
3884 extend-shallow: 2.0.1
3885 fill-range: 4.0.0
3886 isobject: 3.0.1
3887 repeat-element: 1.1.4
3888 snapdragon: 0.8.2
3889 snapdragon-node: 2.1.1
3890 split-string: 3.1.0
3891 to-regex: 3.0.2
3892 transitivePeerDependencies:
3893 - supports-color
3894 dev: true
3895
3896 /braces@3.0.2: 2086 /braces@3.0.2:
3897 resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 2087 resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
3898 engines: {node: '>=8'} 2088 engines: {node: '>=8'}
3899 dependencies: 2089 dependencies:
3900 fill-range: 7.0.1 2090 fill-range: 7.0.1
3901 2091
3902 /browserslist@4.22.1: 2092 /browserslist@4.22.3:
3903 resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} 2093 resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==}
3904 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 2094 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
3905 hasBin: true 2095 hasBin: true
3906 dependencies: 2096 dependencies:
3907 caniuse-lite: 1.0.30001541 2097 caniuse-lite: 1.0.30001585
3908 electron-to-chromium: 1.4.537 2098 electron-to-chromium: 1.4.665
3909 node-releases: 2.0.13 2099 node-releases: 2.0.14
3910 update-browserslist-db: 1.0.13(browserslist@4.22.1) 2100 update-browserslist-db: 1.0.13(browserslist@4.22.3)
3911 dev: true 2101 dev: true
3912 2102
3913 /buffer-alloc-unsafe@1.1.0: 2103 /buffer-alloc-unsafe@1.1.0:
@@ -3925,20 +2115,16 @@ packages:
3925 resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} 2115 resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==}
3926 dev: false 2116 dev: false
3927 2117
3928 /buffer-from@1.1.2:
3929 resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
3930
3931 /buffer-writer@2.0.0: 2118 /buffer-writer@2.0.0:
3932 resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} 2119 resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==}
3933 engines: {node: '>=4'} 2120 engines: {node: '>=4'}
3934 dev: false 2121 dev: false
3935 2122
3936 /buffer@4.9.2: 2123 /buffer@5.7.1:
3937 resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} 2124 resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
3938 dependencies: 2125 dependencies:
3939 base64-js: 1.5.1 2126 base64-js: 1.5.1
3940 ieee754: 1.1.13 2127 ieee754: 1.2.1
3941 isarray: 1.0.0
3942 dev: false 2128 dev: false
3943 2129
3944 /buffer@6.0.3: 2130 /buffer@6.0.3:
@@ -3952,22 +2138,6 @@ packages:
3952 engines: {node: '>=6'} 2138 engines: {node: '>=6'}
3953 dev: true 2139 dev: true
3954 2140
3955 /builtins@1.0.3:
3956 resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
3957 dev: true
3958
3959 /bundle-name@3.0.0:
3960 resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
3961 engines: {node: '>=12'}
3962 dependencies:
3963 run-applescript: 5.0.0
3964 dev: true
3965
3966 /bytes@3.0.0:
3967 resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
3968 engines: {node: '>= 0.8'}
3969 dev: true
3970
3971 /bytes@3.1.2: 2141 /bytes@3.1.2:
3972 resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 2142 resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
3973 engines: {node: '>= 0.8'} 2143 engines: {node: '>= 0.8'}
@@ -4000,116 +2170,43 @@ packages:
4000 dev: false 2170 dev: false
4001 optional: true 2171 optional: true
4002 2172
4003 /cache-base@1.0.1: 2173 /cacheable-lookup@7.0.0:
4004 resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} 2174 resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
4005 engines: {node: '>=0.10.0'} 2175 engines: {node: '>=14.16'}
4006 dependencies:
4007 collection-visit: 1.0.0
4008 component-emitter: 1.3.0
4009 get-value: 2.0.6
4010 has-value: 1.0.0
4011 isobject: 3.0.1
4012 set-value: 2.0.1
4013 to-object-path: 0.3.0
4014 union-value: 1.0.1
4015 unset-value: 1.0.0
4016 dev: true
4017
4018 /cacheable-lookup@5.0.4:
4019 resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
4020 engines: {node: '>=10.6.0'}
4021 dev: false 2176 dev: false
4022 2177
4023 /cacheable-request@7.0.4: 2178 /cacheable-request@10.2.14:
4024 resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} 2179 resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
4025 engines: {node: '>=8'} 2180 engines: {node: '>=14.16'}
4026 dependencies: 2181 dependencies:
4027 clone-response: 1.0.3 2182 '@types/http-cache-semantics': 4.0.4
4028 get-stream: 5.2.0 2183 get-stream: 6.0.1
4029 http-cache-semantics: 4.1.1 2184 http-cache-semantics: 4.1.1
4030 keyv: 4.5.3 2185 keyv: 4.5.4
4031 lowercase-keys: 2.0.0 2186 mimic-response: 4.0.0
4032 normalize-url: 6.1.0 2187 normalize-url: 8.0.0
4033 responselike: 2.0.1 2188 responselike: 3.0.0
4034 dev: false 2189 dev: false
4035 2190
4036 /call-bind@1.0.2: 2191 /call-bind@1.0.5:
4037 resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 2192 resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
4038 dependencies: 2193 dependencies:
4039 function-bind: 1.1.1 2194 function-bind: 1.1.2
4040 get-intrinsic: 1.2.1 2195 get-intrinsic: 1.2.2
4041 2196 set-function-length: 1.2.0
4042 /call-me-maybe@1.0.2:
4043 resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
4044 dev: true
4045 2197
4046 /callsites@3.1.0: 2198 /callsites@3.1.0:
4047 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 2199 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
4048 engines: {node: '>=6'} 2200 engines: {node: '>=6'}
4049 dev: true 2201 dev: true
4050 2202
4051 /camel-case@4.1.2: 2203 /caniuse-lite@1.0.30001585:
4052 resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} 2204 resolution: {integrity: sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==}
4053 dependencies:
4054 pascal-case: 3.1.2
4055 tslib: 2.6.2
4056
4057 /camelcase@6.3.0:
4058 resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
4059 engines: {node: '>=10'}
4060 dev: true
4061
4062 /caniuse-api@3.0.0:
4063 resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
4064 dependencies:
4065 browserslist: 4.22.1
4066 caniuse-lite: 1.0.30001541
4067 lodash.memoize: 4.1.2
4068 lodash.uniq: 4.5.0
4069 dev: true
4070
4071 /caniuse-lite@1.0.30001541:
4072 resolution: {integrity: sha512-bLOsqxDgTqUBkzxbNlSBt8annkDpQB9NdzdTbO2ooJ+eC/IQcvDspDc058g84ejCelF7vHUx57KIOjEecOHXaw==}
4073 dev: true 2205 dev: true
4074 2206
4075 /capital-case@1.0.4: 2207 /case-anything@2.1.13:
4076 resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} 2208 resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==}
4077 dependencies: 2209 engines: {node: '>=12.13'}
4078 no-case: 3.0.4
4079 tslib: 2.6.2
4080 upper-case-first: 2.0.2
4081
4082 /cardinal@2.1.1:
4083 resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==}
4084 hasBin: true
4085 dependencies:
4086 ansicolors: 0.3.2
4087 redeyed: 2.1.1
4088 dev: true
4089
4090 /chai@4.3.10:
4091 resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==}
4092 engines: {node: '>=4'}
4093 dependencies:
4094 assertion-error: 1.1.0
4095 check-error: 1.0.3
4096 deep-eql: 4.1.3
4097 get-func-name: 2.0.2
4098 loupe: 2.3.6
4099 pathval: 1.1.1
4100 type-detect: 4.0.8
4101 dev: true
4102
4103 /chalk@1.1.3:
4104 resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
4105 engines: {node: '>=0.10.0'}
4106 dependencies:
4107 ansi-styles: 2.2.1
4108 escape-string-regexp: 1.0.5
4109 has-ansi: 2.0.0
4110 strip-ansi: 3.0.1
4111 supports-color: 2.0.0
4112 dev: true
4113 2210
4114 /chalk@2.4.2: 2211 /chalk@2.4.2:
4115 resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 2212 resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@@ -4120,52 +2217,12 @@ packages:
4120 supports-color: 5.5.0 2217 supports-color: 5.5.0
4121 dev: true 2218 dev: true
4122 2219
4123 /chalk@3.0.0:
4124 resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
4125 engines: {node: '>=8'}
4126 dependencies:
4127 ansi-styles: 4.3.0
4128 supports-color: 7.2.0
4129 dev: true
4130
4131 /chalk@4.1.2: 2220 /chalk@4.1.2:
4132 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 2221 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
4133 engines: {node: '>=10'} 2222 engines: {node: '>=10'}
4134 dependencies: 2223 dependencies:
4135 ansi-styles: 4.3.0 2224 ansi-styles: 4.3.0
4136 supports-color: 7.2.0 2225 supports-color: 7.2.0
4137 dev: true
4138
4139 /chalk@5.3.0:
4140 resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
4141 engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
4142 dev: true
4143
4144 /change-case@4.1.2:
4145 resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==}
4146 dependencies:
4147 camel-case: 4.1.2
4148 capital-case: 1.0.4
4149 constant-case: 3.0.4
4150 dot-case: 3.0.4
4151 header-case: 2.0.4
4152 no-case: 3.0.4
4153 param-case: 3.0.4
4154 pascal-case: 3.1.2
4155 path-case: 3.0.4
4156 sentence-case: 3.0.4
4157 snake-case: 3.0.4
4158 tslib: 2.6.2
4159
4160 /charenc@0.0.2:
4161 resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
4162 dev: true
4163
4164 /check-error@1.0.3:
4165 resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
4166 dependencies:
4167 get-func-name: 2.0.2
4168 dev: true
4169 2226
4170 /chokidar@3.5.3: 2227 /chokidar@3.5.3:
4171 resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 2228 resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
@@ -4180,7 +2237,6 @@ packages:
4180 readdirp: 3.6.0 2237 readdirp: 3.6.0
4181 optionalDependencies: 2238 optionalDependencies:
4182 fsevents: 2.3.3 2239 fsevents: 2.3.3
4183 dev: true
4184 2240
4185 /chownr@1.1.4: 2241 /chownr@1.1.4:
4186 resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 2242 resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
@@ -4189,27 +2245,19 @@ packages:
4189 /chownr@2.0.0: 2245 /chownr@2.0.0:
4190 resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 2246 resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
4191 engines: {node: '>=10'} 2247 engines: {node: '>=10'}
4192 dev: false
4193 2248
4194 /chrome-trace-event@1.0.3: 2249 /ci-info@3.9.0:
4195 resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} 2250 resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
4196 engines: {node: '>=6.0'} 2251 engines: {node: '>=8'}
4197 dev: true 2252 dev: true
4198 2253
4199 /ci-info@3.8.0: 2254 /ci-info@4.0.0:
4200 resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} 2255 resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
4201 engines: {node: '>=8'} 2256 engines: {node: '>=8'}
4202 dev: true 2257 dev: true
4203 2258
4204 /class-utils@0.3.6: 2259 /classnames@2.5.1:
4205 resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} 2260 resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
4206 engines: {node: '>=0.10.0'}
4207 dependencies:
4208 arr-union: 3.1.0
4209 define-property: 0.2.5
4210 isobject: 3.0.1
4211 static-extend: 0.1.2
4212 dev: true
4213 2261
4214 /clean-regexp@1.0.0: 2262 /clean-regexp@1.0.0:
4215 resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 2263 resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
@@ -4221,26 +2269,25 @@ packages:
4221 /clean-stack@2.2.0: 2269 /clean-stack@2.2.0:
4222 resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 2270 resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
4223 engines: {node: '>=6'} 2271 engines: {node: '>=6'}
2272 requiresBuild: true
2273 dev: false
2274 optional: true
4224 2275
4225 /clean-webpack-plugin@4.0.0(webpack@5.88.2): 2276 /clean-stack@4.2.0:
4226 resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} 2277 resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==}
4227 engines: {node: '>=10.0.0'} 2278 engines: {node: '>=12'}
4228 peerDependencies:
4229 webpack: '>=4.0.0 <6.0.0'
4230 dependencies: 2279 dependencies:
4231 del: 4.1.1 2280 escape-string-regexp: 5.0.0
4232 webpack: 5.88.2(webpack-cli@5.1.4)
4233 dev: true
4234 2281
4235 /cli-boxes@3.0.0: 2282 /cli-boxes@3.0.0:
4236 resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 2283 resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
4237 engines: {node: '>=10'} 2284 engines: {node: '>=10'}
4238 2285
4239 /cli-cursor@3.1.0: 2286 /cli-cursor@4.0.0:
4240 resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 2287 resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
4241 engines: {node: '>=8'} 2288 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
4242 dependencies: 2289 dependencies:
4243 restore-cursor: 3.1.0 2290 restore-cursor: 4.0.0
4244 2291
4245 /cli-table3@0.6.3: 2292 /cli-table3@0.6.3:
4246 resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} 2293 resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==}
@@ -4250,45 +2297,19 @@ packages:
4250 optionalDependencies: 2297 optionalDependencies:
4251 '@colors/colors': 1.5.0 2298 '@colors/colors': 1.5.0
4252 2299
4253 /clone-deep@4.0.1: 2300 /cli-truncate@4.0.0:
4254 resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} 2301 resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
4255 engines: {node: '>=6'} 2302 engines: {node: '>=18'}
4256 dependencies:
4257 is-plain-object: 2.0.4
4258 kind-of: 6.0.3
4259 shallow-clone: 3.0.1
4260 dev: true
4261
4262 /clone-response@1.0.3:
4263 resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
4264 dependencies: 2303 dependencies:
4265 mimic-response: 1.0.1 2304 slice-ansi: 5.0.0
4266 dev: false 2305 string-width: 7.1.0
4267
4268 /clone@1.0.4:
4269 resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
4270 engines: {node: '>=0.8'}
4271 dev: true
4272
4273 /clone@2.1.2:
4274 resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
4275 engines: {node: '>=0.8'}
4276 dev: true
4277
4278 /co-compose@7.0.3:
4279 resolution: {integrity: sha512-ZHLSLzeBXe5yaEyIHo9T92uVrbsBRLMXlG0G4/pSm9f6148l4mJTr1cii8Jl9ce+mbLmW5XqHURPC7gZFJNeZA==}
4280 2306
4281 /code-block-writer@11.0.3: 2307 /code-block-writer@11.0.3:
4282 resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} 2308 resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==}
4283 dev: false 2309 dev: false
4284 2310
4285 /collection-visit@1.0.0: 2311 /code-block-writer@12.0.0:
4286 resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} 2312 resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==}
4287 engines: {node: '>=0.10.0'}
4288 dependencies:
4289 map-visit: 1.0.0
4290 object-visit: 1.0.1
4291 dev: true
4292 2313
4293 /color-convert@1.9.3: 2314 /color-convert@1.9.3:
4294 resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 2315 resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
@@ -4313,114 +2334,23 @@ packages:
4313 resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} 2334 resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
4314 hasBin: true 2335 hasBin: true
4315 2336
4316 /colord@2.9.3:
4317 resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
4318 dev: true
4319
4320 /colorette@2.0.19: 2337 /colorette@2.0.19:
4321 resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} 2338 resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==}
4322 dev: false 2339 dev: false
4323 2340
4324 /colorette@2.0.20:
4325 resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
4326
4327 /columnify@1.6.0:
4328 resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==}
4329 engines: {node: '>=8.0.0'}
4330 dependencies:
4331 strip-ansi: 6.0.1
4332 wcwidth: 1.0.1
4333 dev: true
4334
4335 /combined-stream@1.0.8:
4336 resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
4337 engines: {node: '>= 0.8'}
4338 dependencies:
4339 delayed-stream: 1.0.0
4340 dev: true
4341
4342 /commander@10.0.1: 2341 /commander@10.0.1:
4343 resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} 2342 resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
4344 engines: {node: '>=14'} 2343 engines: {node: '>=14'}
2344 dev: false
4345 2345
4346 /commander@2.20.3: 2346 /common-path-prefix@3.0.0:
4347 resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 2347 resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
4348 dev: true
4349
4350 /commander@7.2.0:
4351 resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
4352 engines: {node: '>= 10'}
4353 dev: true
4354
4355 /commander@9.5.0:
4356 resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
4357 engines: {node: ^12.20.0 || >=14}
4358 requiresBuild: true
4359 dev: true
4360 optional: true
4361
4362 /comment-json@2.4.2:
4363 resolution: {integrity: sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==}
4364 engines: {node: '>= 6'}
4365 dependencies:
4366 core-util-is: 1.0.3
4367 esprima: 4.0.1
4368 has-own-prop: 2.0.0
4369 repeat-string: 1.6.1
4370 dev: true
4371
4372 /commondir@1.0.1:
4373 resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
4374 dev: true
4375
4376 /component-emitter@1.3.0:
4377 resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
4378 dev: true
4379
4380 /compressible@2.0.18:
4381 resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
4382 engines: {node: '>= 0.6'}
4383 dependencies:
4384 mime-db: 1.52.0
4385 dev: true
4386
4387 /compression@1.7.4:
4388 resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
4389 engines: {node: '>= 0.8.0'}
4390 dependencies:
4391 accepts: 1.3.8
4392 bytes: 3.0.0
4393 compressible: 2.0.18
4394 debug: 2.6.9
4395 on-headers: 1.0.2
4396 safe-buffer: 5.1.2
4397 vary: 1.1.2
4398 transitivePeerDependencies:
4399 - supports-color
4400 dev: true
4401 2348
4402 /concat-map@0.0.1: 2349 /concat-map@0.0.1:
4403 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 2350 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
4404 2351
4405 /connect-history-api-fallback@2.0.0:
4406 resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
4407 engines: {node: '>=0.8'}
4408 dev: true
4409
4410 /consola@2.15.3:
4411 resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
4412 dev: true
4413
4414 /console-control-strings@1.1.0: 2352 /console-control-strings@1.1.0:
4415 resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} 2353 resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
4416 dev: false
4417
4418 /constant-case@3.0.4:
4419 resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
4420 dependencies:
4421 no-case: 3.0.4
4422 tslib: 2.6.2
4423 upper-case: 2.0.2
4424 2354
4425 /content-disposition@0.5.4: 2355 /content-disposition@0.5.4:
4426 resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 2356 resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
@@ -4428,85 +2358,48 @@ packages:
4428 dependencies: 2358 dependencies:
4429 safe-buffer: 5.2.1 2359 safe-buffer: 5.2.1
4430 2360
4431 /content-type@1.0.5: 2361 /convert-hrtime@5.0.0:
4432 resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 2362 resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==}
4433 engines: {node: '>= 0.6'} 2363 engines: {node: '>=12'}
4434 dev: true
4435
4436 /convert-hrtime@3.0.0:
4437 resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==}
4438 engines: {node: '>=8'}
4439 dev: true
4440
4441 /convert-source-map@1.9.0:
4442 resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
4443 dev: true
4444
4445 /convert-source-map@2.0.0:
4446 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
4447 dev: true
4448
4449 /cookie-signature@1.0.6:
4450 resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
4451 dev: true
4452 2364
4453 /cookie@0.5.0: 2365 /cookie@0.5.0:
4454 resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 2366 resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
4455 engines: {node: '>= 0.6'} 2367 engines: {node: '>= 0.6'}
4456 2368
4457 /cookiejar@2.1.4: 2369 /cookie@0.6.0:
4458 resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} 2370 resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
4459 dev: true 2371 engines: {node: '>= 0.6'}
4460 2372
4461 /copy-descriptor@0.1.1: 2373 /copy-file@11.0.0:
4462 resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} 2374 resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==}
4463 engines: {node: '>=0.10.0'} 2375 engines: {node: '>=18'}
4464 dev: true 2376 dependencies:
2377 graceful-fs: 4.2.11
2378 p-event: 6.0.0
4465 2379
4466 /core-js-compat@3.32.2: 2380 /core-js-compat@3.35.1:
4467 resolution: {integrity: sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==} 2381 resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==}
4468 dependencies: 2382 dependencies:
4469 browserslist: 4.22.1 2383 browserslist: 4.22.3
4470 dev: true 2384 dev: true
4471 2385
4472 /core-util-is@1.0.3: 2386 /core-util-is@1.0.3:
4473 resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 2387 resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
2388 dev: false
4474 2389
4475 /cp-file@7.0.0: 2390 /cpy@11.0.0:
4476 resolution: {integrity: sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==} 2391 resolution: {integrity: sha512-vA71mFQyIxCrqvP/9JBLCj05UJV/+WpvAxZK2/EiK5ndD090cjuChfJ3ExVVuZXHoTJ/3HLedOPYDWyxnNHjrg==}
4477 engines: {node: '>=8'} 2392 engines: {node: '>=18'}
4478 dependencies:
4479 graceful-fs: 4.2.11
4480 make-dir: 3.1.0
4481 nested-error-stacks: 2.1.1
4482 p-event: 4.2.0
4483 dev: true
4484
4485 /cp-file@9.1.0:
4486 resolution: {integrity: sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==}
4487 engines: {node: '>=10'}
4488 dependencies: 2393 dependencies:
4489 graceful-fs: 4.2.11 2394 copy-file: 11.0.0
4490 make-dir: 3.1.0 2395 globby: 13.2.2
4491 nested-error-stacks: 2.1.1 2396 junk: 4.0.1
4492 p-event: 4.2.0 2397 micromatch: 4.0.5
4493 dev: true 2398 p-filter: 3.0.0
2399 p-map: 6.0.0
4494 2400
4495 /cpy@8.1.2: 2401 /create-require@1.1.1:
4496 resolution: {integrity: sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==} 2402 resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
4497 engines: {node: '>=8'}
4498 dependencies:
4499 arrify: 2.0.1
4500 cp-file: 7.0.0
4501 globby: 9.2.0
4502 has-glob: 1.0.0
4503 junk: 3.1.0
4504 nested-error-stacks: 2.1.1
4505 p-all: 2.1.0
4506 p-filter: 2.1.0
4507 p-map: 3.0.0
4508 transitivePeerDependencies:
4509 - supports-color
4510 dev: true 2403 dev: true
4511 2404
4512 /cross-env@7.0.3: 2405 /cross-env@7.0.3:
@@ -4524,11 +2417,6 @@ packages:
4524 path-key: 3.1.1 2417 path-key: 3.1.1
4525 shebang-command: 2.0.0 2418 shebang-command: 2.0.0
4526 which: 2.0.2 2419 which: 2.0.2
4527 dev: true
4528
4529 /crypt@0.0.2:
4530 resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==}
4531 dev: true
4532 2420
4533 /csrf@3.1.0: 2421 /csrf@3.1.0:
4534 resolution: {integrity: sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==} 2422 resolution: {integrity: sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==}
@@ -4537,194 +2425,9 @@ packages:
4537 rndm: 1.2.0 2425 rndm: 1.2.0
4538 tsscmp: 1.0.6 2426 tsscmp: 1.0.6
4539 uid-safe: 2.1.5 2427 uid-safe: 2.1.5
4540 dev: false
4541
4542 /css-declaration-sorter@6.4.1(postcss@8.4.31):
4543 resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
4544 engines: {node: ^10 || ^12 || >=14}
4545 peerDependencies:
4546 postcss: ^8.0.9
4547 dependencies:
4548 postcss: 8.4.31
4549 dev: true
4550
4551 /css-loader@6.8.1(webpack@5.88.2):
4552 resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==}
4553 engines: {node: '>= 12.13.0'}
4554 peerDependencies:
4555 webpack: ^5.0.0
4556 dependencies:
4557 icss-utils: 5.1.0(postcss@8.4.31)
4558 postcss: 8.4.31
4559 postcss-modules-extract-imports: 3.0.0(postcss@8.4.31)
4560 postcss-modules-local-by-default: 4.0.3(postcss@8.4.31)
4561 postcss-modules-scope: 3.0.0(postcss@8.4.31)
4562 postcss-modules-values: 4.0.0(postcss@8.4.31)
4563 postcss-value-parser: 4.2.0
4564 semver: 7.5.4
4565 webpack: 5.88.2(webpack-cli@5.1.4)
4566 dev: true
4567
4568 /css-minimizer-webpack-plugin@5.0.1(webpack@5.88.2):
4569 resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==}
4570 engines: {node: '>= 14.15.0'}
4571 peerDependencies:
4572 '@parcel/css': '*'
4573 '@swc/css': '*'
4574 clean-css: '*'
4575 csso: '*'
4576 esbuild: '*'
4577 lightningcss: '*'
4578 webpack: ^5.0.0
4579 peerDependenciesMeta:
4580 '@parcel/css':
4581 optional: true
4582 '@swc/css':
4583 optional: true
4584 clean-css:
4585 optional: true
4586 csso:
4587 optional: true
4588 esbuild:
4589 optional: true
4590 lightningcss:
4591 optional: true
4592 dependencies:
4593 '@jridgewell/trace-mapping': 0.3.19
4594 cssnano: 6.0.1(postcss@8.4.31)
4595 jest-worker: 29.7.0
4596 postcss: 8.4.31
4597 schema-utils: 4.2.0
4598 serialize-javascript: 6.0.1
4599 webpack: 5.88.2(webpack-cli@5.1.4)
4600 dev: true
4601
4602 /css-select@4.3.0:
4603 resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
4604 dependencies:
4605 boolbase: 1.0.0
4606 css-what: 6.1.0
4607 domhandler: 4.3.1
4608 domutils: 2.8.0
4609 nth-check: 2.1.1
4610 dev: true
4611
4612 /css-select@5.1.0:
4613 resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
4614 dependencies:
4615 boolbase: 1.0.0
4616 css-what: 6.1.0
4617 domhandler: 5.0.3
4618 domutils: 3.1.0
4619 nth-check: 2.1.1
4620 dev: true
4621
4622 /css-tree@2.2.1:
4623 resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
4624 engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
4625 dependencies:
4626 mdn-data: 2.0.28
4627 source-map-js: 1.0.2
4628 dev: true
4629
4630 /css-tree@2.3.1:
4631 resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
4632 engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
4633 dependencies:
4634 mdn-data: 2.0.30
4635 source-map-js: 1.0.2
4636 dev: true
4637
4638 /css-what@6.1.0:
4639 resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
4640 engines: {node: '>= 6'}
4641 dev: true
4642
4643 /cssesc@3.0.0:
4644 resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
4645 engines: {node: '>=4'}
4646 hasBin: true
4647 dev: true
4648
4649 /cssnano-preset-default@6.0.1(postcss@8.4.31):
4650 resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==}
4651 engines: {node: ^14 || ^16 || >=18.0}
4652 peerDependencies:
4653 postcss: ^8.2.15
4654 dependencies:
4655 css-declaration-sorter: 6.4.1(postcss@8.4.31)
4656 cssnano-utils: 4.0.0(postcss@8.4.31)
4657 postcss: 8.4.31
4658 postcss-calc: 9.0.1(postcss@8.4.31)
4659 postcss-colormin: 6.0.0(postcss@8.4.31)
4660 postcss-convert-values: 6.0.0(postcss@8.4.31)
4661 postcss-discard-comments: 6.0.0(postcss@8.4.31)
4662 postcss-discard-duplicates: 6.0.0(postcss@8.4.31)
4663 postcss-discard-empty: 6.0.0(postcss@8.4.31)
4664 postcss-discard-overridden: 6.0.0(postcss@8.4.31)
4665 postcss-merge-longhand: 6.0.0(postcss@8.4.31)
4666 postcss-merge-rules: 6.0.1(postcss@8.4.31)
4667 postcss-minify-font-values: 6.0.0(postcss@8.4.31)
4668 postcss-minify-gradients: 6.0.0(postcss@8.4.31)
4669 postcss-minify-params: 6.0.0(postcss@8.4.31)
4670 postcss-minify-selectors: 6.0.0(postcss@8.4.31)
4671 postcss-normalize-charset: 6.0.0(postcss@8.4.31)
4672 postcss-normalize-display-values: 6.0.0(postcss@8.4.31)
4673 postcss-normalize-positions: 6.0.0(postcss@8.4.31)
4674 postcss-normalize-repeat-style: 6.0.0(postcss@8.4.31)
4675 postcss-normalize-string: 6.0.0(postcss@8.4.31)
4676 postcss-normalize-timing-functions: 6.0.0(postcss@8.4.31)
4677 postcss-normalize-unicode: 6.0.0(postcss@8.4.31)
4678 postcss-normalize-url: 6.0.0(postcss@8.4.31)
4679 postcss-normalize-whitespace: 6.0.0(postcss@8.4.31)
4680 postcss-ordered-values: 6.0.0(postcss@8.4.31)
4681 postcss-reduce-initial: 6.0.0(postcss@8.4.31)
4682 postcss-reduce-transforms: 6.0.0(postcss@8.4.31)
4683 postcss-svgo: 6.0.0(postcss@8.4.31)
4684 postcss-unique-selectors: 6.0.0(postcss@8.4.31)
4685 dev: true
4686
4687 /cssnano-utils@4.0.0(postcss@8.4.31):
4688 resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==}
4689 engines: {node: ^14 || ^16 || >=18.0}
4690 peerDependencies:
4691 postcss: ^8.2.15
4692 dependencies:
4693 postcss: 8.4.31
4694 dev: true
4695
4696 /cssnano@6.0.1(postcss@8.4.31):
4697 resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==}
4698 engines: {node: ^14 || ^16 || >=18.0}
4699 peerDependencies:
4700 postcss: ^8.2.15
4701 dependencies:
4702 cssnano-preset-default: 6.0.1(postcss@8.4.31)
4703 lilconfig: 2.1.0
4704 postcss: 8.4.31
4705 dev: true
4706
4707 /csso@5.0.5:
4708 resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
4709 engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
4710 dependencies:
4711 css-tree: 2.2.1
4712 dev: true
4713
4714 /cuid@2.1.8:
4715 resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==}
4716 deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.
4717
4718 /dag-map@1.0.2:
4719 resolution: {integrity: sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==}
4720 dev: true
4721 2428
4722 /data-uri-to-buffer@2.0.2: 2429 /data-uri-to-buffer@2.0.2:
4723 resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 2430 resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
4724 dev: true
4725
4726 /dateformat@4.6.3:
4727 resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
4728 2431
4729 /debug@2.6.9: 2432 /debug@2.6.9:
4730 resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 2433 resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
@@ -4735,6 +2438,7 @@ packages:
4735 optional: true 2438 optional: true
4736 dependencies: 2439 dependencies:
4737 ms: 2.0.0 2440 ms: 2.0.0
2441 dev: false
4738 2442
4739 /debug@3.2.7: 2443 /debug@3.2.7:
4740 resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 2444 resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
@@ -4758,15 +2462,6 @@ packages:
4758 dependencies: 2462 dependencies:
4759 ms: 2.1.2 2463 ms: 2.1.2
4760 2464
4761 /decimal.js@10.4.3:
4762 resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
4763 dev: true
4764
4765 /decode-uri-component@0.2.2:
4766 resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
4767 engines: {node: '>=0.10'}
4768 dev: true
4769
4770 /decompress-response@6.0.0: 2465 /decompress-response@6.0.0:
4771 resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 2466 resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
4772 engines: {node: '>=10'} 2467 engines: {node: '>=10'}
@@ -4774,134 +2469,51 @@ packages:
4774 mimic-response: 3.1.0 2469 mimic-response: 3.1.0
4775 dev: false 2470 dev: false
4776 2471
4777 /deep-eql@4.1.3: 2472 /dedent@1.5.1:
4778 resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 2473 resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
4779 engines: {node: '>=6'} 2474 peerDependencies:
4780 dependencies: 2475 babel-plugin-macros: ^3.1.0
4781 type-detect: 4.0.8 2476 peerDependenciesMeta:
4782 dev: true 2477 babel-plugin-macros:
2478 optional: true
4783 2479
4784 /deep-extend@0.6.0: 2480 /deep-extend@0.6.0:
4785 resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 2481 resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
4786 engines: {node: '>=4.0.0'} 2482 engines: {node: '>=4.0.0'}
4787 dev: true 2483 dev: false
4788 2484
4789 /deep-is@0.1.4: 2485 /deep-is@0.1.4:
4790 resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 2486 resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
4791 dev: true 2487 dev: true
4792 2488
4793 /default-browser-id@3.0.0:
4794 resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==}
4795 engines: {node: '>=12'}
4796 dependencies:
4797 bplist-parser: 0.2.0
4798 untildify: 4.0.0
4799 dev: true
4800
4801 /default-browser@4.0.0:
4802 resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==}
4803 engines: {node: '>=14.16'}
4804 dependencies:
4805 bundle-name: 3.0.0
4806 default-browser-id: 3.0.0
4807 execa: 7.2.0
4808 titleize: 3.0.0
4809 dev: true
4810
4811 /default-gateway@6.0.3:
4812 resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
4813 engines: {node: '>= 10'}
4814 dependencies:
4815 execa: 5.1.1
4816 dev: true
4817
4818 /defaults@1.0.4:
4819 resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
4820 dependencies:
4821 clone: 1.0.4
4822 dev: true
4823
4824 /defer-to-connect@2.0.1: 2489 /defer-to-connect@2.0.1:
4825 resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} 2490 resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
4826 engines: {node: '>=10'} 2491 engines: {node: '>=10'}
4827 dev: false 2492 dev: false
4828 2493
4829 /define-data-property@1.1.0: 2494 /define-data-property@1.1.1:
4830 resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} 2495 resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
4831 engines: {node: '>= 0.4'} 2496 engines: {node: '>= 0.4'}
4832 dependencies: 2497 dependencies:
4833 get-intrinsic: 1.2.1 2498 get-intrinsic: 1.2.2
4834 gopd: 1.0.1 2499 gopd: 1.0.1
4835 has-property-descriptors: 1.0.0 2500 has-property-descriptors: 1.0.1
4836 dev: true
4837
4838 /define-lazy-prop@2.0.0:
4839 resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
4840 engines: {node: '>=8'}
4841 dev: true
4842
4843 /define-lazy-prop@3.0.0:
4844 resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
4845 engines: {node: '>=12'}
4846 dev: true
4847 2501
4848 /define-properties@1.2.1: 2502 /define-properties@1.2.1:
4849 resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 2503 resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
4850 engines: {node: '>= 0.4'} 2504 engines: {node: '>= 0.4'}
4851 dependencies: 2505 dependencies:
4852 define-data-property: 1.1.0 2506 define-data-property: 1.1.1
4853 has-property-descriptors: 1.0.0 2507 has-property-descriptors: 1.0.1
4854 object-keys: 1.1.1 2508 object-keys: 1.1.1
4855 dev: true 2509 dev: true
4856 2510
4857 /define-property@0.2.5: 2511 /defu@6.1.4:
4858 resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} 2512 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
4859 engines: {node: '>=0.10.0'}
4860 dependencies:
4861 is-descriptor: 0.1.6
4862 dev: true
4863
4864 /define-property@1.0.0:
4865 resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
4866 engines: {node: '>=0.10.0'}
4867 dependencies:
4868 is-descriptor: 1.0.2
4869 dev: true
4870
4871 /define-property@2.0.2:
4872 resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
4873 engines: {node: '>=0.10.0'}
4874 dependencies:
4875 is-descriptor: 1.0.2
4876 isobject: 3.0.1
4877 dev: true
4878
4879 /del@4.1.1:
4880 resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==}
4881 engines: {node: '>=6'}
4882 dependencies:
4883 '@types/glob': 7.2.0
4884 globby: 6.1.0
4885 is-path-cwd: 2.2.0
4886 is-path-in-cwd: 2.1.0
4887 p-map: 2.1.0
4888 pify: 4.0.1
4889 rimraf: 2.7.1
4890 dev: true
4891
4892 /delayed-stream@1.0.0:
4893 resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
4894 engines: {node: '>=0.4.0'}
4895 dev: true 2513 dev: true
4896 2514
4897 /delegates@1.0.0: 2515 /delegates@1.0.0:
4898 resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} 2516 resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
4899 dev: false
4900
4901 /depd@1.1.2:
4902 resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
4903 engines: {node: '>= 0.6'}
4904 dev: true
4905 2517
4906 /depd@2.0.0: 2518 /depd@2.0.0:
4907 resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 2519 resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
@@ -4911,42 +2523,17 @@ packages:
4911 resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 2523 resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
4912 engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 2524 engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
4913 2525
4914 /detect-indent@6.1.0:
4915 resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
4916 engines: {node: '>=8'}
4917 dev: true
4918
4919 /detect-libc@2.0.2: 2526 /detect-libc@2.0.2:
4920 resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} 2527 resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
4921 engines: {node: '>=8'} 2528 engines: {node: '>=8'}
4922 dev: false
4923
4924 /detect-node@2.1.0:
4925 resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
4926 dev: true
4927
4928 /dezalgo@1.0.4:
4929 resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==}
4930 dependencies:
4931 asap: 2.0.6
4932 wrappy: 1.0.2
4933 dev: true
4934
4935 /diff-sequences@25.2.6:
4936 resolution: {integrity: sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==}
4937 engines: {node: '>= 8.3'}
4938 dev: true
4939 2529
4940 /diff-sequences@29.6.3: 2530 /diff-sequences@29.6.3:
4941 resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 2531 resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
4942 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 2532 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
4943 dev: true
4944 2533
4945 /dir-glob@2.2.2: 2534 /diff@4.0.2:
4946 resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} 2535 resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
4947 engines: {node: '>=4'} 2536 engines: {node: '>=0.3.1'}
4948 dependencies:
4949 path-type: 3.0.0
4950 dev: true 2537 dev: true
4951 2538
4952 /dir-glob@3.0.1: 2539 /dir-glob@3.0.1:
@@ -4954,18 +2541,6 @@ packages:
4954 engines: {node: '>=8'} 2541 engines: {node: '>=8'}
4955 dependencies: 2542 dependencies:
4956 path-type: 4.0.0 2543 path-type: 4.0.0
4957 dev: true
4958
4959 /dns-equal@1.0.0:
4960 resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==}
4961 dev: true
4962
4963 /dns-packet@5.6.1:
4964 resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
4965 engines: {node: '>=6'}
4966 dependencies:
4967 '@leichtgewicht/ip-codec': 2.0.4
4968 dev: true
4969 2544
4970 /doctrine@2.1.0: 2545 /doctrine@2.1.0:
4971 resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 2546 resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
@@ -4981,150 +2556,64 @@ packages:
4981 esutils: 2.0.3 2556 esutils: 2.0.3
4982 dev: true 2557 dev: true
4983 2558
4984 /dom-converter@0.2.0: 2559 /dotenv@16.4.1:
4985 resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} 2560 resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==}
4986 dependencies:
4987 utila: 0.4.0
4988 dev: true
4989
4990 /dom-serializer@1.4.1:
4991 resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
4992 dependencies:
4993 domelementtype: 2.3.0
4994 domhandler: 4.3.1
4995 entities: 2.2.0
4996 dev: true
4997
4998 /dom-serializer@2.0.0:
4999 resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
5000 dependencies:
5001 domelementtype: 2.3.0
5002 domhandler: 5.0.3
5003 entities: 4.5.0
5004 dev: true
5005
5006 /domelementtype@2.3.0:
5007 resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
5008 dev: true
5009
5010 /domhandler@4.3.1:
5011 resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
5012 engines: {node: '>= 4'}
5013 dependencies:
5014 domelementtype: 2.3.0
5015 dev: true
5016
5017 /domhandler@5.0.3:
5018 resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
5019 engines: {node: '>= 4'}
5020 dependencies:
5021 domelementtype: 2.3.0
5022 dev: true
5023
5024 /domutils@2.8.0:
5025 resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
5026 dependencies:
5027 dom-serializer: 1.4.1
5028 domelementtype: 2.3.0
5029 domhandler: 4.3.1
5030 dev: true
5031
5032 /domutils@3.1.0:
5033 resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
5034 dependencies:
5035 dom-serializer: 2.0.0
5036 domelementtype: 2.3.0
5037 domhandler: 5.0.3
5038 dev: true
5039
5040 /dot-case@3.0.4:
5041 resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
5042 dependencies:
5043 no-case: 3.0.4
5044 tslib: 2.6.2
5045
5046 /dotenv@16.3.1:
5047 resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
5048 engines: {node: '>=12'} 2561 engines: {node: '>=12'}
5049 2562
5050 /edge-error@2.0.8: 2563 /edge-error@4.0.1:
5051 resolution: {integrity: sha512-ORKH7rn/LEfgo0qrgoMMwFPfestNFvTO+dRLDmS+zgulhd9BVXfv/p+V6K3OyEeu2L0ysYp/71uHB31GIDe68A==} 2564 resolution: {integrity: sha512-z5mNO97k8hRVpJ6Ew1qbkMTfQ44CwuWnl+ShMCrEFgD+b324CnjBS6HbiR+Wh6Wcmw9C+/XsFBHzZ+376PpD/w==}
5052 dev: false 2565 engines: {node: '>=18.16.0'}
5053 2566
5054 /edge-error@3.0.0: 2567 /edge-lexer@6.0.1:
5055 resolution: {integrity: sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==} 2568 resolution: {integrity: sha512-iYPlo+EyERGL4cICzqXIYVxMB6sSOXazpAqkqN4YcLtwR7K1i1KcwNkSy36T40BYvP7UjjjjAVnz+fk3NEWH9Q==}
5056 dev: false 2569 engines: {node: '>=18.16.0'}
5057
5058 /edge-lexer@5.0.2:
5059 resolution: {integrity: sha512-MSpv6JRPD96eZl0uPo8gIvE9cPAXb1eNRfZKlQpFYJ2O8cNdZDpN8RvT2zpu4XqC63HWs/c938qc3dWN+GJhFw==}
5060 dependencies: 2570 dependencies:
5061 edge-error: 3.0.0 2571 edge-error: 4.0.1
5062 dev: false
5063 2572
5064 /edge-parser@8.2.2: 2573 /edge-parser@9.0.1:
5065 resolution: {integrity: sha512-48iOLaOD4PAxIU0jnLRNXUL8G6ktO79bA4adOGXzNHg2M+mHfudFI7QPdF6IO8gW0NC1N0TPvwLWK3FVkE9bLQ==} 2574 resolution: {integrity: sha512-E6N8GRlI6gnVDpy1VmxZzY+zhB24cmjb0jrLbeXATBX+GM8XntFybQERMfCrt4wkV1LRTpKZ8F6gzupRxAo9zQ==}
2575 engines: {node: '>=18.16.0'}
5066 dependencies: 2576 dependencies:
5067 acorn: 8.10.0 2577 acorn: 8.11.3
5068 astring: 1.8.6 2578 astring: 1.8.6
5069 edge-error: 3.0.0 2579 edge-error: 4.0.1
5070 edge-lexer: 5.0.2 2580 edge-lexer: 6.0.1
5071 js-stringify: 1.0.2 2581 js-stringify: 1.0.2
5072 dev: false
5073
5074 /edge-supercharged@3.1.1:
5075 resolution: {integrity: sha512-Pxgst3UeR+0PWuTIG2QHuFgFe73TMoVMphRsa/bOmIvOkQ87cD7+VxiS9ph2KbA4djJ2ChbdgtbNiIvju5yXEw==}
5076 dependencies:
5077 '@poppinss/utils': 3.3.1
5078 slash: 3.0.0
5079 dev: false
5080 2582
5081 /edge.js@5.5.1: 2583 /edge.js@6.0.1:
5082 resolution: {integrity: sha512-lAhEdj1tW2VOJsP5X38wSHjjaXXwoteZ+8PDAJ50rAKzBxpw4QsdXK2jVzMFgRoTMUf7C+x+Tp51R9yxGTLO0w==} 2584 resolution: {integrity: sha512-htTUs7szn0LlAUi7yvczfUIZuIBNgaWyOc/OQsekHQeD8zKqSTPI9PWbCSHwwXqYWoKZxxc0O+uzcB+5kT/9ow==}
2585 engines: {node: '>=18.16.0'}
5083 dependencies: 2586 dependencies:
5084 '@poppinss/inspect': 1.0.1 2587 '@poppinss/inspect': 1.0.1
5085 '@poppinss/utils': 5.0.0 2588 '@poppinss/macroable': 1.0.1
5086 edge-error: 3.0.0 2589 '@poppinss/utils': 6.7.2
5087 edge-lexer: 5.0.2 2590 classnames: 2.5.1
5088 edge-parser: 8.2.2 2591 edge-error: 4.0.1
2592 edge-lexer: 6.0.1
2593 edge-parser: 9.0.1
2594 fs-readdir-recursive: 1.1.0
2595 he: 1.2.0
5089 js-stringify: 1.0.2 2596 js-stringify: 1.0.2
5090 macroable: 7.0.2 2597 property-information: 6.4.1
5091 stringify-attributes: 2.0.0 2598 stringify-attributes: 4.0.0
5092 dev: false
5093
5094 /editorconfig@0.15.3:
5095 resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==}
5096 hasBin: true
5097 dependencies:
5098 commander: 2.20.3
5099 lru-cache: 4.1.5
5100 semver: 5.7.2
5101 sigmund: 1.0.1
5102 dev: true
5103 2599
5104 /ee-first@1.1.1: 2600 /ee-first@1.1.1:
5105 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 2601 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
5106 2602
5107 /electron-to-chromium@1.4.537: 2603 /electron-to-chromium@1.4.665:
5108 resolution: {integrity: sha512-W1+g9qs9hviII0HAwOdehGYkr+zt7KKdmCcJcjH0mYg6oL8+ioT3Skjmt7BLoAQqXhjf40AXd+HlR4oAWMlXjA==} 2604 resolution: {integrity: sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==}
5109 dev: true 2605 dev: true
5110 2606
5111 /emittery@0.10.2: 2607 /emittery@1.0.2:
5112 resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} 2608 resolution: {integrity: sha512-PqHdP6JJrxiSXQzCAzII77dVsfyGWu+7V0ghqkaCej2shF1cnIPeFE9kKZcVTqvBjrRMDVOdNXKEYcjxkznS1g==}
5113 engines: {node: '>=12'} 2609 engines: {node: '>=14.16'}
5114 2610
5115 /emittery@0.13.1: 2611 /emoji-regex@10.3.0:
5116 resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} 2612 resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
5117 engines: {node: '>=12'}
5118 dev: true
5119 2613
5120 /emoji-regex@8.0.0: 2614 /emoji-regex@8.0.0:
5121 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 2615 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
5122 2616
5123 /emojis-list@3.0.0:
5124 resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
5125 engines: {node: '>= 4'}
5126 dev: true
5127
5128 /encodeurl@1.0.2: 2617 /encodeurl@1.0.2:
5129 resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 2618 resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
5130 engines: {node: '>= 0.8'} 2619 engines: {node: '>= 0.8'}
@@ -5141,14 +2630,7 @@ packages:
5141 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 2630 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
5142 dependencies: 2631 dependencies:
5143 once: 1.4.0 2632 once: 1.4.0
5144 2633 dev: false
5145 /enhanced-resolve@5.15.0:
5146 resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
5147 engines: {node: '>=10.13.0'}
5148 dependencies:
5149 graceful-fs: 4.2.11
5150 tapable: 2.2.1
5151 dev: true
5152 2634
5153 /enquirer@2.4.1: 2635 /enquirer@2.4.1:
5154 resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 2636 resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
@@ -5157,15 +2639,6 @@ packages:
5157 ansi-colors: 4.1.3 2639 ansi-colors: 4.1.3
5158 strip-ansi: 6.0.1 2640 strip-ansi: 6.0.1
5159 2641
5160 /entities@2.2.0:
5161 resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
5162 dev: true
5163
5164 /entities@4.5.0:
5165 resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
5166 engines: {node: '>=0.12'}
5167 dev: true
5168
5169 /env-paths@2.2.1: 2642 /env-paths@2.2.1:
5170 resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} 2643 resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
5171 engines: {node: '>=6'} 2644 engines: {node: '>=6'}
@@ -5173,12 +2646,6 @@ packages:
5173 dev: false 2646 dev: false
5174 optional: true 2647 optional: true
5175 2648
5176 /envinfo@7.10.0:
5177 resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==}
5178 engines: {node: '>=4'}
5179 hasBin: true
5180 dev: true
5181
5182 /err-code@2.0.3: 2649 /err-code@2.0.3:
5183 resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} 2650 resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
5184 requiresBuild: true 2651 requiresBuild: true
@@ -5191,32 +2658,26 @@ packages:
5191 is-arrayish: 0.2.1 2658 is-arrayish: 0.2.1
5192 dev: true 2659 dev: true
5193 2660
5194 /error-stack-parser@2.1.4: 2661 /es-abstract@1.22.3:
5195 resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} 2662 resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
5196 dependencies:
5197 stackframe: 1.3.4
5198 dev: true
5199
5200 /es-abstract@1.22.2:
5201 resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
5202 engines: {node: '>= 0.4'} 2663 engines: {node: '>= 0.4'}
5203 dependencies: 2664 dependencies:
5204 array-buffer-byte-length: 1.0.0 2665 array-buffer-byte-length: 1.0.0
5205 arraybuffer.prototype.slice: 1.0.2 2666 arraybuffer.prototype.slice: 1.0.2
5206 available-typed-arrays: 1.0.5 2667 available-typed-arrays: 1.0.5
5207 call-bind: 1.0.2 2668 call-bind: 1.0.5
5208 es-set-tostringtag: 2.0.1 2669 es-set-tostringtag: 2.0.2
5209 es-to-primitive: 1.2.1 2670 es-to-primitive: 1.2.1
5210 function.prototype.name: 1.1.6 2671 function.prototype.name: 1.1.6
5211 get-intrinsic: 1.2.1 2672 get-intrinsic: 1.2.2
5212 get-symbol-description: 1.0.0 2673 get-symbol-description: 1.0.0
5213 globalthis: 1.0.3 2674 globalthis: 1.0.3
5214 gopd: 1.0.1 2675 gopd: 1.0.1
5215 has: 1.0.3 2676 has-property-descriptors: 1.0.1
5216 has-property-descriptors: 1.0.0
5217 has-proto: 1.0.1 2677 has-proto: 1.0.1
5218 has-symbols: 1.0.3 2678 has-symbols: 1.0.3
5219 internal-slot: 1.0.5 2679 hasown: 2.0.0
2680 internal-slot: 1.0.6
5220 is-array-buffer: 3.0.2 2681 is-array-buffer: 3.0.2
5221 is-callable: 1.2.7 2682 is-callable: 1.2.7
5222 is-negative-zero: 2.0.2 2683 is-negative-zero: 2.0.2
@@ -5225,12 +2686,12 @@ packages:
5225 is-string: 1.0.7 2686 is-string: 1.0.7
5226 is-typed-array: 1.1.12 2687 is-typed-array: 1.1.12
5227 is-weakref: 1.0.2 2688 is-weakref: 1.0.2
5228 object-inspect: 1.12.3 2689 object-inspect: 1.13.1
5229 object-keys: 1.1.1 2690 object-keys: 1.1.1
5230 object.assign: 4.1.4 2691 object.assign: 4.1.5
5231 regexp.prototype.flags: 1.5.1 2692 regexp.prototype.flags: 1.5.1
5232 safe-array-concat: 1.0.1 2693 safe-array-concat: 1.1.0
5233 safe-regex-test: 1.0.0 2694 safe-regex-test: 1.0.2
5234 string.prototype.trim: 1.2.8 2695 string.prototype.trim: 1.2.8
5235 string.prototype.trimend: 1.0.7 2696 string.prototype.trimend: 1.0.7
5236 string.prototype.trimstart: 1.0.7 2697 string.prototype.trimstart: 1.0.7
@@ -5239,30 +2700,25 @@ packages:
5239 typed-array-byte-offset: 1.0.0 2700 typed-array-byte-offset: 1.0.0
5240 typed-array-length: 1.0.4 2701 typed-array-length: 1.0.4
5241 unbox-primitive: 1.0.2 2702 unbox-primitive: 1.0.2
5242 which-typed-array: 1.1.11 2703 which-typed-array: 1.1.13
5243 dev: true 2704 dev: true
5244 2705
5245 /es-module-lexer@0.3.26: 2706 /es-module-lexer@1.4.1:
5246 resolution: {integrity: sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==} 2707 resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
5247 dev: false
5248
5249 /es-module-lexer@1.3.1:
5250 resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==}
5251 dev: true
5252 2708
5253 /es-set-tostringtag@2.0.1: 2709 /es-set-tostringtag@2.0.2:
5254 resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 2710 resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
5255 engines: {node: '>= 0.4'} 2711 engines: {node: '>= 0.4'}
5256 dependencies: 2712 dependencies:
5257 get-intrinsic: 1.2.1 2713 get-intrinsic: 1.2.2
5258 has: 1.0.3
5259 has-tostringtag: 1.0.0 2714 has-tostringtag: 1.0.0
2715 hasown: 2.0.0
5260 dev: true 2716 dev: true
5261 2717
5262 /es-shim-unscopables@1.0.0: 2718 /es-shim-unscopables@1.0.2:
5263 resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 2719 resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
5264 dependencies: 2720 dependencies:
5265 has: 1.0.3 2721 hasown: 2.0.0
5266 dev: true 2722 dev: true
5267 2723
5268 /es-to-primitive@1.2.1: 2724 /es-to-primitive@1.2.1:
@@ -5274,16 +2730,48 @@ packages:
5274 is-symbol: 1.0.4 2730 is-symbol: 1.0.4
5275 dev: true 2731 dev: true
5276 2732
5277 /escalade@3.1.1: 2733 /esbuild@0.19.12:
5278 resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 2734 resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
2735 engines: {node: '>=12'}
2736 hasBin: true
2737 requiresBuild: true
2738 optionalDependencies:
2739 '@esbuild/aix-ppc64': 0.19.12
2740 '@esbuild/android-arm': 0.19.12
2741 '@esbuild/android-arm64': 0.19.12
2742 '@esbuild/android-x64': 0.19.12
2743 '@esbuild/darwin-arm64': 0.19.12
2744 '@esbuild/darwin-x64': 0.19.12
2745 '@esbuild/freebsd-arm64': 0.19.12
2746 '@esbuild/freebsd-x64': 0.19.12
2747 '@esbuild/linux-arm': 0.19.12
2748 '@esbuild/linux-arm64': 0.19.12
2749 '@esbuild/linux-ia32': 0.19.12
2750 '@esbuild/linux-loong64': 0.19.12
2751 '@esbuild/linux-mips64el': 0.19.12
2752 '@esbuild/linux-ppc64': 0.19.12
2753 '@esbuild/linux-riscv64': 0.19.12
2754 '@esbuild/linux-s390x': 0.19.12
2755 '@esbuild/linux-x64': 0.19.12
2756 '@esbuild/netbsd-x64': 0.19.12
2757 '@esbuild/openbsd-x64': 0.19.12
2758 '@esbuild/sunos-x64': 0.19.12
2759 '@esbuild/win32-arm64': 0.19.12
2760 '@esbuild/win32-ia32': 0.19.12
2761 '@esbuild/win32-x64': 0.19.12
2762 dev: true
2763
2764 /escalade@3.1.2:
2765 resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
5279 engines: {node: '>=6'} 2766 engines: {node: '>=6'}
5280 2767
5281 /escape-goat@2.1.1: 2768 /escape-goat@4.0.0:
5282 resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} 2769 resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
5283 engines: {node: '>=8'} 2770 engines: {node: '>=12'}
5284 2771
5285 /escape-html@1.0.3: 2772 /escape-html@1.0.3:
5286 resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 2773 resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
2774 dev: false
5287 2775
5288 /escape-string-regexp@1.0.5: 2776 /escape-string-regexp@1.0.5:
5289 resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 2777 resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
@@ -5295,26 +2783,40 @@ packages:
5295 engines: {node: '>=10'} 2783 engines: {node: '>=10'}
5296 dev: true 2784 dev: true
5297 2785
5298 /eslint-config-prettier@8.9.0(eslint@8.46.0): 2786 /escape-string-regexp@5.0.0:
5299 resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} 2787 resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
2788 engines: {node: '>=12'}
2789
2790 /eslint-compat-utils@0.4.1(eslint@8.56.0):
2791 resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==}
2792 engines: {node: '>=12'}
2793 peerDependencies:
2794 eslint: '>=6.0.0'
2795 dependencies:
2796 eslint: 8.56.0
2797 semver: 7.6.0
2798 dev: true
2799
2800 /eslint-config-prettier@8.10.0(eslint@8.56.0):
2801 resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
5300 hasBin: true 2802 hasBin: true
5301 peerDependencies: 2803 peerDependencies:
5302 eslint: '>=7.0.0' 2804 eslint: '>=7.0.0'
5303 dependencies: 2805 dependencies:
5304 eslint: 8.46.0 2806 eslint: 8.56.0
5305 dev: true 2807 dev: true
5306 2808
5307 /eslint-import-resolver-node@0.3.9: 2809 /eslint-import-resolver-node@0.3.9:
5308 resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 2810 resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
5309 dependencies: 2811 dependencies:
5310 debug: 3.2.7 2812 debug: 3.2.7
5311 is-core-module: 2.13.0 2813 is-core-module: 2.13.1
5312 resolve: 1.22.6 2814 resolve: 1.22.8
5313 transitivePeerDependencies: 2815 transitivePeerDependencies:
5314 - supports-color 2816 - supports-color
5315 dev: true 2817 dev: true
5316 2818
5317 /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.46.0): 2819 /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
5318 resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 2820 resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
5319 engines: {node: '>=4'} 2821 engines: {node: '>=4'}
5320 peerDependencies: 2822 peerDependencies:
@@ -5335,30 +2837,16 @@ packages:
5335 eslint-import-resolver-webpack: 2837 eslint-import-resolver-webpack:
5336 optional: true 2838 optional: true
5337 dependencies: 2839 dependencies:
5338 '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) 2840 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
5339 debug: 3.2.7 2841 debug: 3.2.7
5340 eslint: 8.46.0 2842 eslint: 8.56.0
5341 eslint-import-resolver-node: 0.3.9 2843 eslint-import-resolver-node: 0.3.9
5342 transitivePeerDependencies: 2844 transitivePeerDependencies:
5343 - supports-color 2845 - supports-color
5344 dev: true 2846 dev: true
5345 2847
5346 /eslint-plugin-adonis@2.1.1(eslint@8.46.0)(typescript@5.1.6): 2848 /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0):
5347 resolution: {integrity: sha512-iC3eZXofK4q+KOGypiquT74amCpeqW+5K5WZ7pezUvrXgmFkZMn7MSQjAg44KVzq6pQdXFuRNlnS+ijcwx0AMw==} 2849 resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
5348 engines: {node: '>=10.0.0'}
5349 peerDependencies:
5350 eslint: ^8.0.0
5351 dependencies:
5352 '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6)
5353 '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
5354 eslint: 8.46.0
5355 transitivePeerDependencies:
5356 - supports-color
5357 - typescript
5358 dev: true
5359
5360 /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.0)(eslint@8.46.0):
5361 resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==}
5362 engines: {node: '>=4'} 2850 engines: {node: '>=4'}
5363 peerDependencies: 2851 peerDependencies:
5364 '@typescript-eslint/parser': '*' 2852 '@typescript-eslint/parser': '*'
@@ -5367,34 +2855,49 @@ packages:
5367 '@typescript-eslint/parser': 2855 '@typescript-eslint/parser':
5368 optional: true 2856 optional: true
5369 dependencies: 2857 dependencies:
5370 '@typescript-eslint/parser': 6.2.0(eslint@8.46.0)(typescript@5.1.6) 2858 '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
5371 array-includes: 3.1.7 2859 array-includes: 3.1.7
5372 array.prototype.findlastindex: 1.2.3 2860 array.prototype.findlastindex: 1.2.3
5373 array.prototype.flat: 1.3.2 2861 array.prototype.flat: 1.3.2
5374 array.prototype.flatmap: 1.3.2 2862 array.prototype.flatmap: 1.3.2
5375 debug: 3.2.7 2863 debug: 3.2.7
5376 doctrine: 2.1.0 2864 doctrine: 2.1.0
5377 eslint: 8.46.0 2865 eslint: 8.56.0
5378 eslint-import-resolver-node: 0.3.9 2866 eslint-import-resolver-node: 0.3.9
5379 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.9)(eslint@8.46.0) 2867 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
5380 has: 1.0.3 2868 hasown: 2.0.0
5381 is-core-module: 2.13.0 2869 is-core-module: 2.13.1
5382 is-glob: 4.0.3 2870 is-glob: 4.0.3
5383 minimatch: 3.1.2 2871 minimatch: 3.1.2
5384 object.fromentries: 2.0.7 2872 object.fromentries: 2.0.7
5385 object.groupby: 1.0.1 2873 object.groupby: 1.0.1
5386 object.values: 1.1.7 2874 object.values: 1.1.7
5387 resolve: 1.22.6
5388 semver: 6.3.1 2875 semver: 6.3.1
5389 tsconfig-paths: 3.14.2 2876 tsconfig-paths: 3.15.0
5390 transitivePeerDependencies: 2877 transitivePeerDependencies:
5391 - eslint-import-resolver-typescript 2878 - eslint-import-resolver-typescript
5392 - eslint-import-resolver-webpack 2879 - eslint-import-resolver-webpack
5393 - supports-color 2880 - supports-color
5394 dev: true 2881 dev: true
5395 2882
5396 /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.46.0)(prettier@3.0.0): 2883 /eslint-plugin-jsonc@2.13.0(eslint@8.56.0):
5397 resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} 2884 resolution: {integrity: sha512-2wWdJfpO/UbZzPDABuUVvlUQjfMJa2p2iQfYt/oWxOMpXCcjuiMUSaA02gtY/Dbu82vpaSqc+O7Xq6ECHwtIxA==}
2885 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2886 peerDependencies:
2887 eslint: '>=6.0.0'
2888 dependencies:
2889 '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
2890 eslint: 8.56.0
2891 eslint-compat-utils: 0.4.1(eslint@8.56.0)
2892 espree: 9.6.1
2893 graphemer: 1.4.0
2894 jsonc-eslint-parser: 2.4.0
2895 natural-compare: 1.4.0
2896 synckit: 0.6.2
2897 dev: true
2898
2899 /eslint-plugin-prettier@5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.5):
2900 resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==}
5398 engines: {node: ^14.18.0 || >=16.0.0} 2901 engines: {node: ^14.18.0 || >=16.0.0}
5399 peerDependencies: 2902 peerDependencies:
5400 '@types/eslint': '>=8.0.0' 2903 '@types/eslint': '>=8.0.0'
@@ -5407,24 +2910,24 @@ packages:
5407 eslint-config-prettier: 2910 eslint-config-prettier:
5408 optional: true 2911 optional: true
5409 dependencies: 2912 dependencies:
5410 eslint: 8.46.0 2913 eslint: 8.56.0
5411 eslint-config-prettier: 8.9.0(eslint@8.46.0) 2914 eslint-config-prettier: 8.10.0(eslint@8.56.0)
5412 prettier: 3.0.0 2915 prettier: 3.2.5
5413 prettier-linter-helpers: 1.0.0 2916 prettier-linter-helpers: 1.0.0
5414 synckit: 0.8.5 2917 synckit: 0.8.8
5415 dev: true 2918 dev: true
5416 2919
5417 /eslint-plugin-unicorn@48.0.1(eslint@8.46.0): 2920 /eslint-plugin-unicorn@47.0.0(eslint@8.56.0):
5418 resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} 2921 resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==}
5419 engines: {node: '>=16'} 2922 engines: {node: '>=16'}
5420 peerDependencies: 2923 peerDependencies:
5421 eslint: '>=8.44.0' 2924 eslint: '>=8.38.0'
5422 dependencies: 2925 dependencies:
5423 '@babel/helper-validator-identifier': 7.22.20 2926 '@babel/helper-validator-identifier': 7.22.20
5424 '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) 2927 '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
5425 ci-info: 3.8.0 2928 ci-info: 3.9.0
5426 clean-regexp: 1.0.0 2929 clean-regexp: 1.0.0
5427 eslint: 8.46.0 2930 eslint: 8.56.0
5428 esquery: 1.5.0 2931 esquery: 1.5.0
5429 indent-string: 4.0.0 2932 indent-string: 4.0.0
5430 is-builtin-module: 3.2.1 2933 is-builtin-module: 3.2.1
@@ -5434,16 +2937,36 @@ packages:
5434 read-pkg-up: 7.0.1 2937 read-pkg-up: 7.0.1
5435 regexp-tree: 0.1.27 2938 regexp-tree: 0.1.27
5436 regjsparser: 0.10.0 2939 regjsparser: 0.10.0
5437 semver: 7.5.4 2940 safe-regex: 2.1.1
2941 semver: 7.6.0
5438 strip-indent: 3.0.0 2942 strip-indent: 3.0.0
5439 dev: true 2943 dev: true
5440 2944
5441 /eslint-scope@5.1.1: 2945 /eslint-plugin-unicorn@51.0.1(eslint@8.56.0):
5442 resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 2946 resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==}
5443 engines: {node: '>=8.0.0'} 2947 engines: {node: '>=16'}
2948 peerDependencies:
2949 eslint: '>=8.56.0'
5444 dependencies: 2950 dependencies:
5445 esrecurse: 4.3.0 2951 '@babel/helper-validator-identifier': 7.22.20
5446 estraverse: 4.3.0 2952 '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
2953 '@eslint/eslintrc': 2.1.4
2954 ci-info: 4.0.0
2955 clean-regexp: 1.0.0
2956 core-js-compat: 3.35.1
2957 eslint: 8.56.0
2958 esquery: 1.5.0
2959 indent-string: 4.0.0
2960 is-builtin-module: 3.2.1
2961 jsesc: 3.0.2
2962 pluralize: 8.0.0
2963 read-pkg-up: 7.0.1
2964 regexp-tree: 0.1.27
2965 regjsparser: 0.10.0
2966 semver: 7.6.0
2967 strip-indent: 3.0.0
2968 transitivePeerDependencies:
2969 - supports-color
5447 dev: true 2970 dev: true
5448 2971
5449 /eslint-scope@7.2.2: 2972 /eslint-scope@7.2.2:
@@ -5459,18 +2982,19 @@ packages:
5459 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2982 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5460 dev: true 2983 dev: true
5461 2984
5462 /eslint@8.46.0: 2985 /eslint@8.56.0:
5463 resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} 2986 resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
5464 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2987 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5465 hasBin: true 2988 hasBin: true
5466 dependencies: 2989 dependencies:
5467 '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) 2990 '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
5468 '@eslint-community/regexpp': 4.9.0 2991 '@eslint-community/regexpp': 4.10.0
5469 '@eslint/eslintrc': 2.1.2 2992 '@eslint/eslintrc': 2.1.4
5470 '@eslint/js': 8.50.0 2993 '@eslint/js': 8.56.0
5471 '@humanwhocodes/config-array': 0.11.11 2994 '@humanwhocodes/config-array': 0.11.14
5472 '@humanwhocodes/module-importer': 1.0.1 2995 '@humanwhocodes/module-importer': 1.0.1
5473 '@nodelib/fs.walk': 1.2.8 2996 '@nodelib/fs.walk': 1.2.8
2997 '@ungap/structured-clone': 1.2.0
5474 ajv: 6.12.6 2998 ajv: 6.12.6
5475 chalk: 4.1.2 2999 chalk: 4.1.2
5476 cross-spawn: 7.0.3 3000 cross-spawn: 7.0.3
@@ -5488,7 +3012,7 @@ packages:
5488 glob-parent: 6.0.2 3012 glob-parent: 6.0.2
5489 globals: 13.22.0 3013 globals: 13.22.0
5490 graphemer: 1.4.0 3014 graphemer: 1.4.0
5491 ignore: 5.2.4 3015 ignore: 5.3.1
5492 imurmurhash: 0.1.4 3016 imurmurhash: 0.1.4
5493 is-glob: 4.0.3 3017 is-glob: 4.0.3
5494 is-path-inside: 3.0.3 3018 is-path-inside: 3.0.3
@@ -5514,17 +3038,11 @@ packages:
5514 resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 3038 resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
5515 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3039 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5516 dependencies: 3040 dependencies:
5517 acorn: 8.10.0 3041 acorn: 8.11.3
5518 acorn-jsx: 5.3.2(acorn@8.10.0) 3042 acorn-jsx: 5.3.2(acorn@8.11.3)
5519 eslint-visitor-keys: 3.4.3 3043 eslint-visitor-keys: 3.4.3
5520 dev: true 3044 dev: true
5521 3045
5522 /esprima@4.0.1:
5523 resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
5524 engines: {node: '>=4'}
5525 hasBin: true
5526 dev: true
5527
5528 /esquery@1.5.0: 3046 /esquery@1.5.0:
5529 resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 3047 resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
5530 engines: {node: '>=0.10'} 3048 engines: {node: '>=0.10'}
@@ -5539,11 +3057,6 @@ packages:
5539 estraverse: 5.3.0 3057 estraverse: 5.3.0
5540 dev: true 3058 dev: true
5541 3059
5542 /estraverse@4.3.0:
5543 resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
5544 engines: {node: '>=4.0'}
5545 dev: true
5546
5547 /estraverse@5.3.0: 3060 /estraverse@5.3.0:
5548 resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 3061 resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
5549 engines: {node: '>=4.0'} 3062 engines: {node: '>=4.0'}
@@ -5562,140 +3075,28 @@ packages:
5562 resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 3075 resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
5563 engines: {node: '>=6'} 3076 engines: {node: '>=6'}
5564 3077
5565 /eventemitter3@4.0.7:
5566 resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
5567 dev: true
5568
5569 /events@1.1.1:
5570 resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==}
5571 engines: {node: '>=0.4.x'}
5572 dev: false
5573
5574 /events@3.3.0: 3078 /events@3.3.0:
5575 resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 3079 resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
5576 engines: {node: '>=0.8.x'} 3080 engines: {node: '>=0.8.x'}
5577 3081
5578 /execa@5.1.1: 3082 /execa@8.0.1:
5579 resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 3083 resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
5580 engines: {node: '>=10'} 3084 engines: {node: '>=16.17'}
5581 dependencies: 3085 dependencies:
5582 cross-spawn: 7.0.3 3086 cross-spawn: 7.0.3
5583 get-stream: 6.0.1 3087 get-stream: 8.0.1
5584 human-signals: 2.1.0 3088 human-signals: 5.0.0
5585 is-stream: 2.0.1
5586 merge-stream: 2.0.0
5587 npm-run-path: 4.0.1
5588 onetime: 5.1.2
5589 signal-exit: 3.0.7
5590 strip-final-newline: 2.0.0
5591 dev: true
5592
5593 /execa@7.2.0:
5594 resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
5595 engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
5596 dependencies:
5597 cross-spawn: 7.0.3
5598 get-stream: 6.0.1
5599 human-signals: 4.3.1
5600 is-stream: 3.0.0 3089 is-stream: 3.0.0
5601 merge-stream: 2.0.0 3090 merge-stream: 2.0.0
5602 npm-run-path: 5.1.0 3091 npm-run-path: 5.2.0
5603 onetime: 6.0.0 3092 onetime: 6.0.0
5604 signal-exit: 3.0.7 3093 signal-exit: 4.1.0
5605 strip-final-newline: 3.0.0 3094 strip-final-newline: 3.0.0
5606 dev: true
5607
5608 /expand-brackets@2.1.4:
5609 resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
5610 engines: {node: '>=0.10.0'}
5611 dependencies:
5612 debug: 2.6.9
5613 define-property: 0.2.5
5614 extend-shallow: 2.0.1
5615 posix-character-classes: 0.1.1
5616 regex-not: 1.0.2
5617 snapdragon: 0.8.2
5618 to-regex: 3.0.2
5619 transitivePeerDependencies:
5620 - supports-color
5621 dev: true
5622 3095
5623 /express@4.18.2: 3096 /expand-template@2.0.3:
5624 resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} 3097 resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
5625 engines: {node: '>= 0.10.0'} 3098 engines: {node: '>=6'}
5626 dependencies: 3099 dev: false
5627 accepts: 1.3.8
5628 array-flatten: 1.1.1
5629 body-parser: 1.20.1
5630 content-disposition: 0.5.4
5631 content-type: 1.0.5
5632 cookie: 0.5.0
5633 cookie-signature: 1.0.6
5634 debug: 2.6.9
5635 depd: 2.0.0
5636 encodeurl: 1.0.2
5637 escape-html: 1.0.3
5638 etag: 1.8.1
5639 finalhandler: 1.2.0
5640 fresh: 0.5.2
5641 http-errors: 2.0.0
5642 merge-descriptors: 1.0.1
5643 methods: 1.1.2
5644 on-finished: 2.4.1
5645 parseurl: 1.3.3
5646 path-to-regexp: 0.1.7
5647 proxy-addr: 2.0.7
5648 qs: 6.11.0
5649 range-parser: 1.2.1
5650 safe-buffer: 5.2.1
5651 send: 0.18.0
5652 serve-static: 1.15.0
5653 setprototypeof: 1.2.0
5654 statuses: 2.0.1
5655 type-is: 1.6.18
5656 utils-merge: 1.0.1
5657 vary: 1.1.2
5658 transitivePeerDependencies:
5659 - supports-color
5660 dev: true
5661
5662 /extend-shallow@2.0.1:
5663 resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
5664 engines: {node: '>=0.10.0'}
5665 dependencies:
5666 is-extendable: 0.1.1
5667 dev: true
5668
5669 /extend-shallow@3.0.2:
5670 resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
5671 engines: {node: '>=0.10.0'}
5672 dependencies:
5673 assign-symbols: 1.0.0
5674 is-extendable: 1.0.1
5675 dev: true
5676
5677 /extend@3.0.2:
5678 resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
5679 dev: true
5680
5681 /extglob@2.0.4:
5682 resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
5683 engines: {node: '>=0.10.0'}
5684 dependencies:
5685 array-unique: 0.3.2
5686 define-property: 1.0.0
5687 expand-brackets: 2.1.4
5688 extend-shallow: 2.0.1
5689 fragment-cache: 0.2.1
5690 regex-not: 1.0.2
5691 snapdragon: 0.8.2
5692 to-regex: 3.0.2
5693 transitivePeerDependencies:
5694 - supports-color
5695 dev: true
5696
5697 /fast-copy@3.0.1:
5698 resolution: {integrity: sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==}
5699 3100
5700 /fast-deep-equal@3.1.3: 3101 /fast-deep-equal@3.1.3:
5701 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 3102 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -5704,22 +3105,8 @@ packages:
5704 resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} 3105 resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
5705 dev: true 3106 dev: true
5706 3107
5707 /fast-glob@2.2.7: 3108 /fast-glob@3.3.2:
5708 resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} 3109 resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
5709 engines: {node: '>=4.0.0'}
5710 dependencies:
5711 '@mrmlnc/readdir-enhanced': 2.2.1
5712 '@nodelib/fs.stat': 1.1.3
5713 glob-parent: 3.1.0
5714 is-glob: 4.0.3
5715 merge2: 1.4.1
5716 micromatch: 3.1.10
5717 transitivePeerDependencies:
5718 - supports-color
5719 dev: true
5720
5721 /fast-glob@3.3.1:
5722 resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
5723 engines: {node: '>=8.6.0'} 3110 engines: {node: '>=8.6.0'}
5724 dependencies: 3111 dependencies:
5725 '@nodelib/fs.stat': 2.0.5 3112 '@nodelib/fs.stat': 2.0.5
@@ -5736,36 +3123,19 @@ packages:
5736 resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 3123 resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
5737 dev: true 3124 dev: true
5738 3125
5739 /fast-levenshtein@3.0.0:
5740 resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==}
5741 dependencies:
5742 fastest-levenshtein: 1.0.16
5743 dev: true
5744
5745 /fast-redact@3.3.0: 3126 /fast-redact@3.3.0:
5746 resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} 3127 resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==}
5747 engines: {node: '>=6'} 3128 engines: {node: '>=6'}
5748 3129
5749 /fast-safe-stringify@2.1.1:
5750 resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
5751
5752 /fastest-levenshtein@1.0.16: 3130 /fastest-levenshtein@1.0.16:
5753 resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} 3131 resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
5754 engines: {node: '>= 4.9.1'} 3132 engines: {node: '>= 4.9.1'}
5755 dev: true
5756 3133
5757 /fastq@1.15.0: 3134 /fastq@1.17.1:
5758 resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 3135 resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
5759 dependencies: 3136 dependencies:
5760 reusify: 1.0.4 3137 reusify: 1.0.4
5761 3138
5762 /faye-websocket@0.11.4:
5763 resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
5764 engines: {node: '>=0.8.0'}
5765 dependencies:
5766 websocket-driver: 0.7.4
5767 dev: true
5768
5769 /file-entry-cache@6.0.1: 3139 /file-entry-cache@6.0.1:
5770 resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 3140 resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
5771 engines: {node: ^10.12.0 || >=12.0.0} 3141 engines: {node: ^10.12.0 || >=12.0.0}
@@ -5773,28 +3143,17 @@ packages:
5773 flat-cache: 3.1.0 3143 flat-cache: 3.1.0
5774 dev: true 3144 dev: true
5775 3145
5776 /file-type@12.4.2: 3146 /file-type@19.0.0:
5777 resolution: {integrity: sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==} 3147 resolution: {integrity: sha512-s7cxa7/leUWLiXO78DVVfBVse+milos9FitauDLG1pI7lNaJ2+5lzPnr2N24ym+84HVwJL6hVuGfgVE+ALvU8Q==}
5778 engines: {node: '>=8'} 3148 engines: {node: '>=18'}
5779 dev: false
5780
5781 /file-type@16.5.4:
5782 resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==}
5783 engines: {node: '>=10'}
5784 dependencies: 3149 dependencies:
5785 readable-web-to-node-stream: 3.0.2 3150 readable-web-to-node-stream: 3.0.2
5786 strtok3: 6.3.0 3151 strtok3: 7.0.0
5787 token-types: 4.2.1 3152 token-types: 5.0.1
5788 3153
5789 /fill-range@4.0.0: 3154 /file-uri-to-path@1.0.0:
5790 resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} 3155 resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
5791 engines: {node: '>=0.10.0'} 3156 dev: false
5792 dependencies:
5793 extend-shallow: 2.0.1
5794 is-number: 3.0.0
5795 repeat-string: 1.6.1
5796 to-regex-range: 2.1.1
5797 dev: true
5798 3157
5799 /fill-range@7.0.1: 3158 /fill-range@7.0.1:
5800 resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 3159 resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -5802,36 +3161,12 @@ packages:
5802 dependencies: 3161 dependencies:
5803 to-regex-range: 5.0.1 3162 to-regex-range: 5.0.1
5804 3163
5805 /finalhandler@1.2.0: 3164 /find-cache-dir@5.0.0:
5806 resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 3165 resolution: {integrity: sha512-OuWNfjfP05JcpAP3JPgAKUhWefjMRfI5iAoSsvE24ANYWJaepAtlSgWECSVEuRgSXpyNEc9DJwG/TZpgcOqyig==}
5807 engines: {node: '>= 0.8'} 3166 engines: {node: '>=16'}
5808 dependencies:
5809 debug: 2.6.9
5810 encodeurl: 1.0.2
5811 escape-html: 1.0.3
5812 on-finished: 2.4.1
5813 parseurl: 1.3.3
5814 statuses: 2.0.1
5815 unpipe: 1.0.0
5816 transitivePeerDependencies:
5817 - supports-color
5818 dev: true
5819
5820 /find-cache-dir@3.3.2:
5821 resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
5822 engines: {node: '>=8'}
5823 dependencies:
5824 commondir: 1.0.1
5825 make-dir: 3.1.0
5826 pkg-dir: 4.2.0
5827 dev: true
5828
5829 /find-up@3.0.0:
5830 resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
5831 engines: {node: '>=6'}
5832 dependencies: 3167 dependencies:
5833 locate-path: 3.0.0 3168 common-path-prefix: 3.0.0
5834 dev: true 3169 pkg-dir: 7.0.0
5835 3170
5836 /find-up@4.1.0: 3171 /find-up@4.1.0:
5837 resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 3172 resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
@@ -5849,18 +3184,22 @@ packages:
5849 path-exists: 4.0.0 3184 path-exists: 4.0.0
5850 dev: true 3185 dev: true
5851 3186
3187 /find-up@6.3.0:
3188 resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
3189 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3190 dependencies:
3191 locate-path: 7.2.0
3192 path-exists: 5.0.0
3193
5852 /flat-cache@3.1.0: 3194 /flat-cache@3.1.0:
5853 resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} 3195 resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==}
5854 engines: {node: '>=12.0.0'} 3196 engines: {node: '>=12.0.0'}
5855 dependencies: 3197 dependencies:
5856 flatted: 3.2.9 3198 flatted: 3.2.9
5857 keyv: 4.5.3 3199 keyv: 4.5.4
5858 rimraf: 3.0.2 3200 rimraf: 3.0.2
5859 dev: true 3201 dev: true
5860 3202
5861 /flatstr@1.0.12:
5862 resolution: {integrity: sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==}
5863
5864 /flatted@3.2.9: 3203 /flatted@3.2.9:
5865 resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} 3204 resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
5866 dev: true 3205 dev: true
@@ -5869,64 +3208,26 @@ packages:
5869 resolution: {integrity: sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==} 3208 resolution: {integrity: sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==}
5870 engines: {node: '>=8'} 3209 engines: {node: '>=8'}
5871 3210
5872 /follow-redirects@1.15.3:
5873 resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==}
5874 engines: {node: '>=4.0'}
5875 peerDependencies:
5876 debug: '*'
5877 peerDependenciesMeta:
5878 debug:
5879 optional: true
5880 dev: true
5881
5882 /for-each@0.3.3: 3211 /for-each@0.3.3:
5883 resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 3212 resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
5884 dependencies: 3213 dependencies:
5885 is-callable: 1.2.7 3214 is-callable: 1.2.7
5886
5887 /for-in@1.0.2:
5888 resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
5889 engines: {node: '>=0.10.0'}
5890 dev: true
5891
5892 /form-data@3.0.1:
5893 resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==}
5894 engines: {node: '>= 6'}
5895 dependencies:
5896 asynckit: 0.4.0
5897 combined-stream: 1.0.8
5898 mime-types: 2.1.35
5899 dev: true 3215 dev: true
5900 3216
5901 /form-data@4.0.0: 3217 /form-data-encoder@4.0.2:
5902 resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 3218 resolution: {integrity: sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==}
5903 engines: {node: '>= 6'} 3219 engines: {node: '>= 18'}
5904 dependencies: 3220 dev: false
5905 asynckit: 0.4.0
5906 combined-stream: 1.0.8
5907 mime-types: 2.1.35
5908 dev: true
5909 3221
5910 /formidable@2.1.2: 3222 /formdata-node@6.0.3:
5911 resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} 3223 resolution: {integrity: sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==}
5912 dependencies: 3224 engines: {node: '>= 18'}
5913 dezalgo: 1.0.4 3225 dev: false
5914 hexoid: 1.0.0
5915 once: 1.4.0
5916 qs: 6.11.2
5917 dev: true
5918 3226
5919 /forwarded@0.2.0: 3227 /forwarded@0.2.0:
5920 resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 3228 resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
5921 engines: {node: '>= 0.6'} 3229 engines: {node: '>= 0.6'}
5922 3230
5923 /fragment-cache@0.2.1:
5924 resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
5925 engines: {node: '>=0.10.0'}
5926 dependencies:
5927 map-cache: 0.2.2
5928 dev: true
5929
5930 /fresh@0.5.2: 3231 /fresh@0.5.2:
5931 resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 3232 resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
5932 engines: {node: '>= 0.6'} 3233 engines: {node: '>= 0.6'}
@@ -5935,65 +3236,45 @@ packages:
5935 resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 3236 resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
5936 dev: false 3237 dev: false
5937 3238
5938 /fs-extra@10.1.0: 3239 /fs-extra@11.2.0:
5939 resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 3240 resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
5940 engines: {node: '>=12'}
5941 dependencies:
5942 graceful-fs: 4.2.11
5943 jsonfile: 6.1.0
5944 universalify: 2.0.0
5945
5946 /fs-extra@11.1.1:
5947 resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
5948 engines: {node: '>=14.14'} 3241 engines: {node: '>=14.14'}
5949 dependencies: 3242 dependencies:
5950 graceful-fs: 4.2.11 3243 graceful-fs: 4.2.11
5951 jsonfile: 6.1.0 3244 jsonfile: 6.1.0
5952 universalify: 2.0.0 3245 universalify: 2.0.1
5953 3246 dev: false
5954 /fs-extra@8.1.0:
5955 resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
5956 engines: {node: '>=6 <7 || >=8'}
5957 dependencies:
5958 graceful-fs: 4.2.11
5959 jsonfile: 4.0.0
5960 universalify: 0.1.2
5961 dev: true
5962 3247
5963 /fs-minipass@2.1.0: 3248 /fs-minipass@2.1.0:
5964 resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 3249 resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
5965 engines: {node: '>= 8'} 3250 engines: {node: '>= 8'}
5966 dependencies: 3251 dependencies:
5967 minipass: 3.3.6 3252 minipass: 3.3.6
5968 dev: false
5969
5970 /fs-monkey@1.0.5:
5971 resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
5972 3253
5973 /fs-readdir-recursive@1.1.0: 3254 /fs-readdir-recursive@1.1.0:
5974 resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} 3255 resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==}
5975 3256
5976 /fs.realpath@1.0.0: 3257 /fs.realpath@1.0.0:
5977 resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 3258 resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
3259 requiresBuild: true
5978 3260
5979 /fsevents@2.3.3: 3261 /fsevents@2.3.3:
5980 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 3262 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
5981 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 3263 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
5982 os: [darwin] 3264 os: [darwin]
5983 requiresBuild: true 3265 requiresBuild: true
5984 dev: true
5985 optional: true 3266 optional: true
5986 3267
5987 /function-bind@1.1.1: 3268 /function-bind@1.1.2:
5988 resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 3269 resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
5989 3270
5990 /function.prototype.name@1.1.6: 3271 /function.prototype.name@1.1.6:
5991 resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 3272 resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
5992 engines: {node: '>= 0.4'} 3273 engines: {node: '>= 0.4'}
5993 dependencies: 3274 dependencies:
5994 call-bind: 1.0.2 3275 call-bind: 1.0.5
5995 define-properties: 1.2.1 3276 define-properties: 1.2.1
5996 es-abstract: 1.22.2 3277 es-abstract: 1.22.3
5997 functions-have-names: 1.2.3 3278 functions-have-names: 1.2.3
5998 dev: true 3279 dev: true
5999 3280
@@ -6014,7 +3295,6 @@ packages:
6014 string-width: 4.2.3 3295 string-width: 4.2.3
6015 strip-ansi: 6.0.1 3296 strip-ansi: 6.0.1
6016 wide-align: 1.1.5 3297 wide-align: 1.1.5
6017 dev: false
6018 3298
6019 /gauge@4.0.4: 3299 /gauge@4.0.4:
6020 resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} 3300 resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
@@ -6032,78 +3312,56 @@ packages:
6032 dev: false 3312 dev: false
6033 optional: true 3313 optional: true
6034 3314
6035 /gensync@1.0.0-beta.2: 3315 /get-east-asian-width@1.2.0:
6036 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 3316 resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
6037 engines: {node: '>=6.9.0'} 3317 engines: {node: '>=18'}
6038 dev: true
6039
6040 /get-func-name@2.0.2:
6041 resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
6042 dev: true
6043 3318
6044 /get-intrinsic@1.2.1: 3319 /get-intrinsic@1.2.2:
6045 resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} 3320 resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
6046 dependencies: 3321 dependencies:
6047 function-bind: 1.1.1 3322 function-bind: 1.1.2
6048 has: 1.0.3
6049 has-proto: 1.0.1 3323 has-proto: 1.0.1
6050 has-symbols: 1.0.3 3324 has-symbols: 1.0.3
3325 hasown: 2.0.0
6051 3326
6052 /get-package-type@0.1.0: 3327 /get-package-type@0.1.0:
6053 resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} 3328 resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
6054 engines: {node: '>=8.0.0'} 3329 engines: {node: '>=8.0.0'}
6055 dev: false 3330 dev: false
6056 3331
6057 /get-port@3.2.0: 3332 /get-port@7.0.0:
6058 resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} 3333 resolution: {integrity: sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==}
6059 engines: {node: '>=4'} 3334 engines: {node: '>=16'}
6060 dev: true
6061
6062 /get-port@5.1.1:
6063 resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
6064 engines: {node: '>=8'}
6065 dev: true
6066 3335
6067 /get-source@2.0.12: 3336 /get-source@2.0.12:
6068 resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 3337 resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
6069 dependencies: 3338 dependencies:
6070 data-uri-to-buffer: 2.0.2 3339 data-uri-to-buffer: 2.0.2
6071 source-map: 0.6.1 3340 source-map: 0.6.1
6072 dev: true
6073
6074 /get-stream@5.2.0:
6075 resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
6076 engines: {node: '>=8'}
6077 dependencies:
6078 pump: 3.0.0
6079 dev: false
6080 3341
6081 /get-stream@6.0.1: 3342 /get-stream@6.0.1:
6082 resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 3343 resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
6083 engines: {node: '>=10'} 3344 engines: {node: '>=10'}
3345 dev: false
3346
3347 /get-stream@8.0.1:
3348 resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
3349 engines: {node: '>=16'}
6084 3350
6085 /get-symbol-description@1.0.0: 3351 /get-symbol-description@1.0.0:
6086 resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 3352 resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
6087 engines: {node: '>= 0.4'} 3353 engines: {node: '>= 0.4'}
6088 dependencies: 3354 dependencies:
6089 call-bind: 1.0.2 3355 call-bind: 1.0.5
6090 get-intrinsic: 1.2.1 3356 get-intrinsic: 1.2.2
6091 dev: true
6092
6093 /get-value@2.0.6:
6094 resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
6095 engines: {node: '>=0.10.0'}
6096 dev: true 3357 dev: true
6097 3358
6098 /getopts@2.3.0: 3359 /getopts@2.3.0:
6099 resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} 3360 resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==}
6100 3361
6101 /glob-parent@3.1.0: 3362 /github-from-package@0.0.0:
6102 resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} 3363 resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
6103 dependencies: 3364 dev: false
6104 is-glob: 3.1.0
6105 path-dirname: 1.0.2
6106 dev: true
6107 3365
6108 /glob-parent@5.1.2: 3366 /glob-parent@5.1.2:
6109 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 3367 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -6116,15 +3374,6 @@ packages:
6116 engines: {node: '>=10.13.0'} 3374 engines: {node: '>=10.13.0'}
6117 dependencies: 3375 dependencies:
6118 is-glob: 4.0.3 3376 is-glob: 4.0.3
6119 dev: true
6120
6121 /glob-to-regexp@0.3.0:
6122 resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==}
6123 dev: true
6124
6125 /glob-to-regexp@0.4.1:
6126 resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
6127 dev: true
6128 3377
6129 /glob@7.2.3: 3378 /glob@7.2.3:
6130 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 3379 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
@@ -6136,21 +3385,6 @@ packages:
6136 once: 1.4.0 3385 once: 1.4.0
6137 path-is-absolute: 1.0.1 3386 path-is-absolute: 1.0.1
6138 3387
6139 /glob@8.1.0:
6140 resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
6141 engines: {node: '>=12'}
6142 dependencies:
6143 fs.realpath: 1.0.0
6144 inflight: 1.0.6
6145 inherits: 2.0.4
6146 minimatch: 5.1.6
6147 once: 1.4.0
6148
6149 /globals@11.12.0:
6150 resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
6151 engines: {node: '>=4'}
6152 dev: true
6153
6154 /globals@13.22.0: 3388 /globals@13.22.0:
6155 resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==} 3389 resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==}
6156 engines: {node: '>=8'} 3390 engines: {node: '>=8'}
@@ -6171,59 +3405,42 @@ packages:
6171 dependencies: 3405 dependencies:
6172 array-union: 2.1.0 3406 array-union: 2.1.0
6173 dir-glob: 3.0.1 3407 dir-glob: 3.0.1
6174 fast-glob: 3.3.1 3408 fast-glob: 3.3.2
6175 ignore: 5.2.4 3409 ignore: 5.3.1
6176 merge2: 1.4.1 3410 merge2: 1.4.1
6177 slash: 3.0.0 3411 slash: 3.0.0
6178 dev: true 3412 dev: true
6179 3413
6180 /globby@6.1.0: 3414 /globby@13.2.2:
6181 resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} 3415 resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
6182 engines: {node: '>=0.10.0'} 3416 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6183 dependencies:
6184 array-union: 1.0.2
6185 glob: 7.2.3
6186 object-assign: 4.1.1
6187 pify: 2.3.0
6188 pinkie-promise: 2.0.1
6189 dev: true
6190
6191 /globby@9.2.0:
6192 resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==}
6193 engines: {node: '>=6'}
6194 dependencies: 3417 dependencies:
6195 '@types/glob': 7.2.0 3418 dir-glob: 3.0.1
6196 array-union: 1.0.2 3419 fast-glob: 3.3.2
6197 dir-glob: 2.2.2 3420 ignore: 5.3.1
6198 fast-glob: 2.2.7 3421 merge2: 1.4.1
6199 glob: 7.2.3 3422 slash: 4.0.0
6200 ignore: 4.0.6
6201 pify: 4.0.1
6202 slash: 2.0.0
6203 transitivePeerDependencies:
6204 - supports-color
6205 dev: true
6206 3423
6207 /gopd@1.0.1: 3424 /gopd@1.0.1:
6208 resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 3425 resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
6209 dependencies: 3426 dependencies:
6210 get-intrinsic: 1.2.1 3427 get-intrinsic: 1.2.2
6211 3428
6212 /got@11.8.6: 3429 /got@14.2.0:
6213 resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} 3430 resolution: {integrity: sha512-dBq2KkHcQl3AwPoIWsLsQScCPpUgRulz1qZVthjPYKYOPmYfBnekR3vxecjZbm91Vc3JUGnV9mqFX7B+Fe2quw==}
6214 engines: {node: '>=10.19.0'} 3431 engines: {node: '>=20'}
6215 dependencies: 3432 dependencies:
6216 '@sindresorhus/is': 4.6.0 3433 '@sindresorhus/is': 6.1.0
6217 '@szmarczak/http-timer': 4.0.6 3434 '@szmarczak/http-timer': 5.0.1
6218 '@types/cacheable-request': 6.0.3 3435 cacheable-lookup: 7.0.0
6219 '@types/responselike': 1.0.1 3436 cacheable-request: 10.2.14
6220 cacheable-lookup: 5.0.4
6221 cacheable-request: 7.0.4
6222 decompress-response: 6.0.0 3437 decompress-response: 6.0.0
6223 http2-wrapper: 1.0.3 3438 form-data-encoder: 4.0.2
6224 lowercase-keys: 2.0.0 3439 get-stream: 8.0.1
6225 p-cancelable: 2.1.1 3440 http2-wrapper: 2.2.1
6226 responselike: 2.0.1 3441 lowercase-keys: 3.0.0
3442 p-cancelable: 4.0.1
3443 responselike: 3.0.0
6227 dev: false 3444 dev: false
6228 3445
6229 /graceful-fs@4.2.11: 3446 /graceful-fs@4.2.11:
@@ -6233,17 +3450,6 @@ packages:
6233 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 3450 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
6234 dev: true 3451 dev: true
6235 3452
6236 /handle-thing@2.0.1:
6237 resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
6238 dev: true
6239
6240 /has-ansi@2.0.0:
6241 resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
6242 engines: {node: '>=0.10.0'}
6243 dependencies:
6244 ansi-regex: 2.1.1
6245 dev: true
6246
6247 /has-bigints@1.0.2: 3453 /has-bigints@1.0.2:
6248 resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 3454 resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
6249 dev: true 3455 dev: true
@@ -6257,23 +3463,10 @@ packages:
6257 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 3463 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
6258 engines: {node: '>=8'} 3464 engines: {node: '>=8'}
6259 3465
6260 /has-glob@1.0.0: 3466 /has-property-descriptors@1.0.1:
6261 resolution: {integrity: sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==} 3467 resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
6262 engines: {node: '>=0.10.0'}
6263 dependencies: 3468 dependencies:
6264 is-glob: 3.1.0 3469 get-intrinsic: 1.2.2
6265 dev: true
6266
6267 /has-own-prop@2.0.0:
6268 resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==}
6269 engines: {node: '>=8'}
6270 dev: true
6271
6272 /has-property-descriptors@1.0.0:
6273 resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
6274 dependencies:
6275 get-intrinsic: 1.2.1
6276 dev: true
6277 3470
6278 /has-proto@1.0.1: 3471 /has-proto@1.0.1:
6279 resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 3472 resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
@@ -6288,126 +3481,33 @@ packages:
6288 engines: {node: '>= 0.4'} 3481 engines: {node: '>= 0.4'}
6289 dependencies: 3482 dependencies:
6290 has-symbols: 1.0.3 3483 has-symbols: 1.0.3
3484 dev: true
6291 3485
6292 /has-unicode@2.0.1: 3486 /has-unicode@2.0.1:
6293 resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} 3487 resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
6294 dev: false
6295
6296 /has-value@0.3.1:
6297 resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
6298 engines: {node: '>=0.10.0'}
6299 dependencies:
6300 get-value: 2.0.6
6301 has-values: 0.1.4
6302 isobject: 2.1.0
6303 dev: true
6304
6305 /has-value@1.0.0:
6306 resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
6307 engines: {node: '>=0.10.0'}
6308 dependencies:
6309 get-value: 2.0.6
6310 has-values: 1.0.0
6311 isobject: 3.0.1
6312 dev: true
6313
6314 /has-values@0.1.4:
6315 resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
6316 engines: {node: '>=0.10.0'}
6317 dev: true
6318 3488
6319 /has-values@1.0.0: 3489 /hasown@2.0.0:
6320 resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} 3490 resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
6321 engines: {node: '>=0.10.0'} 3491 engines: {node: '>= 0.4'}
6322 dependencies:
6323 is-number: 3.0.0
6324 kind-of: 4.0.0
6325 dev: true
6326
6327 /has-yarn@2.1.0:
6328 resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==}
6329 engines: {node: '>=8'}
6330 dev: true
6331
6332 /has@1.0.3:
6333 resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
6334 engines: {node: '>= 0.4.0'}
6335 dependencies: 3492 dependencies:
6336 function-bind: 1.1.1 3493 function-bind: 1.1.2
6337
6338 /haye@3.0.0:
6339 resolution: {integrity: sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==}
6340 3494
6341 /he@1.2.0: 3495 /he@1.2.0:
6342 resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 3496 resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
6343 hasBin: true 3497 hasBin: true
6344 3498
6345 /header-case@2.0.4:
6346 resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
6347 dependencies:
6348 capital-case: 1.0.4
6349 tslib: 2.6.2
6350
6351 /helmet-csp@3.4.0: 3499 /helmet-csp@3.4.0:
6352 resolution: {integrity: sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==} 3500 resolution: {integrity: sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==}
6353 engines: {node: '>=10.0.0'} 3501 engines: {node: '>=10.0.0'}
6354 dev: false
6355
6356 /help-me@4.2.0:
6357 resolution: {integrity: sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==}
6358 dependencies:
6359 glob: 8.1.0
6360 readable-stream: 3.6.2
6361
6362 /hexoid@1.0.0:
6363 resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==}
6364 engines: {node: '>=8'}
6365 dev: true
6366 3502
6367 /hosted-git-info@2.8.9: 3503 /hosted-git-info@2.8.9:
6368 resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 3504 resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
6369 dev: true 3505 dev: true
6370 3506
6371 /hpack.js@2.1.6:
6372 resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
6373 dependencies:
6374 inherits: 2.0.4
6375 obuf: 1.1.2
6376 readable-stream: 2.3.8
6377 wbuf: 1.7.3
6378 dev: true
6379
6380 /html-entities@2.4.0:
6381 resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==}
6382 dev: true
6383
6384 /htmlparser2@6.1.0:
6385 resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
6386 dependencies:
6387 domelementtype: 2.3.0
6388 domhandler: 4.3.1
6389 domutils: 2.8.0
6390 entities: 2.2.0
6391 dev: true
6392
6393 /http-cache-semantics@4.1.1: 3507 /http-cache-semantics@4.1.1:
6394 resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 3508 resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
6395 dev: false 3509 dev: false
6396 3510
6397 /http-deceiver@1.2.7:
6398 resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
6399 dev: true
6400
6401 /http-errors@1.6.3:
6402 resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
6403 engines: {node: '>= 0.6'}
6404 dependencies:
6405 depd: 1.1.2
6406 inherits: 2.0.3
6407 setprototypeof: 1.1.0
6408 statuses: 1.5.0
6409 dev: true
6410
6411 /http-errors@2.0.0: 3511 /http-errors@2.0.0:
6412 resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 3512 resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
6413 engines: {node: '>= 0.8'} 3513 engines: {node: '>= 0.8'}
@@ -6418,10 +3518,6 @@ packages:
6418 statuses: 2.0.1 3518 statuses: 2.0.1
6419 toidentifier: 1.0.1 3519 toidentifier: 1.0.1
6420 3520
6421 /http-parser-js@0.5.8:
6422 resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
6423 dev: true
6424
6425 /http-proxy-agent@4.0.1: 3521 /http-proxy-agent@4.0.1:
6426 resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} 3522 resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
6427 engines: {node: '>= 6'} 3523 engines: {node: '>= 6'}
@@ -6435,38 +3531,8 @@ packages:
6435 dev: false 3531 dev: false
6436 optional: true 3532 optional: true
6437 3533
6438 /http-proxy-middleware@2.0.6(@types/express@4.17.18): 3534 /http2-wrapper@2.2.1:
6439 resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} 3535 resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
6440 engines: {node: '>=12.0.0'}
6441 peerDependencies:
6442 '@types/express': ^4.17.13
6443 peerDependenciesMeta:
6444 '@types/express':
6445 optional: true
6446 dependencies:
6447 '@types/express': 4.17.18
6448 '@types/http-proxy': 1.17.12
6449 http-proxy: 1.18.1
6450 is-glob: 4.0.3
6451 is-plain-obj: 3.0.0
6452 micromatch: 4.0.5
6453 transitivePeerDependencies:
6454 - debug
6455 dev: true
6456
6457 /http-proxy@1.18.1:
6458 resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
6459 engines: {node: '>=8.0.0'}
6460 dependencies:
6461 eventemitter3: 4.0.7
6462 follow-redirects: 1.15.3
6463 requires-port: 1.0.0
6464 transitivePeerDependencies:
6465 - debug
6466 dev: true
6467
6468 /http2-wrapper@1.0.3:
6469 resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
6470 engines: {node: '>=10.19.0'} 3536 engines: {node: '>=10.19.0'}
6471 dependencies: 3537 dependencies:
6472 quick-lru: 5.1.1 3538 quick-lru: 5.1.1
@@ -6481,17 +3547,10 @@ packages:
6481 debug: 4.3.4 3547 debug: 4.3.4
6482 transitivePeerDependencies: 3548 transitivePeerDependencies:
6483 - supports-color 3549 - supports-color
6484 dev: false
6485 3550
6486 /human-signals@2.1.0: 3551 /human-signals@5.0.0:
6487 resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 3552 resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
6488 engines: {node: '>=10.17.0'} 3553 engines: {node: '>=16.17.0'}
6489 dev: true
6490
6491 /human-signals@4.3.1:
6492 resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
6493 engines: {node: '>=14.18.0'}
6494 dev: true
6495 3554
6496 /humanize-ms@1.2.1: 3555 /humanize-ms@1.2.1:
6497 resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} 3556 resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
@@ -6501,20 +3560,20 @@ packages:
6501 dev: false 3560 dev: false
6502 optional: true 3561 optional: true
6503 3562
6504 /husky@8.0.3: 3563 /husky@9.0.10:
6505 resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} 3564 resolution: {integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==}
6506 engines: {node: '>=14'} 3565 engines: {node: '>=18'}
6507 hasBin: true 3566 hasBin: true
6508 dev: true 3567 dev: true
6509 3568
6510 /ical-generator@4.1.0(@types/luxon@3.3.1)(luxon@3.3.0)(moment@2.29.4): 3569 /ical-generator@6.0.1(@types/luxon@3.4.2)(@types/node@20.11.17)(luxon@3.4.4)(moment@2.30.1):
6511 resolution: {integrity: sha512-5GrFDJ8SAOj8cB9P1uEZIfKrNxSZ1R2eOQfZePL+CtdWh4RwNXWe8b0goajz+Hu37vcipG3RVldoa2j57Y20IA==} 3570 resolution: {integrity: sha512-m0Li239l4xddH+MveodfAWFFrHrT8F3rGmgR0zyWUe0Mg7Q/XxiPssN+cKer3+WSpfFNyhjdAsqalTUivKl/vQ==}
6512 engines: {node: ^14.8.0 || >=16.0.0} 3571 engines: {node: '>=18.0.0'}
6513 peerDependencies: 3572 peerDependencies:
6514 '@touch4it/ical-timezones': '>=1.6.0' 3573 '@touch4it/ical-timezones': '>=1.6.0'
6515 '@types/luxon': '>= 1.26.0' 3574 '@types/luxon': '>= 1.26.0'
6516 '@types/mocha': '>= 8.2.1' 3575 '@types/mocha': '>= 8.2.1'
6517 '@types/node': '>= 15.0.0' 3576 '@types/node': '*'
6518 dayjs: '>= 1.10.0' 3577 dayjs: '>= 1.10.0'
6519 luxon: '>= 1.26.0' 3578 luxon: '>= 1.26.0'
6520 moment: '>= 2.29.0' 3579 moment: '>= 2.29.0'
@@ -6540,9 +3599,10 @@ packages:
6540 rrule: 3599 rrule:
6541 optional: true 3600 optional: true
6542 dependencies: 3601 dependencies:
6543 '@types/luxon': 3.3.1 3602 '@types/luxon': 3.4.2
6544 luxon: 3.3.0 3603 '@types/node': 20.11.17
6545 moment: 2.29.4 3604 luxon: 3.4.4
3605 moment: 2.30.1
6546 uuid-random: 1.3.2 3606 uuid-random: 1.3.2
6547 dev: false 3607 dev: false
6548 3608
@@ -6561,19 +3621,6 @@ packages:
6561 dev: false 3621 dev: false
6562 optional: true 3622 optional: true
6563 3623
6564 /icss-utils@5.1.0(postcss@8.4.31):
6565 resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
6566 engines: {node: ^10 || ^12 || >= 14}
6567 peerDependencies:
6568 postcss: ^8.1.0
6569 dependencies:
6570 postcss: 8.4.31
6571 dev: true
6572
6573 /ieee754@1.1.13:
6574 resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==}
6575 dev: false
6576
6577 /ieee754@1.2.1: 3624 /ieee754@1.2.1:
6578 resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 3625 resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
6579 3626
@@ -6582,15 +3629,9 @@ packages:
6582 engines: {node: '>=4.0.0'} 3629 engines: {node: '>=4.0.0'}
6583 dev: false 3630 dev: false
6584 3631
6585 /ignore@4.0.6: 3632 /ignore@5.3.1:
6586 resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} 3633 resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
6587 engines: {node: '>= 4'} 3634 engines: {node: '>= 4'}
6588 dev: true
6589
6590 /ignore@5.2.4:
6591 resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
6592 engines: {node: '>= 4'}
6593 dev: true
6594 3635
6595 /import-fresh@3.3.0: 3636 /import-fresh@3.3.0:
6596 resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 3637 resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
@@ -6600,62 +3641,48 @@ packages:
6600 resolve-from: 4.0.0 3641 resolve-from: 4.0.0
6601 dev: true 3642 dev: true
6602 3643
6603 /import-local@3.1.0:
6604 resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
6605 engines: {node: '>=8'}
6606 hasBin: true
6607 dependencies:
6608 pkg-dir: 4.2.0
6609 resolve-cwd: 3.0.0
6610 dev: true
6611
6612 /imurmurhash@0.1.4: 3644 /imurmurhash@0.1.4:
6613 resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 3645 resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
6614 engines: {node: '>=0.8.19'} 3646 engines: {node: '>=0.8.19'}
6615 3647
6616 /inclusion@1.0.1:
6617 resolution: {integrity: sha512-TRicJXpIfJN+a47xxjs5nfy2V5l413e4aAtsLYRG+OsDM3A3uloBd/+fDmj23RVuIL9VQfwtb37iIc0rtMw9KA==}
6618 dependencies:
6619 parent-module: 2.0.0
6620 dev: true
6621
6622 /indent-string@4.0.0: 3648 /indent-string@4.0.0:
6623 resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 3649 resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
6624 engines: {node: '>=8'} 3650 engines: {node: '>=8'}
6625 3651
3652 /indent-string@5.0.0:
3653 resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
3654 engines: {node: '>=12'}
3655
6626 /infer-owner@1.0.4: 3656 /infer-owner@1.0.4:
6627 resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} 3657 resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
6628 requiresBuild: true 3658 requiresBuild: true
6629 dev: false 3659 dev: false
6630 optional: true 3660 optional: true
6631 3661
6632 /inflation@2.0.0: 3662 /inflation@2.1.0:
6633 resolution: {integrity: sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==} 3663 resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==}
6634 engines: {node: '>= 0.8.0'} 3664 engines: {node: '>= 0.8.0'}
6635 3665
6636 /inflight@1.0.6: 3666 /inflight@1.0.6:
6637 resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 3667 resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
3668 requiresBuild: true
6638 dependencies: 3669 dependencies:
6639 once: 1.4.0 3670 once: 1.4.0
6640 wrappy: 1.0.2 3671 wrappy: 1.0.2
6641 3672
6642 /inherits@2.0.3:
6643 resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
6644 dev: true
6645
6646 /inherits@2.0.4: 3673 /inherits@2.0.4:
6647 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 3674 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
6648 3675
6649 /ini@1.3.8: 3676 /ini@1.3.8:
6650 resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 3677 resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
6651 dev: true 3678 dev: false
6652 3679
6653 /internal-slot@1.0.5: 3680 /internal-slot@1.0.6:
6654 resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 3681 resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
6655 engines: {node: '>= 0.4'} 3682 engines: {node: '>= 0.4'}
6656 dependencies: 3683 dependencies:
6657 get-intrinsic: 1.2.1 3684 get-intrinsic: 1.2.2
6658 has: 1.0.3 3685 hasown: 2.0.0
6659 side-channel: 1.0.4 3686 side-channel: 1.0.4
6660 dev: true 3687 dev: true
6661 3688
@@ -6664,11 +3691,6 @@ packages:
6664 engines: {node: '>= 0.10'} 3691 engines: {node: '>= 0.10'}
6665 dev: false 3692 dev: false
6666 3693
6667 /interpret@3.1.1:
6668 resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
6669 engines: {node: '>=10.13.0'}
6670 dev: true
6671
6672 /ip@2.0.0: 3694 /ip@2.0.0:
6673 resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} 3695 resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
6674 requiresBuild: true 3696 requiresBuild: true
@@ -6679,38 +3701,11 @@ packages:
6679 resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 3701 resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
6680 engines: {node: '>= 0.10'} 3702 engines: {node: '>= 0.10'}
6681 3703
6682 /ipaddr.js@2.1.0:
6683 resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==}
6684 engines: {node: '>= 10'}
6685 dev: true
6686
6687 /is-accessor-descriptor@0.1.6:
6688 resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
6689 engines: {node: '>=0.10.0'}
6690 dependencies:
6691 kind-of: 3.2.2
6692 dev: true
6693
6694 /is-accessor-descriptor@1.0.0:
6695 resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
6696 engines: {node: '>=0.10.0'}
6697 dependencies:
6698 kind-of: 6.0.3
6699 dev: true
6700
6701 /is-arguments@1.1.1:
6702 resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
6703 engines: {node: '>= 0.4'}
6704 dependencies:
6705 call-bind: 1.0.2
6706 has-tostringtag: 1.0.0
6707 dev: false
6708
6709 /is-array-buffer@3.0.2: 3704 /is-array-buffer@3.0.2:
6710 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 3705 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
6711 dependencies: 3706 dependencies:
6712 call-bind: 1.0.2 3707 call-bind: 1.0.5
6713 get-intrinsic: 1.2.1 3708 get-intrinsic: 1.2.2
6714 is-typed-array: 1.1.12 3709 is-typed-array: 1.1.12
6715 dev: true 3710 dev: true
6716 3711
@@ -6729,20 +3724,15 @@ packages:
6729 engines: {node: '>=8'} 3724 engines: {node: '>=8'}
6730 dependencies: 3725 dependencies:
6731 binary-extensions: 2.2.0 3726 binary-extensions: 2.2.0
6732 dev: true
6733 3727
6734 /is-boolean-object@1.1.2: 3728 /is-boolean-object@1.1.2:
6735 resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 3729 resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
6736 engines: {node: '>= 0.4'} 3730 engines: {node: '>= 0.4'}
6737 dependencies: 3731 dependencies:
6738 call-bind: 1.0.2 3732 call-bind: 1.0.5
6739 has-tostringtag: 1.0.0 3733 has-tostringtag: 1.0.0
6740 dev: true 3734 dev: true
6741 3735
6742 /is-buffer@1.1.6:
6743 resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
6744 dev: true
6745
6746 /is-builtin-module@3.2.1: 3736 /is-builtin-module@3.2.1:
6747 resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 3737 resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
6748 engines: {node: '>=6'} 3738 engines: {node: '>=6'}
@@ -6753,32 +3743,19 @@ packages:
6753 /is-callable@1.2.7: 3743 /is-callable@1.2.7:
6754 resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 3744 resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
6755 engines: {node: '>= 0.4'} 3745 engines: {node: '>= 0.4'}
3746 dev: true
6756 3747
6757 /is-ci@3.0.1: 3748 /is-ci@3.0.1:
6758 resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} 3749 resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
6759 hasBin: true 3750 hasBin: true
6760 dependencies: 3751 dependencies:
6761 ci-info: 3.8.0 3752 ci-info: 3.9.0
6762 dev: true
6763
6764 /is-core-module@2.13.0:
6765 resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
6766 dependencies:
6767 has: 1.0.3
6768
6769 /is-data-descriptor@0.1.4:
6770 resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
6771 engines: {node: '>=0.10.0'}
6772 dependencies:
6773 kind-of: 3.2.2
6774 dev: true 3753 dev: true
6775 3754
6776 /is-data-descriptor@1.0.0: 3755 /is-core-module@2.13.1:
6777 resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} 3756 resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
6778 engines: {node: '>=0.10.0'}
6779 dependencies: 3757 dependencies:
6780 kind-of: 6.0.3 3758 hasown: 2.0.0
6781 dev: true
6782 3759
6783 /is-date-object@1.0.5: 3760 /is-date-object@1.0.5:
6784 resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 3761 resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
@@ -6787,53 +3764,6 @@ packages:
6787 has-tostringtag: 1.0.0 3764 has-tostringtag: 1.0.0
6788 dev: true 3765 dev: true
6789 3766
6790 /is-descriptor@0.1.6:
6791 resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==}
6792 engines: {node: '>=0.10.0'}
6793 dependencies:
6794 is-accessor-descriptor: 0.1.6
6795 is-data-descriptor: 0.1.4
6796 kind-of: 5.1.0
6797 dev: true
6798
6799 /is-descriptor@1.0.2:
6800 resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==}
6801 engines: {node: '>=0.10.0'}
6802 dependencies:
6803 is-accessor-descriptor: 1.0.0
6804 is-data-descriptor: 1.0.0
6805 kind-of: 6.0.3
6806 dev: true
6807
6808 /is-docker@2.2.1:
6809 resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
6810 engines: {node: '>=8'}
6811 hasBin: true
6812 dev: true
6813
6814 /is-docker@3.0.0:
6815 resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
6816 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6817 hasBin: true
6818 dev: true
6819
6820 /is-extendable@0.1.1:
6821 resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
6822 engines: {node: '>=0.10.0'}
6823 dev: true
6824
6825 /is-extendable@1.0.1:
6826 resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
6827 engines: {node: '>=0.10.0'}
6828 dependencies:
6829 is-plain-object: 2.0.4
6830 dev: true
6831
6832 /is-extglob@1.0.0:
6833 resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==}
6834 engines: {node: '>=0.10.0'}
6835 dev: true
6836
6837 /is-extglob@2.1.1: 3767 /is-extglob@2.1.1:
6838 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 3768 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
6839 engines: {node: '>=0.10.0'} 3769 engines: {node: '>=0.10.0'}
@@ -6842,26 +3772,15 @@ packages:
6842 resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 3772 resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
6843 engines: {node: '>=8'} 3773 engines: {node: '>=8'}
6844 3774
6845 /is-generator-function@1.0.10: 3775 /is-fullwidth-code-point@4.0.0:
6846 resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 3776 resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
6847 engines: {node: '>= 0.4'} 3777 engines: {node: '>=12'}
6848 dependencies:
6849 has-tostringtag: 1.0.0
6850 dev: false
6851
6852 /is-glob@2.0.1:
6853 resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==}
6854 engines: {node: '>=0.10.0'}
6855 dependencies:
6856 is-extglob: 1.0.0
6857 dev: true
6858 3778
6859 /is-glob@3.1.0: 3779 /is-fullwidth-code-point@5.0.0:
6860 resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} 3780 resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
6861 engines: {node: '>=0.10.0'} 3781 engines: {node: '>=18'}
6862 dependencies: 3782 dependencies:
6863 is-extglob: 2.1.1 3783 get-east-asian-width: 1.2.0
6864 dev: true
6865 3784
6866 /is-glob@4.0.3: 3785 /is-glob@4.0.3:
6867 resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 3786 resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
@@ -6869,21 +3788,6 @@ packages:
6869 dependencies: 3788 dependencies:
6870 is-extglob: 2.1.1 3789 is-extglob: 2.1.1
6871 3790
6872 /is-inside-container@1.0.0:
6873 resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
6874 engines: {node: '>=14.16'}
6875 hasBin: true
6876 dependencies:
6877 is-docker: 3.0.0
6878 dev: true
6879
6880 /is-invalid-path@0.1.0:
6881 resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==}
6882 engines: {node: '>=0.10.0'}
6883 dependencies:
6884 is-glob: 2.0.1
6885 dev: true
6886
6887 /is-lambda@1.0.1: 3791 /is-lambda@1.0.1:
6888 resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} 3792 resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
6889 requiresBuild: true 3793 requiresBuild: true
@@ -6902,76 +3806,32 @@ packages:
6902 has-tostringtag: 1.0.0 3806 has-tostringtag: 1.0.0
6903 dev: true 3807 dev: true
6904 3808
6905 /is-number@3.0.0:
6906 resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
6907 engines: {node: '>=0.10.0'}
6908 dependencies:
6909 kind-of: 3.2.2
6910 dev: true
6911
6912 /is-number@7.0.0: 3809 /is-number@7.0.0:
6913 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 3810 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
6914 engines: {node: '>=0.12.0'} 3811 engines: {node: '>=0.12.0'}
6915 3812
6916 /is-path-cwd@2.2.0:
6917 resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
6918 engines: {node: '>=6'}
6919 dev: true
6920
6921 /is-path-in-cwd@2.1.0:
6922 resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==}
6923 engines: {node: '>=6'}
6924 dependencies:
6925 is-path-inside: 2.1.0
6926 dev: true
6927
6928 /is-path-inside@2.1.0:
6929 resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==}
6930 engines: {node: '>=6'}
6931 dependencies:
6932 path-is-inside: 1.0.2
6933 dev: true
6934
6935 /is-path-inside@3.0.3: 3813 /is-path-inside@3.0.3:
6936 resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 3814 resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
6937 engines: {node: '>=8'} 3815 engines: {node: '>=8'}
6938 dev: true 3816 dev: true
6939 3817
6940 /is-plain-obj@3.0.0:
6941 resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
6942 engines: {node: '>=10'}
6943 dev: true
6944
6945 /is-plain-object@2.0.4:
6946 resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
6947 engines: {node: '>=0.10.0'}
6948 dependencies:
6949 isobject: 3.0.1
6950 dev: true
6951
6952 /is-regex@1.1.4: 3818 /is-regex@1.1.4:
6953 resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 3819 resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
6954 engines: {node: '>= 0.4'} 3820 engines: {node: '>= 0.4'}
6955 dependencies: 3821 dependencies:
6956 call-bind: 1.0.2 3822 call-bind: 1.0.5
6957 has-tostringtag: 1.0.0 3823 has-tostringtag: 1.0.0
6958 dev: true 3824 dev: true
6959 3825
6960 /is-shared-array-buffer@1.0.2: 3826 /is-shared-array-buffer@1.0.2:
6961 resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 3827 resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
6962 dependencies: 3828 dependencies:
6963 call-bind: 1.0.2 3829 call-bind: 1.0.5
6964 dev: true
6965
6966 /is-stream@2.0.1:
6967 resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
6968 engines: {node: '>=8'}
6969 dev: true 3830 dev: true
6970 3831
6971 /is-stream@3.0.0: 3832 /is-stream@3.0.0:
6972 resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 3833 resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
6973 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3834 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6974 dev: true
6975 3835
6976 /is-string@1.0.7: 3836 /is-string@1.0.7:
6977 resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 3837 resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
@@ -6991,35 +3851,18 @@ packages:
6991 resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 3851 resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
6992 engines: {node: '>= 0.4'} 3852 engines: {node: '>= 0.4'}
6993 dependencies: 3853 dependencies:
6994 which-typed-array: 1.1.11 3854 which-typed-array: 1.1.13
6995
6996 /is-valid-path@0.1.1:
6997 resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==}
6998 engines: {node: '>=0.10.0'}
6999 dependencies:
7000 is-invalid-path: 0.1.0
7001 dev: true 3855 dev: true
7002 3856
7003 /is-weakref@1.0.2: 3857 /is-weakref@1.0.2:
7004 resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 3858 resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
7005 dependencies: 3859 dependencies:
7006 call-bind: 1.0.2 3860 call-bind: 1.0.5
7007 dev: true
7008
7009 /is-windows@1.0.2:
7010 resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
7011 engines: {node: '>=0.10.0'}
7012 dev: true
7013
7014 /is-wsl@2.2.0:
7015 resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
7016 engines: {node: '>=8'}
7017 dependencies:
7018 is-docker: 2.2.1
7019 dev: true 3861 dev: true
7020 3862
7021 /isarray@1.0.0: 3863 /isarray@1.0.0:
7022 resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 3864 resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
3865 dev: false
7023 3866
7024 /isarray@2.0.5: 3867 /isarray@2.0.5:
7025 resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 3868 resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -7028,28 +3871,6 @@ packages:
7028 /isexe@2.0.0: 3871 /isexe@2.0.0:
7029 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 3872 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
7030 3873
7031 /isobject@2.1.0:
7032 resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
7033 engines: {node: '>=0.10.0'}
7034 dependencies:
7035 isarray: 1.0.0
7036 dev: true
7037
7038 /isobject@3.0.1:
7039 resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
7040 engines: {node: '>=0.10.0'}
7041 dev: true
7042
7043 /jest-diff@25.5.0:
7044 resolution: {integrity: sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==}
7045 engines: {node: '>= 8.3'}
7046 dependencies:
7047 chalk: 3.0.0
7048 diff-sequences: 25.2.6
7049 jest-get-type: 25.2.6
7050 pretty-format: 25.5.0
7051 dev: true
7052
7053 /jest-diff@29.7.0: 3874 /jest-diff@29.7.0:
7054 resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} 3875 resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
7055 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 3876 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7058,91 +3879,26 @@ packages:
7058 diff-sequences: 29.6.3 3879 diff-sequences: 29.6.3
7059 jest-get-type: 29.6.3 3880 jest-get-type: 29.6.3
7060 pretty-format: 29.7.0 3881 pretty-format: 29.7.0
7061 dev: true
7062
7063 /jest-get-type@25.2.6:
7064 resolution: {integrity: sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==}
7065 engines: {node: '>= 8.3'}
7066 dev: true
7067 3882
7068 /jest-get-type@29.6.3: 3883 /jest-get-type@29.6.3:
7069 resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} 3884 resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
7070 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 3885 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
7071 dev: true
7072
7073 /jest-matcher-utils@25.5.0:
7074 resolution: {integrity: sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==}
7075 engines: {node: '>= 8.3'}
7076 dependencies:
7077 chalk: 3.0.0
7078 jest-diff: 25.5.0
7079 jest-get-type: 25.2.6
7080 pretty-format: 25.5.0
7081 dev: true
7082
7083 /jest-util@29.7.0:
7084 resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
7085 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
7086 dependencies:
7087 '@jest/types': 29.6.3
7088 '@types/node': 20.7.2
7089 chalk: 4.1.2
7090 ci-info: 3.8.0
7091 graceful-fs: 4.2.11
7092 picomatch: 2.3.1
7093 dev: true
7094 3886
7095 /jest-worker@27.5.1: 3887 /jose@4.15.4:
7096 resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 3888 resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==}
7097 engines: {node: '>= 10.13.0'}
7098 dependencies:
7099 '@types/node': 20.7.2
7100 merge-stream: 2.0.0
7101 supports-color: 8.1.1
7102
7103 /jest-worker@29.7.0:
7104 resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
7105 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
7106 dependencies:
7107 '@types/node': 20.7.2
7108 jest-util: 29.7.0
7109 merge-stream: 2.0.0
7110 supports-color: 8.1.1
7111 dev: true
7112
7113 /jmespath@0.16.0:
7114 resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==}
7115 engines: {node: '>= 0.6.0'}
7116 dev: false 3889 dev: false
7117 3890
7118 /jose@4.14.6: 3891 /jose@5.2.1:
7119 resolution: {integrity: sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==} 3892 resolution: {integrity: sha512-qiaQhtQRw6YrOaOj0v59h3R6hUY9NvxBmmnMfKemkqYmBB0tEc97NbLP7ix44VP5p9/0YHG8Vyhzuo5YBNwviA==}
7120 dev: false 3893 dev: false
7121 3894
7122 /joycon@3.1.1:
7123 resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
7124 engines: {node: '>=10'}
7125
7126 /js-stringify@1.0.2: 3895 /js-stringify@1.0.2:
7127 resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} 3896 resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==}
7128 dev: false
7129
7130 /js-tokens@3.0.2:
7131 resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==}
7132 dev: true
7133 3897
7134 /js-tokens@4.0.0: 3898 /js-tokens@4.0.0:
7135 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 3899 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
7136 dev: true 3900 dev: true
7137 3901
7138 /js-yaml@3.14.1:
7139 resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
7140 hasBin: true
7141 dependencies:
7142 argparse: 1.0.10
7143 esprima: 4.0.1
7144 dev: true
7145
7146 /js-yaml@4.1.0: 3902 /js-yaml@4.1.0:
7147 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 3903 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
7148 hasBin: true 3904 hasBin: true
@@ -7155,12 +3911,6 @@ packages:
7155 hasBin: true 3911 hasBin: true
7156 dev: true 3912 dev: true
7157 3913
7158 /jsesc@2.5.2:
7159 resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
7160 engines: {node: '>=4'}
7161 hasBin: true
7162 dev: true
7163
7164 /jsesc@3.0.2: 3914 /jsesc@3.0.2:
7165 resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 3915 resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
7166 engines: {node: '>=6'} 3916 engines: {node: '>=6'}
@@ -7174,28 +3924,10 @@ packages:
7174 resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 3924 resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
7175 dev: true 3925 dev: true
7176 3926
7177 /json-schema-deref-sync@0.14.0:
7178 resolution: {integrity: sha512-yGR1xmhdiD6R0MSrwWcFxQzAj5b3i5Gb/mt5tvQKgFMMeNe0KZYNEN/jWr7G+xn39Azqgcvk4ZKMs8dQl8e4wA==}
7179 engines: {node: '>=6.0.0'}
7180 dependencies:
7181 clone: 2.1.2
7182 dag-map: 1.0.2
7183 is-valid-path: 0.1.1
7184 lodash: 4.17.21
7185 md5: 2.2.1
7186 memory-cache: 0.2.0
7187 traverse: 0.6.7
7188 valid-url: 1.0.9
7189 dev: true
7190
7191 /json-schema-traverse@0.4.1: 3927 /json-schema-traverse@0.4.1:
7192 resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 3928 resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
7193 dev: true 3929 dev: true
7194 3930
7195 /json-schema-traverse@1.0.0:
7196 resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
7197 dev: true
7198
7199 /json-stable-stringify-without-jsonify@1.0.1: 3931 /json-stable-stringify-without-jsonify@1.0.1:
7200 resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 3932 resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
7201 dev: true 3933 dev: true
@@ -7207,73 +3939,46 @@ packages:
7207 minimist: 1.2.8 3939 minimist: 1.2.8
7208 dev: true 3940 dev: true
7209 3941
7210 /json5@2.2.3: 3942 /jsonc-eslint-parser@2.4.0:
7211 resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 3943 resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==}
7212 engines: {node: '>=6'} 3944 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
7213 hasBin: true 3945 dependencies:
7214 dev: true 3946 acorn: 8.11.3
7215 3947 eslint-visitor-keys: 3.4.3
7216 /jsonfile@4.0.0: 3948 espree: 9.6.1
7217 resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 3949 semver: 7.6.0
7218 optionalDependencies:
7219 graceful-fs: 4.2.11
7220 dev: true 3950 dev: true
7221 3951
7222 /jsonfile@6.1.0: 3952 /jsonfile@6.1.0:
7223 resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 3953 resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
7224 dependencies: 3954 dependencies:
7225 universalify: 2.0.0 3955 universalify: 2.0.1
7226 optionalDependencies: 3956 optionalDependencies:
7227 graceful-fs: 4.2.11 3957 graceful-fs: 4.2.11
3958 dev: false
7228 3959
7229 /junk@3.1.0: 3960 /jsonschema@1.4.1:
7230 resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} 3961 resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==}
7231 engines: {node: '>=8'}
7232 dev: true
7233
7234 /keyv@4.5.3:
7235 resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
7236 dependencies:
7237 json-buffer: 3.0.1
7238 3962
7239 /kind-of@3.2.2: 3963 /junk@4.0.1:
7240 resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} 3964 resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==}
7241 engines: {node: '>=0.10.0'} 3965 engines: {node: '>=12.20'}
7242 dependencies:
7243 is-buffer: 1.1.6
7244 dev: true
7245 3966
7246 /kind-of@4.0.0: 3967 /keyv@4.5.4:
7247 resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} 3968 resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
7248 engines: {node: '>=0.10.0'}
7249 dependencies: 3969 dependencies:
7250 is-buffer: 1.1.6 3970 json-buffer: 3.0.1
7251 dev: true
7252
7253 /kind-of@5.1.0:
7254 resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
7255 engines: {node: '>=0.10.0'}
7256 dev: true
7257
7258 /kind-of@6.0.3:
7259 resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
7260 engines: {node: '>=0.10.0'}
7261
7262 /kleur@3.0.3:
7263 resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
7264 engines: {node: '>=6'}
7265 dev: true
7266 3971
7267 /kleur@4.1.5: 3972 /kleur@4.1.5:
7268 resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 3973 resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
7269 engines: {node: '>=6'} 3974 engines: {node: '>=6'}
7270 3975
7271 /knex-dynamic-connection@3.1.0(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6): 3976 /knex-dynamic-connection@3.1.1(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7):
7272 resolution: {integrity: sha512-owRQ9cHBtaBUfYBs/dyt1s/Y0PYwUE66apnfYpzzMTkN2tNlzC1s7owqDJleHOelhJERZgd4jd1BZgcdfXLEhQ==} 3977 resolution: {integrity: sha512-Omq2Mw+5LkjJvZX+ESWpLx2FYkH9SB6Qq4Jad7f2LNQOQV1VLq91QQqtEhkgprnQuT3IUvzFooARpSN1uzoMEg==}
7273 engines: {node: '>=14.0.0'} 3978 engines: {node: '>=14.0.0'}
7274 dependencies: 3979 dependencies:
7275 debug: 4.3.4 3980 debug: 4.3.4
7276 knex: 2.5.1(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6) 3981 knex: 3.1.0(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7)
7277 transitivePeerDependencies: 3982 transitivePeerDependencies:
7278 - better-sqlite3 3983 - better-sqlite3
7279 - mysql 3984 - mysql
@@ -7285,9 +3990,9 @@ packages:
7285 - tedious 3990 - tedious
7286 dev: false 3991 dev: false
7287 3992
7288 /knex@2.5.1(mysql@2.18.1)(pg@8.11.1)(sqlite3@5.1.6): 3993 /knex@3.1.0(mysql@2.18.1)(pg@8.11.3)(sqlite3@5.1.7):
7289 resolution: {integrity: sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==} 3994 resolution: {integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==}
7290 engines: {node: '>=12'} 3995 engines: {node: '>=16'}
7291 hasBin: true 3996 hasBin: true
7292 peerDependencies: 3997 peerDependencies:
7293 better-sqlite3: '*' 3998 better-sqlite3: '*'
@@ -7316,35 +4021,24 @@ packages:
7316 colorette: 2.0.19 4021 colorette: 2.0.19
7317 commander: 10.0.1 4022 commander: 10.0.1
7318 debug: 4.3.4 4023 debug: 4.3.4
7319 escalade: 3.1.1 4024 escalade: 3.1.2
7320 esm: 3.2.25 4025 esm: 3.2.25
7321 get-package-type: 0.1.0 4026 get-package-type: 0.1.0
7322 getopts: 2.3.0 4027 getopts: 2.3.0
7323 interpret: 2.2.0 4028 interpret: 2.2.0
7324 lodash: 4.17.21 4029 lodash: 4.17.21
7325 mysql: 2.18.1 4030 mysql: 2.18.1
7326 pg: 8.11.1 4031 pg: 8.11.3
7327 pg-connection-string: 2.6.1 4032 pg-connection-string: 2.6.2
7328 rechoir: 0.8.0 4033 rechoir: 0.8.0
7329 resolve-from: 5.0.0 4034 resolve-from: 5.0.0
7330 sqlite3: 5.1.6 4035 sqlite3: 5.1.7
7331 tarn: 3.0.2 4036 tarn: 3.0.2
7332 tildify: 2.0.0 4037 tildify: 2.0.0
7333 transitivePeerDependencies: 4038 transitivePeerDependencies:
7334 - supports-color 4039 - supports-color
7335 dev: false 4040 dev: false
7336 4041
7337 /launch-editor@2.6.0:
7338 resolution: {integrity: sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==}
7339 dependencies:
7340 picocolors: 1.0.0
7341 shell-quote: 1.8.1
7342 dev: true
7343
7344 /leven@3.1.0:
7345 resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
7346 engines: {node: '>=6'}
7347
7348 /levn@0.4.1: 4042 /levn@0.4.1:
7349 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 4043 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
7350 engines: {node: '>= 0.8.0'} 4044 engines: {node: '>= 0.8.0'}
@@ -7353,42 +4047,10 @@ packages:
7353 type-check: 0.4.0 4047 type-check: 0.4.0
7354 dev: true 4048 dev: true
7355 4049
7356 /lilconfig@2.1.0:
7357 resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
7358 engines: {node: '>=10'}
7359 dev: true
7360
7361 /lines-and-columns@1.2.4: 4050 /lines-and-columns@1.2.4:
7362 resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 4051 resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
7363 dev: true 4052 dev: true
7364 4053
7365 /listify@1.0.3:
7366 resolution: {integrity: sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==}
7367 engines: {node: '>= 0.4'}
7368 dev: true
7369
7370 /loader-runner@4.3.0:
7371 resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
7372 engines: {node: '>=6.11.5'}
7373 dev: true
7374
7375 /loader-utils@2.0.4:
7376 resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
7377 engines: {node: '>=8.9.0'}
7378 dependencies:
7379 big.js: 5.2.2
7380 emojis-list: 3.0.0
7381 json5: 2.2.3
7382 dev: true
7383
7384 /locate-path@3.0.0:
7385 resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
7386 engines: {node: '>=6'}
7387 dependencies:
7388 p-locate: 3.0.0
7389 path-exists: 3.0.0
7390 dev: true
7391
7392 /locate-path@5.0.0: 4054 /locate-path@5.0.0:
7393 resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 4055 resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
7394 engines: {node: '>=8'} 4056 engines: {node: '>=8'}
@@ -7403,103 +4065,55 @@ packages:
7403 p-locate: 5.0.0 4065 p-locate: 5.0.0
7404 dev: true 4066 dev: true
7405 4067
7406 /lodash.debounce@4.0.8: 4068 /locate-path@7.2.0:
7407 resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} 4069 resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
7408 dev: true 4070 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
7409 4071 dependencies:
7410 /lodash.flatten@4.4.0: 4072 p-locate: 6.0.0
7411 resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==}
7412 dev: true
7413
7414 /lodash.get@4.4.2:
7415 resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
7416 dev: true
7417
7418 /lodash.isequal@4.5.0:
7419 resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
7420 dev: true
7421
7422 /lodash.memoize@4.1.2:
7423 resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
7424 dev: true
7425 4073
7426 /lodash.merge@4.6.2: 4074 /lodash.merge@4.6.2:
7427 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 4075 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
7428 dev: true 4076 dev: true
7429 4077
7430 /lodash.set@4.3.2:
7431 resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==}
7432 dev: true
7433
7434 /lodash.uniq@4.5.0:
7435 resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
7436 dev: true
7437
7438 /lodash@4.17.21: 4078 /lodash@4.17.21:
7439 resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 4079 resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
7440 4080
7441 /log-update@4.0.0: 4081 /log-update@6.0.0:
7442 resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} 4082 resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==}
7443 engines: {node: '>=10'} 4083 engines: {node: '>=18'}
7444 dependencies:
7445 ansi-escapes: 4.3.2
7446 cli-cursor: 3.1.0
7447 slice-ansi: 4.0.0
7448 wrap-ansi: 6.2.0
7449
7450 /loupe@2.3.6:
7451 resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
7452 dependencies: 4084 dependencies:
7453 get-func-name: 2.0.2 4085 ansi-escapes: 6.2.0
7454 dev: true 4086 cli-cursor: 4.0.0
7455 4087 slice-ansi: 7.1.0
7456 /lower-case@2.0.2: 4088 strip-ansi: 7.1.0
7457 resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} 4089 wrap-ansi: 9.0.0
7458 dependencies:
7459 tslib: 2.6.2
7460 4090
7461 /lowercase-keys@2.0.0: 4091 /lowercase-keys@3.0.0:
7462 resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} 4092 resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
7463 engines: {node: '>=8'} 4093 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
7464 dev: false 4094 dev: false
7465 4095
7466 /lru-cache@4.1.5:
7467 resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
7468 dependencies:
7469 pseudomap: 1.0.2
7470 yallist: 2.1.2
7471 dev: true
7472
7473 /lru-cache@5.1.1:
7474 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
7475 dependencies:
7476 yallist: 3.1.1
7477 dev: true
7478
7479 /lru-cache@6.0.0: 4096 /lru-cache@6.0.0:
7480 resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 4097 resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
7481 engines: {node: '>=10'} 4098 engines: {node: '>=10'}
7482 dependencies: 4099 dependencies:
7483 yallist: 4.0.0 4100 yallist: 4.0.0
7484 4101
7485 /luxon@3.3.0: 4102 /luxon@3.4.4:
7486 resolution: {integrity: sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==} 4103 resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
7487 engines: {node: '>=12'} 4104 engines: {node: '>=12'}
7488 dev: false 4105 dev: false
7489 4106
7490 /luxon@3.4.3:
7491 resolution: {integrity: sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==}
7492 engines: {node: '>=12'}
7493
7494 /macroable@7.0.2:
7495 resolution: {integrity: sha512-QS9p+Q20YBxpE0dJBnF6CPURP7p1GUsxnhTxTWH5nG3A1F5w8Rg3T4Xyh5UlrFSbHp88oOciVP/0agsNLhkHdQ==}
7496
7497 /make-dir@3.1.0: 4107 /make-dir@3.1.0:
7498 resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 4108 resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
7499 engines: {node: '>=8'} 4109 engines: {node: '>=8'}
7500 dependencies: 4110 dependencies:
7501 semver: 6.3.1 4111 semver: 6.3.1
7502 4112
4113 /make-error@1.3.6:
4114 resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
4115 dev: true
4116
7503 /make-fetch-happen@9.1.0: 4117 /make-fetch-happen@9.1.0:
7504 resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} 4118 resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==}
7505 engines: {node: '>= 10'} 4119 engines: {node: '>= 10'}
@@ -7527,62 +4141,6 @@ packages:
7527 dev: false 4141 dev: false
7528 optional: true 4142 optional: true
7529 4143
7530 /map-age-cleaner@0.1.3:
7531 resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
7532 engines: {node: '>=6'}
7533 dependencies:
7534 p-defer: 1.0.0
7535 dev: true
7536
7537 /map-cache@0.2.2:
7538 resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
7539 engines: {node: '>=0.10.0'}
7540 dev: true
7541
7542 /map-visit@1.0.0:
7543 resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
7544 engines: {node: '>=0.10.0'}
7545 dependencies:
7546 object-visit: 1.0.1
7547 dev: true
7548
7549 /marked-terminal@5.2.0(marked@4.3.0):
7550 resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==}
7551 engines: {node: '>=14.13.1 || >=16.0.0'}
7552 peerDependencies:
7553 marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
7554 dependencies:
7555 ansi-escapes: 6.2.0
7556 cardinal: 2.1.1
7557 chalk: 5.3.0
7558 cli-table3: 0.6.3
7559 marked: 4.3.0
7560 node-emoji: 1.11.0
7561 supports-hyperlinks: 2.3.0
7562 dev: true
7563
7564 /marked@4.3.0:
7565 resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
7566 engines: {node: '>= 12'}
7567 hasBin: true
7568 dev: true
7569
7570 /md5@2.2.1:
7571 resolution: {integrity: sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==}
7572 dependencies:
7573 charenc: 0.0.2
7574 crypt: 0.0.2
7575 is-buffer: 1.1.6
7576 dev: true
7577
7578 /mdn-data@2.0.28:
7579 resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
7580 dev: true
7581
7582 /mdn-data@2.0.30:
7583 resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
7584 dev: true
7585
7586 /media-typer@0.3.0: 4144 /media-typer@0.3.0:
7587 resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 4145 resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
7588 engines: {node: '>= 0.6'} 4146 engines: {node: '>= 0.6'}
@@ -7591,27 +4149,11 @@ packages:
7591 resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} 4149 resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
7592 engines: {node: '>= 0.8'} 4150 engines: {node: '>= 0.8'}
7593 4151
7594 /mem@8.1.1: 4152 /memoize@10.0.0:
7595 resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} 4153 resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==}
7596 engines: {node: '>=10'} 4154 engines: {node: '>=18'}
7597 dependencies:
7598 map-age-cleaner: 0.1.3
7599 mimic-fn: 3.1.0
7600 dev: true
7601
7602 /memfs@3.5.3:
7603 resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
7604 engines: {node: '>= 4.0.0'}
7605 dependencies: 4155 dependencies:
7606 fs-monkey: 1.0.5 4156 mimic-function: 5.0.0
7607
7608 /memory-cache@0.2.0:
7609 resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==}
7610 dev: true
7611
7612 /merge-descriptors@1.0.1:
7613 resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
7614 dev: true
7615 4157
7616 /merge-stream@2.0.0: 4158 /merge-stream@2.0.0:
7617 resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 4159 resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -7620,32 +4162,6 @@ packages:
7620 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 4162 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
7621 engines: {node: '>= 8'} 4163 engines: {node: '>= 8'}
7622 4164
7623 /methods@1.1.2:
7624 resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
7625 engines: {node: '>= 0.6'}
7626 dev: true
7627
7628 /micromatch@3.1.10:
7629 resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
7630 engines: {node: '>=0.10.0'}
7631 dependencies:
7632 arr-diff: 4.0.0
7633 array-unique: 0.3.2
7634 braces: 2.3.2
7635 define-property: 2.0.2
7636 extend-shallow: 3.0.2
7637 extglob: 2.0.4
7638 fragment-cache: 0.2.1
7639 kind-of: 6.0.3
7640 nanomatch: 1.2.13
7641 object.pick: 1.3.0
7642 regex-not: 1.0.2
7643 snapdragon: 0.8.2
7644 to-regex: 3.0.2
7645 transitivePeerDependencies:
7646 - supports-color
7647 dev: true
7648
7649 /micromatch@4.0.5: 4165 /micromatch@4.0.5:
7650 resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 4166 resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
7651 engines: {node: '>=8.6'} 4167 engines: {node: '>=8.6'}
@@ -7657,14 +4173,6 @@ packages:
7657 resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 4173 resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
7658 engines: {node: '>= 0.6'} 4174 engines: {node: '>= 0.6'}
7659 4175
7660 /mime-kind@3.0.0:
7661 resolution: {integrity: sha512-sx9lClVP7GXY2mO3aVDWTQLhfvAdDvNhGi3o3g7+ae3aKaoybeGbEIlnreoRKjrbDpvlPltlkIryxOtatojeXQ==}
7662 engines: {node: '>=8.3.0'}
7663 dependencies:
7664 file-type: 12.4.2
7665 mime-types: 2.1.35
7666 dev: false
7667
7668 /mime-types@2.1.35: 4176 /mime-types@2.1.35:
7669 resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 4177 resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
7670 engines: {node: '>= 0.6'} 4178 engines: {node: '>= 0.6'}
@@ -7675,56 +4183,35 @@ packages:
7675 resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 4183 resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
7676 engines: {node: '>=4'} 4184 engines: {node: '>=4'}
7677 hasBin: true 4185 hasBin: true
7678 4186 dev: false
7679 /mime@2.6.0:
7680 resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
7681 engines: {node: '>=4.0.0'}
7682 hasBin: true
7683 dev: true
7684 4187
7685 /mimic-fn@2.1.0: 4188 /mimic-fn@2.1.0:
7686 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 4189 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
7687 engines: {node: '>=6'} 4190 engines: {node: '>=6'}
7688 4191
7689 /mimic-fn@3.1.0:
7690 resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
7691 engines: {node: '>=8'}
7692 dev: true
7693
7694 /mimic-fn@4.0.0: 4192 /mimic-fn@4.0.0:
7695 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 4193 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
7696 engines: {node: '>=12'} 4194 engines: {node: '>=12'}
7697 dev: true
7698 4195
7699 /mimic-response@1.0.1: 4196 /mimic-function@5.0.0:
7700 resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 4197 resolution: {integrity: sha512-RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==}
7701 engines: {node: '>=4'} 4198 engines: {node: '>=18'}
7702 dev: false
7703 4199
7704 /mimic-response@3.1.0: 4200 /mimic-response@3.1.0:
7705 resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 4201 resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
7706 engines: {node: '>=10'} 4202 engines: {node: '>=10'}
7707 dev: false 4203 dev: false
7708 4204
4205 /mimic-response@4.0.0:
4206 resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
4207 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
4208 dev: false
4209
7709 /min-indent@1.0.1: 4210 /min-indent@1.0.1:
7710 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 4211 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
7711 engines: {node: '>=4'} 4212 engines: {node: '>=4'}
7712 dev: true 4213 dev: true
7713 4214
7714 /mini-css-extract-plugin@2.7.6(webpack@5.88.2):
7715 resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==}
7716 engines: {node: '>= 12.13.0'}
7717 peerDependencies:
7718 webpack: ^5.0.0
7719 dependencies:
7720 schema-utils: 4.2.0
7721 webpack: 5.88.2(webpack-cli@5.1.4)
7722 dev: true
7723
7724 /minimalistic-assert@1.0.1:
7725 resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
7726 dev: true
7727
7728 /minimatch@3.1.2: 4215 /minimatch@3.1.2:
7729 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 4216 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
7730 dependencies: 4217 dependencies:
@@ -7735,6 +4222,13 @@ packages:
7735 engines: {node: '>=10'} 4222 engines: {node: '>=10'}
7736 dependencies: 4223 dependencies:
7737 brace-expansion: 2.0.1 4224 brace-expansion: 2.0.1
4225 dev: false
4226
4227 /minimatch@9.0.3:
4228 resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
4229 engines: {node: '>=16 || 14 >=14.17'}
4230 dependencies:
4231 brace-expansion: 2.0.1
7738 4232
7739 /minimist@1.2.8: 4233 /minimist@1.2.8:
7740 resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 4234 resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
@@ -7793,12 +4287,10 @@ packages:
7793 engines: {node: '>=8'} 4287 engines: {node: '>=8'}
7794 dependencies: 4288 dependencies:
7795 yallist: 4.0.0 4289 yallist: 4.0.0
7796 dev: false
7797 4290
7798 /minipass@5.0.0: 4291 /minipass@5.0.0:
7799 resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 4292 resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
7800 engines: {node: '>=8'} 4293 engines: {node: '>=8'}
7801 dev: false
7802 4294
7803 /minizlib@2.1.2: 4295 /minizlib@2.1.2:
7804 resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 4296 resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
@@ -7806,15 +4298,10 @@ packages:
7806 dependencies: 4298 dependencies:
7807 minipass: 3.3.6 4299 minipass: 3.3.6
7808 yallist: 4.0.0 4300 yallist: 4.0.0
7809 dev: false
7810 4301
7811 /mixin-deep@1.3.2: 4302 /mkdirp-classic@0.5.3:
7812 resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} 4303 resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
7813 engines: {node: '>=0.10.0'} 4304 dev: false
7814 dependencies:
7815 for-in: 1.0.2
7816 is-extendable: 1.0.1
7817 dev: true
7818 4305
7819 /mkdirp@0.5.6: 4306 /mkdirp@0.5.6:
7820 resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 4307 resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
@@ -7827,40 +4314,19 @@ packages:
7827 resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 4314 resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
7828 engines: {node: '>=10'} 4315 engines: {node: '>=10'}
7829 hasBin: true 4316 hasBin: true
7830 dev: false
7831 4317
7832 /moment@2.29.4: 4318 /mkdirp@3.0.1:
7833 resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} 4319 resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
7834 dev: false 4320 engines: {node: '>=10'}
4321 hasBin: true
7835 4322
7836 /mrm-core@7.1.13: 4323 /moment@2.30.1:
7837 resolution: {integrity: sha512-+AlsNuryLYw9HWqf+HBcNXULiwBEfcmb2VDccvYyg71x25bC8nJOn0YJA13x1PUUEF0aEbc5RTfqa6weMtRHaw==} 4324 resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
7838 engines: {node: '>=10.13'} 4325 dev: false
7839 dependencies:
7840 babel-code-frame: 6.26.0
7841 comment-json: 2.4.2
7842 detect-indent: 6.1.0
7843 editorconfig: 0.15.3
7844 find-up: 4.1.0
7845 fs-extra: 8.1.0
7846 kleur: 3.0.3
7847 listify: 1.0.3
7848 lodash: 4.17.21
7849 minimist: 1.2.8
7850 prop-ini: 0.0.2
7851 rc: 1.2.8
7852 readme-badger: 0.3.0
7853 semver: 6.3.1
7854 smpltmpl: 1.0.2
7855 split-lines: 2.1.0
7856 strip-bom: 4.0.0
7857 validate-npm-package-name: 3.0.0
7858 webpack-merge: 4.2.2
7859 yaml: 2.3.2
7860 dev: true
7861 4326
7862 /ms@2.0.0: 4327 /ms@2.0.0:
7863 resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 4328 resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
4329 dev: false
7864 4330
7865 /ms@2.1.2: 4331 /ms@2.1.2:
7866 resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 4332 resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
@@ -7868,27 +4334,6 @@ packages:
7868 /ms@2.1.3: 4334 /ms@2.1.3:
7869 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 4335 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
7870 4336
7871 /multi-part-lite@1.0.0:
7872 resolution: {integrity: sha512-KxIRbBZZ45hoKX1ROD/19wJr0ql1bef1rE8Y1PCwD3PuNXV42pp7Wo8lEHYuAajoT4vfAFcd3rPjlkyEEyt1nw==}
7873 engines: {node: '>=8.3.0'}
7874 dev: false
7875
7876 /multi-part@3.0.0:
7877 resolution: {integrity: sha512-pDbdYQ6DLDxAsD83w9R7r7rlW56cETL7hIB5bCWX7FJYw0K+kL5JwHr0I8tRk9lGeFcAzf+2OEzXWlG/4wCnFw==}
7878 engines: {node: '>=8.3.0'}
7879 dependencies:
7880 mime-kind: 3.0.0
7881 multi-part-lite: 1.0.0
7882 dev: false
7883
7884 /multicast-dns@7.2.5:
7885 resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
7886 hasBin: true
7887 dependencies:
7888 dns-packet: 5.6.1
7889 thunky: 1.1.0
7890 dev: true
7891
7892 /mustache@4.2.0: 4337 /mustache@4.2.0:
7893 resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 4338 resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
7894 hasBin: true 4339 hasBin: true
@@ -7903,34 +4348,15 @@ packages:
7903 sqlstring: 2.3.1 4348 sqlstring: 2.3.1
7904 dev: false 4349 dev: false
7905 4350
7906 /nanoid@3.3.6: 4351 /nanoid@3.3.7:
7907 resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 4352 resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
7908 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 4353 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
7909 hasBin: true 4354 hasBin: true
7910 dev: true 4355 dev: true
7911 4356
7912 /nanomatch@1.2.13: 4357 /napi-build-utils@1.0.2:
7913 resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} 4358 resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
7914 engines: {node: '>=0.10.0'} 4359 dev: false
7915 dependencies:
7916 arr-diff: 4.0.0
7917 array-unique: 0.3.2
7918 define-property: 2.0.2
7919 extend-shallow: 3.0.2
7920 fragment-cache: 0.2.1
7921 is-windows: 1.0.2
7922 kind-of: 6.0.3
7923 object.pick: 1.3.0
7924 regex-not: 1.0.2
7925 snapdragon: 0.8.2
7926 to-regex: 3.0.2
7927 transitivePeerDependencies:
7928 - supports-color
7929 dev: true
7930
7931 /natural-compare-lite@1.4.0:
7932 resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
7933 dev: true
7934 4360
7935 /natural-compare@1.4.0: 4361 /natural-compare@1.4.0:
7936 resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 4362 resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -7940,33 +4366,20 @@ packages:
7940 resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 4366 resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
7941 engines: {node: '>= 0.6'} 4367 engines: {node: '>= 0.6'}
7942 4368
7943 /neo-async@2.6.2: 4369 /node-abi@3.54.0:
7944 resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 4370 resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==}
7945 dev: true 4371 engines: {node: '>=10'}
7946
7947 /nested-error-stacks@2.1.1:
7948 resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==}
7949 dev: true
7950
7951 /no-case@3.0.4:
7952 resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
7953 dependencies: 4372 dependencies:
7954 lower-case: 2.0.2 4373 semver: 7.6.0
7955 tslib: 2.6.2
7956
7957 /node-addon-api@4.3.0:
7958 resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==}
7959 dev: false 4374 dev: false
7960 4375
7961 /node-addon-api@5.1.0: 4376 /node-addon-api@5.1.0:
7962 resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} 4377 resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
7963 dev: false
7964 4378
7965 /node-emoji@1.11.0: 4379 /node-addon-api@7.1.0:
7966 resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} 4380 resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==}
7967 dependencies: 4381 engines: {node: ^16 || ^18 || >= 20}
7968 lodash: 4.17.21 4382 dev: false
7969 dev: true
7970 4383
7971 /node-fetch@2.7.0: 4384 /node-fetch@2.7.0:
7972 resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 4385 resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
@@ -7978,12 +4391,6 @@ packages:
7978 optional: true 4391 optional: true
7979 dependencies: 4392 dependencies:
7980 whatwg-url: 5.0.0 4393 whatwg-url: 5.0.0
7981 dev: false
7982
7983 /node-forge@1.3.1:
7984 resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
7985 engines: {node: '>= 6.13.0'}
7986 dev: true
7987 4394
7988 /node-gyp@8.4.1: 4395 /node-gyp@8.4.1:
7989 resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} 4396 resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==}
@@ -7998,7 +4405,7 @@ packages:
7998 nopt: 5.0.0 4405 nopt: 5.0.0
7999 npmlog: 6.0.2 4406 npmlog: 6.0.2
8000 rimraf: 3.0.2 4407 rimraf: 3.0.2
8001 semver: 7.5.4 4408 semver: 7.6.0
8002 tar: 6.2.0 4409 tar: 6.2.0
8003 which: 2.0.2 4410 which: 2.0.2
8004 transitivePeerDependencies: 4411 transitivePeerDependencies:
@@ -8007,22 +4414,12 @@ packages:
8007 dev: false 4414 dev: false
8008 optional: true 4415 optional: true
8009 4416
8010 /node-releases@2.0.13: 4417 /node-releases@2.0.14:
8011 resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 4418 resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
8012 dev: true 4419 dev: true
8013 4420
8014 /node-repl-await@0.1.2: 4421 /nodemailer@6.9.9:
8015 resolution: {integrity: sha512-e03zlI31RjF6Ks9+/ju0gY55dZSm21XXMSzy85FGZtDxuAZCa/iQwzWoQjmZvaolQCrIjzs0e4shxZs1bxbpUg==} 4422 resolution: {integrity: sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==}
8016 dependencies:
8017 acorn: 8.10.0
8018 acorn-class-fields: 1.0.0(acorn@8.10.0)
8019 acorn-private-methods: 1.0.0(acorn@8.10.0)
8020 acorn-static-class-features: 1.0.0(acorn@8.10.0)
8021 acorn-walk: 8.2.0
8022 dev: false
8023
8024 /nodemailer@6.9.5:
8025 resolution: {integrity: sha512-/dmdWo62XjumuLc5+AYQZeiRj+PRR8y8qKtFCOyuOl1k/hckZd8durUUHs/ucKx6/8kN+wFxqKJlQ/LK/qR5FA==}
8026 engines: {node: '>=6.0.0'} 4423 engines: {node: '>=6.0.0'}
8027 dev: false 4424 dev: false
8028 4425
@@ -8032,13 +4429,12 @@ packages:
8032 hasBin: true 4429 hasBin: true
8033 dependencies: 4430 dependencies:
8034 abbrev: 1.1.1 4431 abbrev: 1.1.1
8035 dev: false
8036 4432
8037 /normalize-package-data@2.5.0: 4433 /normalize-package-data@2.5.0:
8038 resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 4434 resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
8039 dependencies: 4435 dependencies:
8040 hosted-git-info: 2.8.9 4436 hosted-git-info: 2.8.9
8041 resolve: 1.22.6 4437 resolve: 1.22.8
8042 semver: 5.7.2 4438 semver: 5.7.2
8043 validate-npm-package-license: 3.0.4 4439 validate-npm-package-license: 3.0.4
8044 dev: true 4440 dev: true
@@ -8046,25 +4442,17 @@ packages:
8046 /normalize-path@3.0.0: 4442 /normalize-path@3.0.0:
8047 resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 4443 resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
8048 engines: {node: '>=0.10.0'} 4444 engines: {node: '>=0.10.0'}
8049 dev: true
8050 4445
8051 /normalize-url@6.1.0: 4446 /normalize-url@8.0.0:
8052 resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} 4447 resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==}
8053 engines: {node: '>=10'} 4448 engines: {node: '>=14.16'}
8054 4449 dev: false
8055 /npm-run-path@4.0.1:
8056 resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
8057 engines: {node: '>=8'}
8058 dependencies:
8059 path-key: 3.1.1
8060 dev: true
8061 4450
8062 /npm-run-path@5.1.0: 4451 /npm-run-path@5.2.0:
8063 resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 4452 resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==}
8064 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4453 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
8065 dependencies: 4454 dependencies:
8066 path-key: 4.0.0 4455 path-key: 4.0.0
8067 dev: true
8068 4456
8069 /npmlog@5.0.1: 4457 /npmlog@5.0.1:
8070 resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} 4458 resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
@@ -8073,7 +4461,6 @@ packages:
8073 console-control-strings: 1.1.0 4461 console-control-strings: 1.1.0
8074 gauge: 3.0.2 4462 gauge: 3.0.2
8075 set-blocking: 2.0.0 4463 set-blocking: 2.0.0
8076 dev: false
8077 4464
8078 /npmlog@6.0.2: 4465 /npmlog@6.0.2:
8079 resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} 4466 resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
@@ -8087,45 +4474,23 @@ packages:
8087 dev: false 4474 dev: false
8088 optional: true 4475 optional: true
8089 4476
8090 /nth-check@2.1.1:
8091 resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
8092 dependencies:
8093 boolbase: 1.0.0
8094 dev: true
8095
8096 /object-assign@4.1.1: 4477 /object-assign@4.1.1:
8097 resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 4478 resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
8098 engines: {node: '>=0.10.0'} 4479 engines: {node: '>=0.10.0'}
8099 4480
8100 /object-copy@0.1.0: 4481 /object-inspect@1.13.1:
8101 resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} 4482 resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
8102 engines: {node: '>=0.10.0'}
8103 dependencies:
8104 copy-descriptor: 0.1.1
8105 define-property: 0.2.5
8106 kind-of: 3.2.2
8107 dev: true
8108
8109 /object-inspect@1.12.3:
8110 resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
8111 4483
8112 /object-keys@1.1.1: 4484 /object-keys@1.1.1:
8113 resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 4485 resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
8114 engines: {node: '>= 0.4'} 4486 engines: {node: '>= 0.4'}
8115 dev: true 4487 dev: true
8116 4488
8117 /object-visit@1.0.1: 4489 /object.assign@4.1.5:
8118 resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} 4490 resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
8119 engines: {node: '>=0.10.0'}
8120 dependencies:
8121 isobject: 3.0.1
8122 dev: true
8123
8124 /object.assign@4.1.4:
8125 resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
8126 engines: {node: '>= 0.4'} 4491 engines: {node: '>= 0.4'}
8127 dependencies: 4492 dependencies:
8128 call-bind: 1.0.2 4493 call-bind: 1.0.5
8129 define-properties: 1.2.1 4494 define-properties: 1.2.1
8130 has-symbols: 1.0.3 4495 has-symbols: 1.0.3
8131 object-keys: 1.1.1 4496 object-keys: 1.1.1
@@ -8135,42 +4500,32 @@ packages:
8135 resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} 4500 resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
8136 engines: {node: '>= 0.4'} 4501 engines: {node: '>= 0.4'}
8137 dependencies: 4502 dependencies:
8138 call-bind: 1.0.2 4503 call-bind: 1.0.5
8139 define-properties: 1.2.1 4504 define-properties: 1.2.1
8140 es-abstract: 1.22.2 4505 es-abstract: 1.22.3
8141 dev: true 4506 dev: true
8142 4507
8143 /object.groupby@1.0.1: 4508 /object.groupby@1.0.1:
8144 resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} 4509 resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
8145 dependencies: 4510 dependencies:
8146 call-bind: 1.0.2 4511 call-bind: 1.0.5
8147 define-properties: 1.2.1 4512 define-properties: 1.2.1
8148 es-abstract: 1.22.2 4513 es-abstract: 1.22.3
8149 get-intrinsic: 1.2.1 4514 get-intrinsic: 1.2.2
8150 dev: true
8151
8152 /object.pick@1.3.0:
8153 resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
8154 engines: {node: '>=0.10.0'}
8155 dependencies:
8156 isobject: 3.0.1
8157 dev: true 4515 dev: true
8158 4516
8159 /object.values@1.1.7: 4517 /object.values@1.1.7:
8160 resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} 4518 resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
8161 engines: {node: '>= 0.4'} 4519 engines: {node: '>= 0.4'}
8162 dependencies: 4520 dependencies:
8163 call-bind: 1.0.2 4521 call-bind: 1.0.5
8164 define-properties: 1.2.1 4522 define-properties: 1.2.1
8165 es-abstract: 1.22.2 4523 es-abstract: 1.22.3
8166 dev: true 4524 dev: true
8167 4525
8168 /obuf@1.1.2: 4526 /on-exit-leak-free@2.1.2:
8169 resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} 4527 resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
8170 dev: true 4528 engines: {node: '>=14.0.0'}
8171
8172 /on-exit-leak-free@2.1.0:
8173 resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==}
8174 4529
8175 /on-finished@2.4.1: 4530 /on-finished@2.4.1:
8176 resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 4531 resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
@@ -8178,11 +4533,6 @@ packages:
8178 dependencies: 4533 dependencies:
8179 ee-first: 1.1.1 4534 ee-first: 1.1.1
8180 4535
8181 /on-headers@1.0.2:
8182 resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
8183 engines: {node: '>= 0.8'}
8184 dev: true
8185
8186 /once@1.4.0: 4536 /once@1.4.0:
8187 resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 4537 resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
8188 dependencies: 4538 dependencies:
@@ -8199,43 +4549,6 @@ packages:
8199 engines: {node: '>=12'} 4549 engines: {node: '>=12'}
8200 dependencies: 4550 dependencies:
8201 mimic-fn: 4.0.0 4551 mimic-fn: 4.0.0
8202 dev: true
8203
8204 /open@8.4.2:
8205 resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
8206 engines: {node: '>=12'}
8207 dependencies:
8208 define-lazy-prop: 2.0.0
8209 is-docker: 2.2.1
8210 is-wsl: 2.2.0
8211 dev: true
8212
8213 /open@9.1.0:
8214 resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==}
8215 engines: {node: '>=14.16'}
8216 dependencies:
8217 default-browser: 4.0.0
8218 define-lazy-prop: 3.0.0
8219 is-inside-container: 1.0.0
8220 is-wsl: 2.2.0
8221 dev: true
8222
8223 /openapi-schema-validator@3.0.3:
8224 resolution: {integrity: sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==}
8225 dependencies:
8226 ajv: 6.12.6
8227 lodash.merge: 4.6.2
8228 openapi-types: 1.3.4
8229 swagger-schema-official: 2.0.0-bab6bed
8230 dev: true
8231
8232 /openapi-types@1.3.4:
8233 resolution: {integrity: sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==}
8234 dev: true
8235
8236 /openapi-types@12.1.3:
8237 resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
8238 dev: true
8239 4552
8240 /optionator@0.9.3: 4553 /optionator@0.9.3:
8241 resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 4554 resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
@@ -8249,41 +4562,22 @@ packages:
8249 type-check: 0.4.0 4562 type-check: 0.4.0
8250 dev: true 4563 dev: true
8251 4564
8252 /p-all@2.1.0: 4565 /p-cancelable@4.0.1:
8253 resolution: {integrity: sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==} 4566 resolution: {integrity: sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==}
8254 engines: {node: '>=6'} 4567 engines: {node: '>=14.16'}
8255 dependencies:
8256 p-map: 2.1.0
8257 dev: true
8258
8259 /p-cancelable@2.1.1:
8260 resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
8261 engines: {node: '>=8'}
8262 dev: false 4568 dev: false
8263 4569
8264 /p-defer@1.0.0: 4570 /p-event@6.0.0:
8265 resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} 4571 resolution: {integrity: sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==}
8266 engines: {node: '>=4'} 4572 engines: {node: '>=16.17'}
8267 dev: true
8268
8269 /p-event@4.2.0:
8270 resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==}
8271 engines: {node: '>=8'}
8272 dependencies: 4573 dependencies:
8273 p-timeout: 3.2.0 4574 p-timeout: 6.1.2
8274 dev: true
8275 4575
8276 /p-filter@2.1.0: 4576 /p-filter@3.0.0:
8277 resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 4577 resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==}
8278 engines: {node: '>=8'} 4578 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
8279 dependencies: 4579 dependencies:
8280 p-map: 2.1.0 4580 p-map: 5.5.0
8281 dev: true
8282
8283 /p-finally@1.0.0:
8284 resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
8285 engines: {node: '>=4'}
8286 dev: true
8287 4581
8288 /p-limit@2.3.0: 4582 /p-limit@2.3.0:
8289 resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 4583 resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
@@ -8299,12 +4593,11 @@ packages:
8299 yocto-queue: 0.1.0 4593 yocto-queue: 0.1.0
8300 dev: true 4594 dev: true
8301 4595
8302 /p-locate@3.0.0: 4596 /p-limit@4.0.0:
8303 resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} 4597 resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
8304 engines: {node: '>=6'} 4598 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
8305 dependencies: 4599 dependencies:
8306 p-limit: 2.3.0 4600 yocto-queue: 1.0.0
8307 dev: true
8308 4601
8309 /p-locate@4.1.0: 4602 /p-locate@4.1.0:
8310 resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 4603 resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
@@ -8320,17 +4613,11 @@ packages:
8320 p-limit: 3.1.0 4613 p-limit: 3.1.0
8321 dev: true 4614 dev: true
8322 4615
8323 /p-map@2.1.0: 4616 /p-locate@6.0.0:
8324 resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 4617 resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
8325 engines: {node: '>=6'} 4618 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
8326 dev: true
8327
8328 /p-map@3.0.0:
8329 resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==}
8330 engines: {node: '>=8'}
8331 dependencies: 4619 dependencies:
8332 aggregate-error: 3.1.0 4620 p-limit: 4.0.0
8333 dev: true
8334 4621
8335 /p-map@4.0.0: 4622 /p-map@4.0.0:
8336 resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 4623 resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
@@ -8341,20 +4628,19 @@ packages:
8341 dev: false 4628 dev: false
8342 optional: true 4629 optional: true
8343 4630
8344 /p-retry@4.6.2: 4631 /p-map@5.5.0:
8345 resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} 4632 resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==}
8346 engines: {node: '>=8'} 4633 engines: {node: '>=12'}
8347 dependencies: 4634 dependencies:
8348 '@types/retry': 0.12.0 4635 aggregate-error: 4.0.1
8349 retry: 0.13.1
8350 dev: true
8351 4636
8352 /p-timeout@3.2.0: 4637 /p-map@6.0.0:
8353 resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} 4638 resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==}
8354 engines: {node: '>=8'} 4639 engines: {node: '>=16'}
8355 dependencies: 4640
8356 p-finally: 1.0.0 4641 /p-timeout@6.1.2:
8357 dev: true 4642 resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==}
4643 engines: {node: '>=14.16'}
8358 4644
8359 /p-try@2.2.0: 4645 /p-try@2.2.0:
8360 resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 4646 resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
@@ -8365,12 +4651,6 @@ packages:
8365 resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} 4651 resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==}
8366 dev: false 4652 dev: false
8367 4653
8368 /param-case@3.0.4:
8369 resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
8370 dependencies:
8371 dot-case: 3.0.4
8372 tslib: 2.6.2
8373
8374 /parent-module@1.0.1: 4654 /parent-module@1.0.1:
8375 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 4655 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
8376 engines: {node: '>=6'} 4656 engines: {node: '>=6'}
@@ -8378,26 +4658,18 @@ packages:
8378 callsites: 3.1.0 4658 callsites: 3.1.0
8379 dev: true 4659 dev: true
8380 4660
8381 /parent-module@2.0.0: 4661 /parse-imports@1.1.2:
8382 resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} 4662 resolution: {integrity: sha512-UgTSNWlBvx+f4nxVSH3fOyJPJKol8GkFuG8mN8q9FqtmJgwaEx0azPRlXXX0klNlRxoP2gwme00TPDSm6rm/IA==}
8383 engines: {node: '>=8'} 4663 engines: {node: '>= 12.17'}
8384 dependencies:
8385 callsites: 3.1.0
8386 dev: true
8387
8388 /parse-imports@0.0.5:
8389 resolution: {integrity: sha512-yA6mDNotJmyAXcEdi2AjiHfI8Llk+/uv/jgBgvzFVP8iGaHC5L3rR6VQk/1qEE3SvLUsDQ2GdQMfPTi0qrmt8Q==}
8390 engines: {node: '>= 10'}
8391 dependencies: 4664 dependencies:
8392 es-module-lexer: 0.3.26 4665 es-module-lexer: 1.4.1
8393 slashes: 2.0.2 4666 slashes: 3.0.12
8394 dev: false
8395 4667
8396 /parse-json@5.2.0: 4668 /parse-json@5.2.0:
8397 resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 4669 resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
8398 engines: {node: '>=8'} 4670 engines: {node: '>=8'}
8399 dependencies: 4671 dependencies:
8400 '@babel/code-frame': 7.22.13 4672 '@babel/code-frame': 7.23.5
8401 error-ex: 1.3.2 4673 error-ex: 1.3.2
8402 json-parse-even-better-errors: 2.3.1 4674 json-parse-even-better-errors: 2.3.1
8403 lines-and-columns: 1.2.4 4675 lines-and-columns: 1.2.4
@@ -8406,87 +4678,43 @@ packages:
8406 /parseurl@1.3.3: 4678 /parseurl@1.3.3:
8407 resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 4679 resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
8408 engines: {node: '>= 0.8'} 4680 engines: {node: '>= 0.8'}
8409 4681 dev: false
8410 /pascal-case@3.1.2:
8411 resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
8412 dependencies:
8413 no-case: 3.0.4
8414 tslib: 2.6.2
8415
8416 /pascalcase@0.1.1:
8417 resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
8418 engines: {node: '>=0.10.0'}
8419 dev: true
8420 4682
8421 /path-browserify@1.0.1: 4683 /path-browserify@1.0.1:
8422 resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 4684 resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
8423 dev: false
8424
8425 /path-case@3.0.4:
8426 resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
8427 dependencies:
8428 dot-case: 3.0.4
8429 tslib: 2.6.2
8430
8431 /path-dirname@1.0.2:
8432 resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==}
8433 dev: true
8434
8435 /path-exists@3.0.0:
8436 resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
8437 engines: {node: '>=4'}
8438 dev: true
8439 4685
8440 /path-exists@4.0.0: 4686 /path-exists@4.0.0:
8441 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 4687 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
8442 engines: {node: '>=8'} 4688 engines: {node: '>=8'}
8443 dev: true 4689 dev: true
8444 4690
4691 /path-exists@5.0.0:
4692 resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
4693 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
4694
8445 /path-is-absolute@1.0.1: 4695 /path-is-absolute@1.0.1:
8446 resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 4696 resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
8447 engines: {node: '>=0.10.0'} 4697 engines: {node: '>=0.10.0'}
8448 requiresBuild: true 4698 requiresBuild: true
8449 4699
8450 /path-is-inside@1.0.2:
8451 resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
8452 dev: true
8453
8454 /path-key@3.1.1: 4700 /path-key@3.1.1:
8455 resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 4701 resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
8456 engines: {node: '>=8'} 4702 engines: {node: '>=8'}
8457 dev: true
8458 4703
8459 /path-key@4.0.0: 4704 /path-key@4.0.0:
8460 resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 4705 resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
8461 engines: {node: '>=12'} 4706 engines: {node: '>=12'}
8462 dev: true
8463 4707
8464 /path-parse@1.0.7: 4708 /path-parse@1.0.7:
8465 resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 4709 resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
8466 4710
8467 /path-to-regexp@0.1.7:
8468 resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
8469 dev: true
8470
8471 /path-type@3.0.0:
8472 resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
8473 engines: {node: '>=4'}
8474 dependencies:
8475 pify: 3.0.0
8476 dev: true
8477
8478 /path-type@4.0.0: 4711 /path-type@4.0.0:
8479 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 4712 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
8480 engines: {node: '>=8'} 4713 engines: {node: '>=8'}
8481 dev: true
8482 4714
8483 /pathval@1.1.1: 4715 /peek-readable@5.0.0:
8484 resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 4716 resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==}
8485 dev: true 4717 engines: {node: '>=14.16'}
8486
8487 /peek-readable@4.1.0:
8488 resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==}
8489 engines: {node: '>=8'}
8490 4718
8491 /pg-cloudflare@1.1.1: 4719 /pg-cloudflare@1.1.1:
8492 resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} 4720 resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==}
@@ -8494,10 +4722,6 @@ packages:
8494 dev: false 4722 dev: false
8495 optional: true 4723 optional: true
8496 4724
8497 /pg-connection-string@2.6.1:
8498 resolution: {integrity: sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==}
8499 dev: false
8500
8501 /pg-connection-string@2.6.2: 4725 /pg-connection-string@2.6.2:
8502 resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} 4726 resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==}
8503 dev: false 4727 dev: false
@@ -8507,12 +4731,12 @@ packages:
8507 engines: {node: '>=4.0.0'} 4731 engines: {node: '>=4.0.0'}
8508 dev: false 4732 dev: false
8509 4733
8510 /pg-pool@3.6.1(pg@8.11.1): 4734 /pg-pool@3.6.1(pg@8.11.3):
8511 resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} 4735 resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==}
8512 peerDependencies: 4736 peerDependencies:
8513 pg: '>=8.0' 4737 pg: '>=8.0'
8514 dependencies: 4738 dependencies:
8515 pg: 8.11.1 4739 pg: 8.11.3
8516 dev: false 4740 dev: false
8517 4741
8518 /pg-protocol@1.6.0: 4742 /pg-protocol@1.6.0:
@@ -8530,8 +4754,8 @@ packages:
8530 postgres-interval: 1.2.0 4754 postgres-interval: 1.2.0
8531 dev: false 4755 dev: false
8532 4756
8533 /pg@8.11.1: 4757 /pg@8.11.3:
8534 resolution: {integrity: sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ==} 4758 resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==}
8535 engines: {node: '>= 8.0.0'} 4759 engines: {node: '>= 8.0.0'}
8536 peerDependencies: 4760 peerDependencies:
8537 pg-native: '>=3.0.1' 4761 pg-native: '>=3.0.1'
@@ -8542,7 +4766,7 @@ packages:
8542 buffer-writer: 2.0.0 4766 buffer-writer: 2.0.0
8543 packet-reader: 1.0.0 4767 packet-reader: 1.0.0
8544 pg-connection-string: 2.6.2 4768 pg-connection-string: 2.6.2
8545 pg-pool: 3.6.1(pg@8.11.1) 4769 pg-pool: 3.6.1(pg@8.11.3)
8546 pg-protocol: 1.6.0 4770 pg-protocol: 1.6.0
8547 pg-types: 2.2.0 4771 pg-types: 2.2.0
8548 pgpass: 1.0.5 4772 pgpass: 1.0.5
@@ -8556,19 +4780,6 @@ packages:
8556 split2: 4.2.0 4780 split2: 4.2.0
8557 dev: false 4781 dev: false
8558 4782
8559 /phc-bcrypt@1.0.8:
8560 resolution: {integrity: sha512-k2Q1J+K4KOf47Uee7fqGFiu1nWKCqd17ks44U/WUHOZ4UvR2iRvkPpZtMQBLGbD82Ows/s+DiNhAMBOj7jPnrQ==}
8561 engines: {node: '>=12'}
8562 dependencies:
8563 '@kdf/salt': 2.0.1
8564 '@phc/format': 1.0.0
8565 bcrypt: 5.1.1
8566 tsse: 2.1.0
8567 transitivePeerDependencies:
8568 - encoding
8569 - supports-color
8570 dev: false
8571
8572 /picocolors@1.0.0: 4783 /picocolors@1.0.0:
8573 resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 4784 resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
8574 dev: true 4785 dev: true
@@ -8577,32 +4788,9 @@ packages:
8577 resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 4788 resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
8578 engines: {node: '>=8.6'} 4789 engines: {node: '>=8.6'}
8579 4790
8580 /pify@2.3.0: 4791 /picomatch@3.0.1:
8581 resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 4792 resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==}
8582 engines: {node: '>=0.10.0'} 4793 engines: {node: '>=10'}
8583 dev: true
8584
8585 /pify@3.0.0:
8586 resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
8587 engines: {node: '>=4'}
8588 dev: true
8589
8590 /pify@4.0.1:
8591 resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
8592 engines: {node: '>=6'}
8593 dev: true
8594
8595 /pinkie-promise@2.0.1:
8596 resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==}
8597 engines: {node: '>=0.10.0'}
8598 dependencies:
8599 pinkie: 2.0.4
8600 dev: true
8601
8602 /pinkie@2.0.4:
8603 resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==}
8604 engines: {node: '>=0.10.0'}
8605 dev: true
8606 4794
8607 /pino-abstract-transport@1.1.0: 4795 /pino-abstract-transport@1.1.0:
8608 resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} 4796 resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==}
@@ -8610,411 +4798,40 @@ packages:
8610 readable-stream: 4.4.2 4798 readable-stream: 4.4.2
8611 split2: 4.2.0 4799 split2: 4.2.0
8612 4800
8613 /pino-pretty@10.2.0:
8614 resolution: {integrity: sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==}
8615 hasBin: true
8616 dependencies:
8617 colorette: 2.0.20
8618 dateformat: 4.6.3
8619 fast-copy: 3.0.1
8620 fast-safe-stringify: 2.1.1
8621 help-me: 4.2.0
8622 joycon: 3.1.1
8623 minimist: 1.2.8
8624 on-exit-leak-free: 2.1.0
8625 pino-abstract-transport: 1.1.0
8626 pump: 3.0.0
8627 readable-stream: 4.4.2
8628 secure-json-parse: 2.7.0
8629 sonic-boom: 3.4.0
8630 strip-json-comments: 3.1.1
8631
8632 /pino-std-serializers@3.2.0:
8633 resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==}
8634
8635 /pino-std-serializers@6.2.2: 4801 /pino-std-serializers@6.2.2:
8636 resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 4802 resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
8637 4803
8638 /pino@6.14.0: 4804 /pino@8.18.0:
8639 resolution: {integrity: sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==} 4805 resolution: {integrity: sha512-Mz/gKiRyuXu4HnpHgi1YWdHQCoWMufapzooisvFn78zl4dZciAxS+YeRkUxXl1ee/SzU80YCz1zpECCh4oC6Aw==}
8640 hasBin: true 4806 hasBin: true
8641 dependencies: 4807 dependencies:
4808 atomic-sleep: 1.0.0
8642 fast-redact: 3.3.0 4809 fast-redact: 3.3.0
8643 fast-safe-stringify: 2.1.1 4810 on-exit-leak-free: 2.1.2
8644 flatstr: 1.0.12 4811 pino-abstract-transport: 1.1.0
8645 pino-std-serializers: 3.2.0 4812 pino-std-serializers: 6.2.2
8646 process-warning: 1.0.0 4813 process-warning: 3.0.0
8647 quick-format-unescaped: 4.0.4 4814 quick-format-unescaped: 4.0.4
8648 sonic-boom: 1.4.1 4815 real-require: 0.2.0
4816 safe-stable-stringify: 2.4.3
4817 sonic-boom: 3.8.0
4818 thread-stream: 2.4.1
8649 4819
8650 /pirates@4.0.6: 4820 /pkg-dir@7.0.0:
8651 resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 4821 resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
8652 engines: {node: '>= 6'} 4822 engines: {node: '>=14.16'}
8653 dev: true
8654
8655 /pkg-dir@4.2.0:
8656 resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
8657 engines: {node: '>=8'}
8658 dependencies:
8659 find-up: 4.1.0
8660 dev: true
8661
8662 /pkg-up@3.1.0:
8663 resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
8664 engines: {node: '>=8'}
8665 dependencies: 4823 dependencies:
8666 find-up: 3.0.0 4824 find-up: 6.3.0
8667 dev: true
8668 4825
8669 /pluralize@8.0.0: 4826 /pluralize@8.0.0:
8670 resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 4827 resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
8671 engines: {node: '>=4'} 4828 engines: {node: '>=4'}
8672 4829
8673 /posix-character-classes@0.1.1: 4830 /postcss@8.4.35:
8674 resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} 4831 resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
8675 engines: {node: '>=0.10.0'}
8676 dev: true
8677
8678 /postcss-calc@9.0.1(postcss@8.4.31):
8679 resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==}
8680 engines: {node: ^14 || ^16 || >=18.0}
8681 peerDependencies:
8682 postcss: ^8.2.2
8683 dependencies:
8684 postcss: 8.4.31
8685 postcss-selector-parser: 6.0.13
8686 postcss-value-parser: 4.2.0
8687 dev: true
8688
8689 /postcss-colormin@6.0.0(postcss@8.4.31):
8690 resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==}
8691 engines: {node: ^14 || ^16 || >=18.0}
8692 peerDependencies:
8693 postcss: ^8.2.15
8694 dependencies:
8695 browserslist: 4.22.1
8696 caniuse-api: 3.0.0
8697 colord: 2.9.3
8698 postcss: 8.4.31
8699 postcss-value-parser: 4.2.0
8700 dev: true
8701
8702 /postcss-convert-values@6.0.0(postcss@8.4.31):
8703 resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==}
8704 engines: {node: ^14 || ^16 || >=18.0}
8705 peerDependencies:
8706 postcss: ^8.2.15
8707 dependencies:
8708 browserslist: 4.22.1
8709 postcss: 8.4.31
8710 postcss-value-parser: 4.2.0
8711 dev: true
8712
8713 /postcss-discard-comments@6.0.0(postcss@8.4.31):
8714 resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==}
8715 engines: {node: ^14 || ^16 || >=18.0}
8716 peerDependencies:
8717 postcss: ^8.2.15
8718 dependencies:
8719 postcss: 8.4.31
8720 dev: true
8721
8722 /postcss-discard-duplicates@6.0.0(postcss@8.4.31):
8723 resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==}
8724 engines: {node: ^14 || ^16 || >=18.0}
8725 peerDependencies:
8726 postcss: ^8.2.15
8727 dependencies:
8728 postcss: 8.4.31
8729 dev: true
8730
8731 /postcss-discard-empty@6.0.0(postcss@8.4.31):
8732 resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==}
8733 engines: {node: ^14 || ^16 || >=18.0}
8734 peerDependencies:
8735 postcss: ^8.2.15
8736 dependencies:
8737 postcss: 8.4.31
8738 dev: true
8739
8740 /postcss-discard-overridden@6.0.0(postcss@8.4.31):
8741 resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==}
8742 engines: {node: ^14 || ^16 || >=18.0}
8743 peerDependencies:
8744 postcss: ^8.2.15
8745 dependencies:
8746 postcss: 8.4.31
8747 dev: true
8748
8749 /postcss-merge-longhand@6.0.0(postcss@8.4.31):
8750 resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==}
8751 engines: {node: ^14 || ^16 || >=18.0}
8752 peerDependencies:
8753 postcss: ^8.2.15
8754 dependencies:
8755 postcss: 8.4.31
8756 postcss-value-parser: 4.2.0
8757 stylehacks: 6.0.0(postcss@8.4.31)
8758 dev: true
8759
8760 /postcss-merge-rules@6.0.1(postcss@8.4.31):
8761 resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==}
8762 engines: {node: ^14 || ^16 || >=18.0}
8763 peerDependencies:
8764 postcss: ^8.2.15
8765 dependencies:
8766 browserslist: 4.22.1
8767 caniuse-api: 3.0.0
8768 cssnano-utils: 4.0.0(postcss@8.4.31)
8769 postcss: 8.4.31
8770 postcss-selector-parser: 6.0.13
8771 dev: true
8772
8773 /postcss-minify-font-values@6.0.0(postcss@8.4.31):
8774 resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==}
8775 engines: {node: ^14 || ^16 || >=18.0}
8776 peerDependencies:
8777 postcss: ^8.2.15
8778 dependencies:
8779 postcss: 8.4.31
8780 postcss-value-parser: 4.2.0
8781 dev: true
8782
8783 /postcss-minify-gradients@6.0.0(postcss@8.4.31):
8784 resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==}
8785 engines: {node: ^14 || ^16 || >=18.0}
8786 peerDependencies:
8787 postcss: ^8.2.15
8788 dependencies:
8789 colord: 2.9.3
8790 cssnano-utils: 4.0.0(postcss@8.4.31)
8791 postcss: 8.4.31
8792 postcss-value-parser: 4.2.0
8793 dev: true
8794
8795 /postcss-minify-params@6.0.0(postcss@8.4.31):
8796 resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==}
8797 engines: {node: ^14 || ^16 || >=18.0}
8798 peerDependencies:
8799 postcss: ^8.2.15
8800 dependencies:
8801 browserslist: 4.22.1
8802 cssnano-utils: 4.0.0(postcss@8.4.31)
8803 postcss: 8.4.31
8804 postcss-value-parser: 4.2.0
8805 dev: true
8806
8807 /postcss-minify-selectors@6.0.0(postcss@8.4.31):
8808 resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==}
8809 engines: {node: ^14 || ^16 || >=18.0}
8810 peerDependencies:
8811 postcss: ^8.2.15
8812 dependencies:
8813 postcss: 8.4.31
8814 postcss-selector-parser: 6.0.13
8815 dev: true
8816
8817 /postcss-modules-extract-imports@3.0.0(postcss@8.4.31):
8818 resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
8819 engines: {node: ^10 || ^12 || >= 14}
8820 peerDependencies:
8821 postcss: ^8.1.0
8822 dependencies:
8823 postcss: 8.4.31
8824 dev: true
8825
8826 /postcss-modules-local-by-default@4.0.3(postcss@8.4.31):
8827 resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==}
8828 engines: {node: ^10 || ^12 || >= 14}
8829 peerDependencies:
8830 postcss: ^8.1.0
8831 dependencies:
8832 icss-utils: 5.1.0(postcss@8.4.31)
8833 postcss: 8.4.31
8834 postcss-selector-parser: 6.0.13
8835 postcss-value-parser: 4.2.0
8836 dev: true
8837
8838 /postcss-modules-scope@3.0.0(postcss@8.4.31):
8839 resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==}
8840 engines: {node: ^10 || ^12 || >= 14}
8841 peerDependencies:
8842 postcss: ^8.1.0
8843 dependencies:
8844 postcss: 8.4.31
8845 postcss-selector-parser: 6.0.13
8846 dev: true
8847
8848 /postcss-modules-values@4.0.0(postcss@8.4.31):
8849 resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
8850 engines: {node: ^10 || ^12 || >= 14}
8851 peerDependencies:
8852 postcss: ^8.1.0
8853 dependencies:
8854 icss-utils: 5.1.0(postcss@8.4.31)
8855 postcss: 8.4.31
8856 dev: true
8857
8858 /postcss-normalize-charset@6.0.0(postcss@8.4.31):
8859 resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==}
8860 engines: {node: ^14 || ^16 || >=18.0}
8861 peerDependencies:
8862 postcss: ^8.2.15
8863 dependencies:
8864 postcss: 8.4.31
8865 dev: true
8866
8867 /postcss-normalize-display-values@6.0.0(postcss@8.4.31):
8868 resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==}
8869 engines: {node: ^14 || ^16 || >=18.0}
8870 peerDependencies:
8871 postcss: ^8.2.15
8872 dependencies:
8873 postcss: 8.4.31
8874 postcss-value-parser: 4.2.0
8875 dev: true
8876
8877 /postcss-normalize-positions@6.0.0(postcss@8.4.31):
8878 resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==}
8879 engines: {node: ^14 || ^16 || >=18.0}
8880 peerDependencies:
8881 postcss: ^8.2.15
8882 dependencies:
8883 postcss: 8.4.31
8884 postcss-value-parser: 4.2.0
8885 dev: true
8886
8887 /postcss-normalize-repeat-style@6.0.0(postcss@8.4.31):
8888 resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==}
8889 engines: {node: ^14 || ^16 || >=18.0}
8890 peerDependencies:
8891 postcss: ^8.2.15
8892 dependencies:
8893 postcss: 8.4.31
8894 postcss-value-parser: 4.2.0
8895 dev: true
8896
8897 /postcss-normalize-string@6.0.0(postcss@8.4.31):
8898 resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==}
8899 engines: {node: ^14 || ^16 || >=18.0}
8900 peerDependencies:
8901 postcss: ^8.2.15
8902 dependencies:
8903 postcss: 8.4.31
8904 postcss-value-parser: 4.2.0
8905 dev: true
8906
8907 /postcss-normalize-timing-functions@6.0.0(postcss@8.4.31):
8908 resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==}
8909 engines: {node: ^14 || ^16 || >=18.0}
8910 peerDependencies:
8911 postcss: ^8.2.15
8912 dependencies:
8913 postcss: 8.4.31
8914 postcss-value-parser: 4.2.0
8915 dev: true
8916
8917 /postcss-normalize-unicode@6.0.0(postcss@8.4.31):
8918 resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==}
8919 engines: {node: ^14 || ^16 || >=18.0}
8920 peerDependencies:
8921 postcss: ^8.2.15
8922 dependencies:
8923 browserslist: 4.22.1
8924 postcss: 8.4.31
8925 postcss-value-parser: 4.2.0
8926 dev: true
8927
8928 /postcss-normalize-url@6.0.0(postcss@8.4.31):
8929 resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==}
8930 engines: {node: ^14 || ^16 || >=18.0}
8931 peerDependencies:
8932 postcss: ^8.2.15
8933 dependencies:
8934 postcss: 8.4.31
8935 postcss-value-parser: 4.2.0
8936 dev: true
8937
8938 /postcss-normalize-whitespace@6.0.0(postcss@8.4.31):
8939 resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==}
8940 engines: {node: ^14 || ^16 || >=18.0}
8941 peerDependencies:
8942 postcss: ^8.2.15
8943 dependencies:
8944 postcss: 8.4.31
8945 postcss-value-parser: 4.2.0
8946 dev: true
8947
8948 /postcss-ordered-values@6.0.0(postcss@8.4.31):
8949 resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==}
8950 engines: {node: ^14 || ^16 || >=18.0}
8951 peerDependencies:
8952 postcss: ^8.2.15
8953 dependencies:
8954 cssnano-utils: 4.0.0(postcss@8.4.31)
8955 postcss: 8.4.31
8956 postcss-value-parser: 4.2.0
8957 dev: true
8958
8959 /postcss-reduce-initial@6.0.0(postcss@8.4.31):
8960 resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==}
8961 engines: {node: ^14 || ^16 || >=18.0}
8962 peerDependencies:
8963 postcss: ^8.2.15
8964 dependencies:
8965 browserslist: 4.22.1
8966 caniuse-api: 3.0.0
8967 postcss: 8.4.31
8968 dev: true
8969
8970 /postcss-reduce-transforms@6.0.0(postcss@8.4.31):
8971 resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==}
8972 engines: {node: ^14 || ^16 || >=18.0}
8973 peerDependencies:
8974 postcss: ^8.2.15
8975 dependencies:
8976 postcss: 8.4.31
8977 postcss-value-parser: 4.2.0
8978 dev: true
8979
8980 /postcss-selector-parser@6.0.13:
8981 resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
8982 engines: {node: '>=4'}
8983 dependencies:
8984 cssesc: 3.0.0
8985 util-deprecate: 1.0.2
8986 dev: true
8987
8988 /postcss-svgo@6.0.0(postcss@8.4.31):
8989 resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==}
8990 engines: {node: ^14 || ^16 || >= 18}
8991 peerDependencies:
8992 postcss: ^8.2.15
8993 dependencies:
8994 postcss: 8.4.31
8995 postcss-value-parser: 4.2.0
8996 svgo: 3.0.2
8997 dev: true
8998
8999 /postcss-unique-selectors@6.0.0(postcss@8.4.31):
9000 resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==}
9001 engines: {node: ^14 || ^16 || >=18.0}
9002 peerDependencies:
9003 postcss: ^8.2.15
9004 dependencies:
9005 postcss: 8.4.31
9006 postcss-selector-parser: 6.0.13
9007 dev: true
9008
9009 /postcss-value-parser@4.2.0:
9010 resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
9011 dev: true
9012
9013 /postcss@8.4.31:
9014 resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
9015 engines: {node: ^10 || ^12 || >=14} 4832 engines: {node: ^10 || ^12 || >=14}
9016 dependencies: 4833 dependencies:
9017 nanoid: 3.3.6 4834 nanoid: 3.3.7
9018 picocolors: 1.0.0 4835 picocolors: 1.0.0
9019 source-map-js: 1.0.2 4836 source-map-js: 1.0.2
9020 dev: true 4837 dev: true
@@ -9041,6 +4858,25 @@ packages:
9041 xtend: 4.0.2 4858 xtend: 4.0.2
9042 dev: false 4859 dev: false
9043 4860
4861 /prebuild-install@7.1.1:
4862 resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
4863 engines: {node: '>=10'}
4864 hasBin: true
4865 dependencies:
4866 detect-libc: 2.0.2
4867 expand-template: 2.0.3
4868 github-from-package: 0.0.0
4869 minimist: 1.2.8
4870 mkdirp-classic: 0.5.3
4871 napi-build-utils: 1.0.2
4872 node-abi: 3.54.0
4873 pump: 3.0.0
4874 rc: 1.2.8
4875 simple-get: 4.0.1
4876 tar-fs: 2.1.1
4877 tunnel-agent: 0.6.0
4878 dev: false
4879
9044 /prelude-ls@1.2.1: 4880 /prelude-ls@1.2.1:
9045 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 4881 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
9046 engines: {node: '>= 0.8.0'} 4882 engines: {node: '>= 0.8.0'}
@@ -9053,29 +4889,12 @@ packages:
9053 fast-diff: 1.3.0 4889 fast-diff: 1.3.0
9054 dev: true 4890 dev: true
9055 4891
9056 /prettier@3.0.0: 4892 /prettier@3.2.5:
9057 resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} 4893 resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
9058 engines: {node: '>=14'} 4894 engines: {node: '>=14'}
9059 hasBin: true 4895 hasBin: true
9060 dev: true 4896 dev: true
9061 4897
9062 /pretty-error@4.0.0:
9063 resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
9064 dependencies:
9065 lodash: 4.17.21
9066 renderkid: 3.0.0
9067 dev: true
9068
9069 /pretty-format@25.5.0:
9070 resolution: {integrity: sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==}
9071 engines: {node: '>= 8.3'}
9072 dependencies:
9073 '@jest/types': 25.5.0
9074 ansi-regex: 5.0.1
9075 ansi-styles: 4.3.0
9076 react-is: 16.13.1
9077 dev: true
9078
9079 /pretty-format@29.7.0: 4898 /pretty-format@29.7.0:
9080 resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 4899 resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
9081 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 4900 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -9083,7 +4902,6 @@ packages:
9083 '@jest/schemas': 29.6.3 4902 '@jest/schemas': 29.6.3
9084 ansi-styles: 5.2.0 4903 ansi-styles: 5.2.0
9085 react-is: 18.2.0 4904 react-is: 18.2.0
9086 dev: true
9087 4905
9088 /pretty-hrtime@1.0.3: 4906 /pretty-hrtime@1.0.3:
9089 resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} 4907 resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
@@ -9091,13 +4909,13 @@ packages:
9091 4909
9092 /printable-characters@1.0.42: 4910 /printable-characters@1.0.42:
9093 resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 4911 resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
9094 dev: true
9095 4912
9096 /process-nextick-args@2.0.1: 4913 /process-nextick-args@2.0.1:
9097 resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 4914 resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
4915 dev: false
9098 4916
9099 /process-warning@1.0.0: 4917 /process-warning@3.0.0:
9100 resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} 4918 resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
9101 4919
9102 /process@0.11.10: 4920 /process@0.11.10:
9103 resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 4921 resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
@@ -9124,11 +4942,8 @@ packages:
9124 dev: false 4942 dev: false
9125 optional: true 4943 optional: true
9126 4944
9127 /prop-ini@0.0.2: 4945 /property-information@6.4.1:
9128 resolution: {integrity: sha512-qyU57WvAvZDbzmRy9xDbJGVwrGJhmA+rYnVjy4xtX4Ny9c7gzvpmf/j7A3oq9ChbPh15MZQKjPep2mNdnAhtig==} 4946 resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==}
9129 dependencies:
9130 extend: 3.0.2
9131 dev: true
9132 4947
9133 /proxy-addr@2.0.7: 4948 /proxy-addr@2.0.7:
9134 resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 4949 resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
@@ -9137,10 +4952,6 @@ packages:
9137 forwarded: 0.2.0 4952 forwarded: 0.2.0
9138 ipaddr.js: 1.9.1 4953 ipaddr.js: 1.9.1
9139 4954
9140 /pseudomap@1.0.2:
9141 resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
9142 dev: true
9143
9144 /pump@1.0.3: 4955 /pump@1.0.3:
9145 resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} 4956 resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==}
9146 dependencies: 4957 dependencies:
@@ -9153,9 +4964,6 @@ packages:
9153 dependencies: 4964 dependencies:
9154 end-of-stream: 1.4.4 4965 end-of-stream: 1.4.4
9155 once: 1.4.0 4966 once: 1.4.0
9156
9157 /punycode@1.3.2:
9158 resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==}
9159 dev: false 4967 dev: false
9160 4968
9161 /punycode@2.3.0: 4969 /punycode@2.3.0:
@@ -9163,25 +4971,12 @@ packages:
9163 engines: {node: '>=6'} 4971 engines: {node: '>=6'}
9164 dev: true 4972 dev: true
9165 4973
9166 /qs@6.11.0:
9167 resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
9168 engines: {node: '>=0.6'}
9169 dependencies:
9170 side-channel: 1.0.4
9171 dev: true
9172
9173 /qs@6.11.2: 4974 /qs@6.11.2:
9174 resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} 4975 resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
9175 engines: {node: '>=0.6'} 4976 engines: {node: '>=0.6'}
9176 dependencies: 4977 dependencies:
9177 side-channel: 1.0.4 4978 side-channel: 1.0.4
9178 4979
9179 /querystring@0.2.0:
9180 resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==}
9181 engines: {node: '>=0.4.x'}
9182 deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
9183 dev: false
9184
9185 /queue-microtask@1.2.3: 4980 /queue-microtask@1.2.3:
9186 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 4981 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
9187 4982
@@ -9202,25 +4997,10 @@ packages:
9202 resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} 4997 resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==}
9203 engines: {node: '>= 0.8'} 4998 engines: {node: '>= 0.8'}
9204 4999
9205 /randombytes@2.1.0:
9206 resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
9207 dependencies:
9208 safe-buffer: 5.2.1
9209 dev: true
9210
9211 /range-parser@1.2.1: 5000 /range-parser@1.2.1:
9212 resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 5001 resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
9213 engines: {node: '>= 0.6'} 5002 engines: {node: '>= 0.6'}
9214 5003 dev: false
9215 /raw-body@2.5.1:
9216 resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
9217 engines: {node: '>= 0.8'}
9218 dependencies:
9219 bytes: 3.1.2
9220 http-errors: 2.0.0
9221 iconv-lite: 0.4.24
9222 unpipe: 1.0.0
9223 dev: true
9224 5004
9225 /raw-body@2.5.2: 5005 /raw-body@2.5.2:
9226 resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 5006 resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
@@ -9239,15 +5019,10 @@ packages:
9239 ini: 1.3.8 5019 ini: 1.3.8
9240 minimist: 1.2.8 5020 minimist: 1.2.8
9241 strip-json-comments: 2.0.1 5021 strip-json-comments: 2.0.1
9242 dev: true 5022 dev: false
9243
9244 /react-is@16.13.1:
9245 resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
9246 dev: true
9247 5023
9248 /react-is@18.2.0: 5024 /react-is@18.2.0:
9249 resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 5025 resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
9250 dev: true
9251 5026
9252 /read-pkg-up@7.0.1: 5027 /read-pkg-up@7.0.1:
9253 resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 5028 resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
@@ -9262,7 +5037,7 @@ packages:
9262 resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 5037 resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
9263 engines: {node: '>=8'} 5038 engines: {node: '>=8'}
9264 dependencies: 5039 dependencies:
9265 '@types/normalize-package-data': 2.4.2 5040 '@types/normalize-package-data': 2.4.4
9266 normalize-package-data: 2.5.0 5041 normalize-package-data: 2.5.0
9267 parse-json: 5.2.0 5042 parse-json: 5.2.0
9268 type-fest: 0.6.0 5043 type-fest: 0.6.0
@@ -9290,6 +5065,7 @@ packages:
9290 safe-buffer: 5.1.2 5065 safe-buffer: 5.1.2
9291 string_decoder: 1.1.1 5066 string_decoder: 1.1.1
9292 util-deprecate: 1.0.2 5067 util-deprecate: 1.0.2
5068 dev: false
9293 5069
9294 /readable-stream@3.6.2: 5070 /readable-stream@3.6.2:
9295 resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 5071 resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
@@ -9320,62 +5096,21 @@ packages:
9320 engines: {node: '>=8.10.0'} 5096 engines: {node: '>=8.10.0'}
9321 dependencies: 5097 dependencies:
9322 picomatch: 2.3.1 5098 picomatch: 2.3.1
9323 dev: true
9324 5099
9325 /readme-badger@0.3.0: 5100 /real-require@0.2.0:
9326 resolution: {integrity: sha512-+sMOLSs1imZUISZ2Rhz7qqVd77QtpcAPbGeIraFdgJmijb04YtdlPjGNBvDChTNtLbeQ6JNGQy3pOgslWfaP3g==} 5101 resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
9327 dependencies: 5102 engines: {node: '>= 12.13.0'}
9328 balanced-match: 1.0.2
9329 dev: true
9330 5103
9331 /rechoir@0.8.0: 5104 /rechoir@0.8.0:
9332 resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} 5105 resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
9333 engines: {node: '>= 10.13.0'} 5106 engines: {node: '>= 10.13.0'}
9334 dependencies: 5107 dependencies:
9335 resolve: 1.22.6 5108 resolve: 1.22.8
9336
9337 /redeyed@2.1.1:
9338 resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==}
9339 dependencies:
9340 esprima: 4.0.1
9341 dev: true
9342
9343 /reflect-metadata@0.1.13:
9344 resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==}
9345 dev: false 5109 dev: false
9346 5110
9347 /regenerate-unicode-properties@10.1.1: 5111 /reflect-metadata@0.2.1:
9348 resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} 5112 resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==}
9349 engines: {node: '>=4'} 5113 dev: false
9350 dependencies:
9351 regenerate: 1.4.2
9352 dev: true
9353
9354 /regenerate@1.4.2:
9355 resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
9356 dev: true
9357
9358 /regenerator-runtime@0.14.0:
9359 resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
9360 dev: true
9361
9362 /regenerator-transform@0.15.2:
9363 resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
9364 dependencies:
9365 '@babel/runtime': 7.23.1
9366 dev: true
9367
9368 /regex-not@1.0.2:
9369 resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
9370 engines: {node: '>=0.10.0'}
9371 dependencies:
9372 extend-shallow: 3.0.2
9373 safe-regex: 1.1.0
9374 dev: true
9375
9376 /regex-parser@2.2.11:
9377 resolution: {integrity: sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==}
9378 dev: true
9379 5114
9380 /regexp-tree@0.1.27: 5115 /regexp-tree@0.1.27:
9381 resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 5116 resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
@@ -9386,23 +5121,11 @@ packages:
9386 resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} 5121 resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
9387 engines: {node: '>= 0.4'} 5122 engines: {node: '>= 0.4'}
9388 dependencies: 5123 dependencies:
9389 call-bind: 1.0.2 5124 call-bind: 1.0.5
9390 define-properties: 1.2.1 5125 define-properties: 1.2.1
9391 set-function-name: 2.0.1 5126 set-function-name: 2.0.1
9392 dev: true 5127 dev: true
9393 5128
9394 /regexpu-core@5.3.2:
9395 resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
9396 engines: {node: '>=4'}
9397 dependencies:
9398 '@babel/regjsgen': 0.8.0
9399 regenerate: 1.4.2
9400 regenerate-unicode-properties: 10.1.1
9401 regjsparser: 0.9.1
9402 unicode-match-property-ecmascript: 2.0.0
9403 unicode-match-property-value-ecmascript: 2.1.0
9404 dev: true
9405
9406 /regjsparser@0.10.0: 5129 /regjsparser@0.10.0:
9407 resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} 5130 resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
9408 hasBin: true 5131 hasBin: true
@@ -9410,57 +5133,10 @@ packages:
9410 jsesc: 0.5.0 5133 jsesc: 0.5.0
9411 dev: true 5134 dev: true
9412 5135
9413 /regjsparser@0.9.1:
9414 resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
9415 hasBin: true
9416 dependencies:
9417 jsesc: 0.5.0
9418 dev: true
9419
9420 /renderkid@3.0.0:
9421 resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==}
9422 dependencies:
9423 css-select: 4.3.0
9424 dom-converter: 0.2.0
9425 htmlparser2: 6.1.0
9426 lodash: 4.17.21
9427 strip-ansi: 6.0.1
9428 dev: true
9429
9430 /repeat-element@1.1.4:
9431 resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
9432 engines: {node: '>=0.10.0'}
9433 dev: true
9434
9435 /repeat-string@1.6.1:
9436 resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
9437 engines: {node: '>=0.10'}
9438 dev: true
9439
9440 /require-all@3.0.0:
9441 resolution: {integrity: sha512-jPGN876lc5exWYrMcgZSd7U42P0PmVQzxnQB13fCSzmyGnqQWW4WUz5DosZ/qe24hz+5o9lSvW2epBNZ1xa6Fw==}
9442 engines: {node: '>= 0.8'}
9443
9444 /require-from-string@2.0.2:
9445 resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
9446 engines: {node: '>=0.10.0'}
9447 dev: true
9448
9449 /requires-port@1.0.0:
9450 resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
9451 dev: true
9452
9453 /resolve-alpn@1.2.1: 5136 /resolve-alpn@1.2.1:
9454 resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} 5137 resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
9455 dev: false 5138 dev: false
9456 5139
9457 /resolve-cwd@3.0.0:
9458 resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
9459 engines: {node: '>=8'}
9460 dependencies:
9461 resolve-from: 5.0.0
9462 dev: true
9463
9464 /resolve-from@4.0.0: 5140 /resolve-from@4.0.0:
9465 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 5141 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
9466 engines: {node: '>=4'} 5142 engines: {node: '>=4'}
@@ -9469,49 +5145,30 @@ packages:
9469 /resolve-from@5.0.0: 5145 /resolve-from@5.0.0:
9470 resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 5146 resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
9471 engines: {node: '>=8'} 5147 engines: {node: '>=8'}
5148 dev: false
9472 5149
9473 /resolve-url-loader@5.0.0: 5150 /resolve@1.22.8:
9474 resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} 5151 resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
9475 engines: {node: '>=12'}
9476 dependencies:
9477 adjust-sourcemap-loader: 4.0.0
9478 convert-source-map: 1.9.0
9479 loader-utils: 2.0.4
9480 postcss: 8.4.31
9481 source-map: 0.6.1
9482 dev: true
9483
9484 /resolve-url@0.2.1:
9485 resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
9486 deprecated: https://github.com/lydell/resolve-url#deprecated
9487 dev: true
9488
9489 /resolve@1.22.6:
9490 resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
9491 hasBin: true 5152 hasBin: true
9492 dependencies: 5153 dependencies:
9493 is-core-module: 2.13.0 5154 is-core-module: 2.13.1
9494 path-parse: 1.0.7 5155 path-parse: 1.0.7
9495 supports-preserve-symlinks-flag: 1.0.0 5156 supports-preserve-symlinks-flag: 1.0.0
9496 5157
9497 /responselike@2.0.1: 5158 /responselike@3.0.0:
9498 resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} 5159 resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
5160 engines: {node: '>=14.16'}
9499 dependencies: 5161 dependencies:
9500 lowercase-keys: 2.0.0 5162 lowercase-keys: 3.0.0
9501 dev: false 5163 dev: false
9502 5164
9503 /restore-cursor@3.1.0: 5165 /restore-cursor@4.0.0:
9504 resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 5166 resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
9505 engines: {node: '>=8'} 5167 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
9506 dependencies: 5168 dependencies:
9507 onetime: 5.1.2 5169 onetime: 5.1.2
9508 signal-exit: 3.0.7 5170 signal-exit: 3.0.7
9509 5171
9510 /ret@0.1.15:
9511 resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
9512 engines: {node: '>=0.12'}
9513 dev: true
9514
9515 /retry@0.12.0: 5172 /retry@0.12.0:
9516 resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} 5173 resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
9517 engines: {node: '>= 4'} 5174 engines: {node: '>= 4'}
@@ -9522,24 +5179,11 @@ packages:
9522 /retry@0.13.1: 5179 /retry@0.13.1:
9523 resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} 5180 resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
9524 engines: {node: '>= 4'} 5181 engines: {node: '>= 4'}
9525 dev: true
9526 5182
9527 /reusify@1.0.4: 5183 /reusify@1.0.4:
9528 resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 5184 resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
9529 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 5185 engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
9530 5186
9531 /rev-hash@3.0.0:
9532 resolution: {integrity: sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==}
9533 engines: {node: '>=8'}
9534 dev: true
9535
9536 /rimraf@2.7.1:
9537 resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
9538 hasBin: true
9539 dependencies:
9540 glob: 7.2.3
9541 dev: true
9542
9543 /rimraf@3.0.2: 5187 /rimraf@3.0.2:
9544 resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 5188 resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
9545 hasBin: true 5189 hasBin: true
@@ -9548,13 +5192,28 @@ packages:
9548 5192
9549 /rndm@1.2.0: 5193 /rndm@1.2.0:
9550 resolution: {integrity: sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==} 5194 resolution: {integrity: sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==}
9551 dev: false
9552 5195
9553 /run-applescript@5.0.0: 5196 /rollup@4.10.0:
9554 resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} 5197 resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==}
9555 engines: {node: '>=12'} 5198 engines: {node: '>=18.0.0', npm: '>=8.0.0'}
5199 hasBin: true
9556 dependencies: 5200 dependencies:
9557 execa: 5.1.1 5201 '@types/estree': 1.0.5
5202 optionalDependencies:
5203 '@rollup/rollup-android-arm-eabi': 4.10.0
5204 '@rollup/rollup-android-arm64': 4.10.0
5205 '@rollup/rollup-darwin-arm64': 4.10.0
5206 '@rollup/rollup-darwin-x64': 4.10.0
5207 '@rollup/rollup-linux-arm-gnueabihf': 4.10.0
5208 '@rollup/rollup-linux-arm64-gnu': 4.10.0
5209 '@rollup/rollup-linux-arm64-musl': 4.10.0
5210 '@rollup/rollup-linux-riscv64-gnu': 4.10.0
5211 '@rollup/rollup-linux-x64-gnu': 4.10.0
5212 '@rollup/rollup-linux-x64-musl': 4.10.0
5213 '@rollup/rollup-win32-arm64-msvc': 4.10.0
5214 '@rollup/rollup-win32-ia32-msvc': 4.10.0
5215 '@rollup/rollup-win32-x64-msvc': 4.10.0
5216 fsevents: 2.3.3
9558 dev: true 5217 dev: true
9559 5218
9560 /run-parallel@1.2.0: 5219 /run-parallel@1.2.0:
@@ -9562,36 +5221,42 @@ packages:
9562 dependencies: 5221 dependencies:
9563 queue-microtask: 1.2.3 5222 queue-microtask: 1.2.3
9564 5223
9565 /safe-array-concat@1.0.1: 5224 /safe-array-concat@1.1.0:
9566 resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} 5225 resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
9567 engines: {node: '>=0.4'} 5226 engines: {node: '>=0.4'}
9568 dependencies: 5227 dependencies:
9569 call-bind: 1.0.2 5228 call-bind: 1.0.5
9570 get-intrinsic: 1.2.1 5229 get-intrinsic: 1.2.2
9571 has-symbols: 1.0.3 5230 has-symbols: 1.0.3
9572 isarray: 2.0.5 5231 isarray: 2.0.5
9573 dev: true 5232 dev: true
9574 5233
9575 /safe-buffer@5.1.2: 5234 /safe-buffer@5.1.2:
9576 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 5235 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
5236 dev: false
9577 5237
9578 /safe-buffer@5.2.1: 5238 /safe-buffer@5.2.1:
9579 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 5239 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
9580 5240
9581 /safe-regex-test@1.0.0: 5241 /safe-regex-test@1.0.2:
9582 resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 5242 resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==}
5243 engines: {node: '>= 0.4'}
9583 dependencies: 5244 dependencies:
9584 call-bind: 1.0.2 5245 call-bind: 1.0.5
9585 get-intrinsic: 1.2.1 5246 get-intrinsic: 1.2.2
9586 is-regex: 1.1.4 5247 is-regex: 1.1.4
9587 dev: true 5248 dev: true
9588 5249
9589 /safe-regex@1.1.0: 5250 /safe-regex@2.1.1:
9590 resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} 5251 resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
9591 dependencies: 5252 dependencies:
9592 ret: 0.1.15 5253 regexp-tree: 0.1.27
9593 dev: true 5254 dev: true
9594 5255
5256 /safe-stable-stringify@2.4.3:
5257 resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
5258 engines: {node: '>=10'}
5259
9595 /safer-buffer@2.1.2: 5260 /safer-buffer@2.1.2:
9596 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 5261 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
9597 5262
@@ -9601,52 +5266,9 @@ packages:
9601 truncate-utf8-bytes: 1.0.2 5266 truncate-utf8-bytes: 1.0.2
9602 dev: false 5267 dev: false
9603 5268
9604 /sax@1.2.1:
9605 resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==}
9606 dev: false
9607
9608 /schema-utils@2.7.1:
9609 resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
9610 engines: {node: '>= 8.9.0'}
9611 dependencies:
9612 '@types/json-schema': 7.0.13
9613 ajv: 6.12.6
9614 ajv-keywords: 3.5.2(ajv@6.12.6)
9615 dev: true
9616
9617 /schema-utils@3.3.0:
9618 resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
9619 engines: {node: '>= 10.13.0'}
9620 dependencies:
9621 '@types/json-schema': 7.0.13
9622 ajv: 6.12.6
9623 ajv-keywords: 3.5.2(ajv@6.12.6)
9624 dev: true
9625
9626 /schema-utils@4.2.0:
9627 resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
9628 engines: {node: '>= 12.13.0'}
9629 dependencies:
9630 '@types/json-schema': 7.0.13
9631 ajv: 8.12.0
9632 ajv-formats: 2.1.1(ajv@8.12.0)
9633 ajv-keywords: 5.1.0(ajv@8.12.0)
9634 dev: true
9635
9636 /secure-json-parse@2.7.0: 5269 /secure-json-parse@2.7.0:
9637 resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 5270 resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
9638 5271
9639 /select-hose@2.0.0:
9640 resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
9641 dev: true
9642
9643 /selfsigned@2.1.1:
9644 resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==}
9645 engines: {node: '>=10'}
9646 dependencies:
9647 node-forge: 1.3.1
9648 dev: true
9649
9650 /semver@5.7.2: 5272 /semver@5.7.2:
9651 resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 5273 resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
9652 hasBin: true 5274 hasBin: true
@@ -9656,8 +5278,8 @@ packages:
9656 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 5278 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
9657 hasBin: true 5279 hasBin: true
9658 5280
9659 /semver@7.5.4: 5281 /semver@7.6.0:
9660 resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 5282 resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
9661 engines: {node: '>=10'} 5283 engines: {node: '>=10'}
9662 hasBin: true 5284 hasBin: true
9663 dependencies: 5285 dependencies:
@@ -9682,34 +5304,13 @@ packages:
9682 statuses: 2.0.1 5304 statuses: 2.0.1
9683 transitivePeerDependencies: 5305 transitivePeerDependencies:
9684 - supports-color 5306 - supports-color
5307 dev: false
9685 5308
9686 /sentence-case@3.0.4: 5309 /serialize-error@11.0.3:
9687 resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} 5310 resolution: {integrity: sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==}
9688 dependencies: 5311 engines: {node: '>=14.16'}
9689 no-case: 3.0.4
9690 tslib: 2.6.2
9691 upper-case-first: 2.0.2
9692
9693 /serialize-javascript@6.0.1:
9694 resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
9695 dependencies:
9696 randombytes: 2.1.0
9697 dev: true
9698
9699 /serve-index@1.9.1:
9700 resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
9701 engines: {node: '>= 0.8.0'}
9702 dependencies: 5312 dependencies:
9703 accepts: 1.3.8 5313 type-fest: 2.19.0
9704 batch: 0.6.1
9705 debug: 2.6.9
9706 escape-html: 1.0.3
9707 http-errors: 1.6.3
9708 mime-types: 2.1.35
9709 parseurl: 1.3.3
9710 transitivePeerDependencies:
9711 - supports-color
9712 dev: true
9713 5314
9714 /serve-static@1.15.0: 5315 /serve-static@1.15.0:
9715 resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 5316 resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
@@ -9721,98 +5322,98 @@ packages:
9721 send: 0.18.0 5322 send: 0.18.0
9722 transitivePeerDependencies: 5323 transitivePeerDependencies:
9723 - supports-color 5324 - supports-color
5325 dev: false
9724 5326
9725 /set-blocking@2.0.0: 5327 /set-blocking@2.0.0:
9726 resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 5328 resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
9727 dev: false
9728 5329
9729 /set-cookie-parser@2.6.0: 5330 /set-function-length@1.2.0:
9730 resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 5331 resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==}
9731 dev: true 5332 engines: {node: '>= 0.4'}
5333 dependencies:
5334 define-data-property: 1.1.1
5335 function-bind: 1.1.2
5336 get-intrinsic: 1.2.2
5337 gopd: 1.0.1
5338 has-property-descriptors: 1.0.1
9732 5339
9733 /set-function-name@2.0.1: 5340 /set-function-name@2.0.1:
9734 resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} 5341 resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
9735 engines: {node: '>= 0.4'} 5342 engines: {node: '>= 0.4'}
9736 dependencies: 5343 dependencies:
9737 define-data-property: 1.1.0 5344 define-data-property: 1.1.1
9738 functions-have-names: 1.2.3 5345 functions-have-names: 1.2.3
9739 has-property-descriptors: 1.0.0 5346 has-property-descriptors: 1.0.1
9740 dev: true
9741
9742 /set-value@2.0.1:
9743 resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
9744 engines: {node: '>=0.10.0'}
9745 dependencies:
9746 extend-shallow: 2.0.1
9747 is-extendable: 0.1.1
9748 is-plain-object: 2.0.4
9749 split-string: 3.1.0
9750 dev: true
9751
9752 /setprototypeof@1.1.0:
9753 resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
9754 dev: true 5347 dev: true
9755 5348
9756 /setprototypeof@1.2.0: 5349 /setprototypeof@1.2.0:
9757 resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 5350 resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
9758 5351
9759 /shallow-clone@3.0.1:
9760 resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
9761 engines: {node: '>=8'}
9762 dependencies:
9763 kind-of: 6.0.3
9764 dev: true
9765
9766 /shebang-command@2.0.0: 5352 /shebang-command@2.0.0:
9767 resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 5353 resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
9768 engines: {node: '>=8'} 5354 engines: {node: '>=8'}
9769 dependencies: 5355 dependencies:
9770 shebang-regex: 3.0.0 5356 shebang-regex: 3.0.0
9771 dev: true
9772 5357
9773 /shebang-regex@3.0.0: 5358 /shebang-regex@3.0.0:
9774 resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 5359 resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
9775 engines: {node: '>=8'} 5360 engines: {node: '>=8'}
9776 dev: true
9777
9778 /shell-quote@1.8.1:
9779 resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
9780 dev: true
9781 5361
9782 /side-channel@1.0.4: 5362 /side-channel@1.0.4:
9783 resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 5363 resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
9784 dependencies: 5364 dependencies:
9785 call-bind: 1.0.2 5365 call-bind: 1.0.5
9786 get-intrinsic: 1.2.1 5366 get-intrinsic: 1.2.2
9787 object-inspect: 1.12.3 5367 object-inspect: 1.13.1
9788
9789 /sigmund@1.0.1:
9790 resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==}
9791 dev: true
9792 5368
9793 /signal-exit@3.0.7: 5369 /signal-exit@3.0.7:
9794 resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 5370 resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
9795 5371
9796 /slash@2.0.0: 5372 /signal-exit@4.1.0:
9797 resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} 5373 resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
9798 engines: {node: '>=6'} 5374 engines: {node: '>=14'}
9799 dev: true 5375
5376 /simple-concat@1.0.1:
5377 resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
5378 dev: false
5379
5380 /simple-get@4.0.1:
5381 resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
5382 dependencies:
5383 decompress-response: 6.0.0
5384 once: 1.4.0
5385 simple-concat: 1.0.1
5386 dev: false
9800 5387
9801 /slash@3.0.0: 5388 /slash@3.0.0:
9802 resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 5389 resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
9803 engines: {node: '>=8'} 5390 engines: {node: '>=8'}
5391 dev: true
9804 5392
9805 /slashes@2.0.2: 5393 /slash@4.0.0:
9806 resolution: {integrity: sha512-68p+QkFAQQRetIUzNXAdktNJr8AYLxJukjBegYQz8F7VATsBJG621UYtY/vS2j9jerxdJ1k6Tc25K4DXEw1d5w==} 5394 resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
9807 dev: false 5395 engines: {node: '>=12'}
9808 5396
9809 /slice-ansi@4.0.0: 5397 /slash@5.1.0:
9810 resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 5398 resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
9811 engines: {node: '>=10'} 5399 engines: {node: '>=14.16'}
5400
5401 /slashes@3.0.12:
5402 resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
5403
5404 /slice-ansi@5.0.0:
5405 resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
5406 engines: {node: '>=12'}
9812 dependencies: 5407 dependencies:
9813 ansi-styles: 4.3.0 5408 ansi-styles: 6.2.1
9814 astral-regex: 2.0.0 5409 is-fullwidth-code-point: 4.0.0
9815 is-fullwidth-code-point: 3.0.0 5410
5411 /slice-ansi@7.1.0:
5412 resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
5413 engines: {node: '>=18'}
5414 dependencies:
5415 ansi-styles: 6.2.1
5416 is-fullwidth-code-point: 5.0.0
9816 5417
9817 /slugify@1.6.6: 5418 /slugify@1.6.6:
9818 resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} 5419 resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
@@ -9825,59 +5426,6 @@ packages:
9825 dev: false 5426 dev: false
9826 optional: true 5427 optional: true
9827 5428
9828 /smpltmpl@1.0.2:
9829 resolution: {integrity: sha512-Hq23NNgeZigOzIiX1dkb6W3gFn2/XQj43KhPxu65IMieG/gIwf/lQb1IudjYv0c/5LwJeS/mPayYzyo+8WJMxQ==}
9830 engines: {node: '>=4'}
9831 dependencies:
9832 babel-code-frame: 6.26.0
9833 dev: true
9834
9835 /snake-case@3.0.4:
9836 resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
9837 dependencies:
9838 dot-case: 3.0.4
9839 tslib: 2.6.2
9840
9841 /snapdragon-node@2.1.1:
9842 resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
9843 engines: {node: '>=0.10.0'}
9844 dependencies:
9845 define-property: 1.0.0
9846 isobject: 3.0.1
9847 snapdragon-util: 3.0.1
9848 dev: true
9849
9850 /snapdragon-util@3.0.1:
9851 resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
9852 engines: {node: '>=0.10.0'}
9853 dependencies:
9854 kind-of: 3.2.2
9855 dev: true
9856
9857 /snapdragon@0.8.2:
9858 resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
9859 engines: {node: '>=0.10.0'}
9860 dependencies:
9861 base: 0.11.2
9862 debug: 2.6.9
9863 define-property: 0.2.5
9864 extend-shallow: 2.0.1
9865 map-cache: 0.2.2
9866 source-map: 0.5.7
9867 source-map-resolve: 0.5.3
9868 use: 3.1.1
9869 transitivePeerDependencies:
9870 - supports-color
9871 dev: true
9872
9873 /sockjs@0.3.24:
9874 resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
9875 dependencies:
9876 faye-websocket: 0.11.4
9877 uuid: 8.3.2
9878 websocket-driver: 0.7.4
9879 dev: true
9880
9881 /socks-proxy-agent@6.2.1: 5429 /socks-proxy-agent@6.2.1:
9882 resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} 5430 resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==}
9883 engines: {node: '>= 10'} 5431 engines: {node: '>= 10'}
@@ -9901,19 +5449,8 @@ packages:
9901 dev: false 5449 dev: false
9902 optional: true 5450 optional: true
9903 5451
9904 /sonic-boom@1.4.1: 5452 /sonic-boom@3.8.0:
9905 resolution: {integrity: sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==} 5453 resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==}
9906 dependencies:
9907 atomic-sleep: 1.0.0
9908 flatstr: 1.0.12
9909
9910 /sonic-boom@2.8.0:
9911 resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==}
9912 dependencies:
9913 atomic-sleep: 1.0.0
9914
9915 /sonic-boom@3.4.0:
9916 resolution: {integrity: sha512-zSe9QQW30nPzjkSJ0glFQO5T9lHsk39tz+2bAAwCj8CNgEG8ItZiX7Wb2ZgA8I04dwRGCcf1m3ABJa8AYm12Fw==}
9917 dependencies: 5454 dependencies:
9918 atomic-sleep: 1.0.0 5455 atomic-sleep: 1.0.0
9919 5456
@@ -9922,33 +5459,6 @@ packages:
9922 engines: {node: '>=0.10.0'} 5459 engines: {node: '>=0.10.0'}
9923 dev: true 5460 dev: true
9924 5461
9925 /source-map-resolve@0.5.3:
9926 resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
9927 deprecated: See https://github.com/lydell/source-map-resolve#deprecated
9928 dependencies:
9929 atob: 2.1.2
9930 decode-uri-component: 0.2.2
9931 resolve-url: 0.2.1
9932 source-map-url: 0.4.1
9933 urix: 0.1.0
9934 dev: true
9935
9936 /source-map-support@0.5.21:
9937 resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
9938 dependencies:
9939 buffer-from: 1.1.2
9940 source-map: 0.6.1
9941
9942 /source-map-url@0.4.1:
9943 resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
9944 deprecated: See https://github.com/lydell/source-map-url#deprecated
9945 dev: true
9946
9947 /source-map@0.5.7:
9948 resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
9949 engines: {node: '>=0.10.0'}
9950 dev: true
9951
9952 /source-map@0.6.1: 5462 /source-map@0.6.1:
9953 resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 5463 resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
9954 engines: {node: '>=0.10.0'} 5464 engines: {node: '>=0.10.0'}
@@ -9957,85 +5467,47 @@ packages:
9957 resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 5467 resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
9958 dependencies: 5468 dependencies:
9959 spdx-expression-parse: 3.0.1 5469 spdx-expression-parse: 3.0.1
9960 spdx-license-ids: 3.0.15 5470 spdx-license-ids: 3.0.17
9961 dev: true 5471 dev: true
9962 5472
9963 /spdx-exceptions@2.3.0: 5473 /spdx-exceptions@2.4.0:
9964 resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 5474 resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==}
9965 dev: true 5475 dev: true
9966 5476
9967 /spdx-expression-parse@3.0.1: 5477 /spdx-expression-parse@3.0.1:
9968 resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 5478 resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
9969 dependencies: 5479 dependencies:
9970 spdx-exceptions: 2.3.0 5480 spdx-exceptions: 2.4.0
9971 spdx-license-ids: 3.0.15 5481 spdx-license-ids: 3.0.17
9972 dev: true
9973
9974 /spdx-license-ids@3.0.15:
9975 resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==}
9976 dev: true 5482 dev: true
9977 5483
9978 /spdy-transport@3.0.0: 5484 /spdx-license-ids@3.0.17:
9979 resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} 5485 resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
9980 dependencies:
9981 debug: 4.3.4
9982 detect-node: 2.1.0
9983 hpack.js: 2.1.6
9984 obuf: 1.1.2
9985 readable-stream: 3.6.2
9986 wbuf: 1.7.3
9987 transitivePeerDependencies:
9988 - supports-color
9989 dev: true 5486 dev: true
9990 5487
9991 /spdy@4.0.2: 5488 /split-lines@3.0.0:
9992 resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} 5489 resolution: {integrity: sha512-d0TpRBL/VfKDXsk8JxPF7zgF5pCUDdBMSlEL36xBgVeaX448t+yGXcJaikUyzkoKOJ0l6KpMfygzJU9naIuivw==}
9993 engines: {node: '>=6.0.0'} 5490 engines: {node: '>=12'}
9994 dependencies:
9995 debug: 4.3.4
9996 handle-thing: 2.0.1
9997 http-deceiver: 1.2.7
9998 select-hose: 2.0.0
9999 spdy-transport: 3.0.0
10000 transitivePeerDependencies:
10001 - supports-color
10002 dev: true
10003
10004 /split-lines@2.1.0:
10005 resolution: {integrity: sha512-8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==}
10006 engines: {node: '>=6'}
10007 dev: true
10008
10009 /split-string@3.1.0:
10010 resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
10011 engines: {node: '>=0.10.0'}
10012 dependencies:
10013 extend-shallow: 3.0.2
10014 dev: true
10015 5491
10016 /split2@4.2.0: 5492 /split2@4.2.0:
10017 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 5493 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
10018 engines: {node: '>= 10.x'} 5494 engines: {node: '>= 10.x'}
10019 5495
10020 /sprintf-js@1.0.3: 5496 /sqlite3@5.1.7:
10021 resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 5497 resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==}
10022 dev: true
10023
10024 /sqlite3@5.1.6:
10025 resolution: {integrity: sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==}
10026 requiresBuild: true 5498 requiresBuild: true
10027 peerDependenciesMeta: 5499 peerDependenciesMeta:
10028 node-gyp: 5500 node-gyp:
10029 optional: true 5501 optional: true
10030 dependencies: 5502 dependencies:
10031 '@mapbox/node-pre-gyp': 1.0.11 5503 bindings: 1.5.0
10032 node-addon-api: 4.3.0 5504 node-addon-api: 7.1.0
5505 prebuild-install: 7.1.1
10033 tar: 6.2.0 5506 tar: 6.2.0
10034 optionalDependencies: 5507 optionalDependencies:
10035 node-gyp: 8.4.1 5508 node-gyp: 8.4.1
10036 transitivePeerDependencies: 5509 transitivePeerDependencies:
10037 - bluebird 5510 - bluebird
10038 - encoding
10039 - supports-color 5511 - supports-color
10040 dev: false 5512 dev: false
10041 5513
@@ -10053,29 +5525,11 @@ packages:
10053 dev: false 5525 dev: false
10054 optional: true 5526 optional: true
10055 5527
10056 /stackframe@1.3.4:
10057 resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
10058 dev: true
10059
10060 /stacktracey@2.1.8: 5528 /stacktracey@2.1.8:
10061 resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 5529 resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
10062 dependencies: 5530 dependencies:
10063 as-table: 1.0.55 5531 as-table: 1.0.55
10064 get-source: 2.0.12 5532 get-source: 2.0.12
10065 dev: true
10066
10067 /static-extend@0.1.2:
10068 resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
10069 engines: {node: '>=0.10.0'}
10070 dependencies:
10071 define-property: 0.2.5
10072 object-copy: 0.1.0
10073 dev: true
10074
10075 /statuses@1.5.0:
10076 resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
10077 engines: {node: '>= 0.6'}
10078 dev: true
10079 5533
10080 /statuses@2.0.1: 5534 /statuses@2.0.1:
10081 resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 5535 resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
@@ -10089,53 +5543,55 @@ packages:
10089 is-fullwidth-code-point: 3.0.0 5543 is-fullwidth-code-point: 3.0.0
10090 strip-ansi: 6.0.1 5544 strip-ansi: 6.0.1
10091 5545
5546 /string-width@7.1.0:
5547 resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==}
5548 engines: {node: '>=18'}
5549 dependencies:
5550 emoji-regex: 10.3.0
5551 get-east-asian-width: 1.2.0
5552 strip-ansi: 7.1.0
5553
10092 /string.prototype.trim@1.2.8: 5554 /string.prototype.trim@1.2.8:
10093 resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} 5555 resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
10094 engines: {node: '>= 0.4'} 5556 engines: {node: '>= 0.4'}
10095 dependencies: 5557 dependencies:
10096 call-bind: 1.0.2 5558 call-bind: 1.0.5
10097 define-properties: 1.2.1 5559 define-properties: 1.2.1
10098 es-abstract: 1.22.2 5560 es-abstract: 1.22.3
10099 dev: true 5561 dev: true
10100 5562
10101 /string.prototype.trimend@1.0.7: 5563 /string.prototype.trimend@1.0.7:
10102 resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} 5564 resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
10103 dependencies: 5565 dependencies:
10104 call-bind: 1.0.2 5566 call-bind: 1.0.5
10105 define-properties: 1.2.1 5567 define-properties: 1.2.1
10106 es-abstract: 1.22.2 5568 es-abstract: 1.22.3
10107 dev: true 5569 dev: true
10108 5570
10109 /string.prototype.trimstart@1.0.7: 5571 /string.prototype.trimstart@1.0.7:
10110 resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} 5572 resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
10111 dependencies: 5573 dependencies:
10112 call-bind: 1.0.2 5574 call-bind: 1.0.5
10113 define-properties: 1.2.1 5575 define-properties: 1.2.1
10114 es-abstract: 1.22.2 5576 es-abstract: 1.22.3
10115 dev: true 5577 dev: true
10116 5578
10117 /string_decoder@1.1.1: 5579 /string_decoder@1.1.1:
10118 resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 5580 resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
10119 dependencies: 5581 dependencies:
10120 safe-buffer: 5.1.2 5582 safe-buffer: 5.1.2
5583 dev: false
10121 5584
10122 /string_decoder@1.3.0: 5585 /string_decoder@1.3.0:
10123 resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 5586 resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
10124 dependencies: 5587 dependencies:
10125 safe-buffer: 5.2.1 5588 safe-buffer: 5.2.1
10126 5589
10127 /stringify-attributes@2.0.0: 5590 /stringify-attributes@4.0.0:
10128 resolution: {integrity: sha512-wrVfRV6sCCB6wr3gx8OgKsp/9dSWWbKr8ifLfOxEcd/BBoa8d5pAf4BZb/jQW1JZnoZImjvUdxdo3ikYHZmYiw==} 5591 resolution: {integrity: sha512-6Hq3K153wTTfhEHb4V/viuqmb0DRn08JCrRnmqc4Q/tmoNuvd4DEyqkiiJXtvVz8ZSUhlCQr7zCpCVTgrelesg==}
10129 engines: {node: '>=8'} 5592 engines: {node: '>=14.16'}
10130 dependencies: 5593 dependencies:
10131 escape-goat: 2.1.1 5594 escape-goat: 4.0.0
10132
10133 /strip-ansi@3.0.1:
10134 resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
10135 engines: {node: '>=0.10.0'}
10136 dependencies:
10137 ansi-regex: 2.1.1
10138 dev: true
10139 5595
10140 /strip-ansi@6.0.1: 5596 /strip-ansi@6.0.1:
10141 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 5597 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
@@ -10143,25 +5599,20 @@ packages:
10143 dependencies: 5599 dependencies:
10144 ansi-regex: 5.0.1 5600 ansi-regex: 5.0.1
10145 5601
5602 /strip-ansi@7.1.0:
5603 resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
5604 engines: {node: '>=12'}
5605 dependencies:
5606 ansi-regex: 6.0.1
5607
10146 /strip-bom@3.0.0: 5608 /strip-bom@3.0.0:
10147 resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 5609 resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
10148 engines: {node: '>=4'} 5610 engines: {node: '>=4'}
10149 dev: true 5611 dev: true
10150 5612
10151 /strip-bom@4.0.0:
10152 resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
10153 engines: {node: '>=8'}
10154 dev: true
10155
10156 /strip-final-newline@2.0.0:
10157 resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
10158 engines: {node: '>=6'}
10159 dev: true
10160
10161 /strip-final-newline@3.0.0: 5613 /strip-final-newline@3.0.0:
10162 resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 5614 resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
10163 engines: {node: '>=12'} 5615 engines: {node: '>=12'}
10164 dev: true
10165 5616
10166 /strip-indent@3.0.0: 5617 /strip-indent@3.0.0:
10167 resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 5618 resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
@@ -10173,61 +5624,19 @@ packages:
10173 /strip-json-comments@2.0.1: 5624 /strip-json-comments@2.0.1:
10174 resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 5625 resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
10175 engines: {node: '>=0.10.0'} 5626 engines: {node: '>=0.10.0'}
10176 dev: true 5627 dev: false
10177 5628
10178 /strip-json-comments@3.1.1: 5629 /strip-json-comments@3.1.1:
10179 resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 5630 resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
10180 engines: {node: '>=8'} 5631 engines: {node: '>=8'}
10181
10182 /strtok3@6.3.0:
10183 resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==}
10184 engines: {node: '>=10'}
10185 dependencies:
10186 '@tokenizer/token': 0.3.0
10187 peek-readable: 4.1.0
10188
10189 /style-loader@3.3.3(webpack@5.88.2):
10190 resolution: {integrity: sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==}
10191 engines: {node: '>= 12.13.0'}
10192 peerDependencies:
10193 webpack: ^5.0.0
10194 dependencies:
10195 webpack: 5.88.2(webpack-cli@5.1.4)
10196 dev: true 5632 dev: true
10197 5633
10198 /stylehacks@6.0.0(postcss@8.4.31): 5634 /strtok3@7.0.0:
10199 resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} 5635 resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==}
10200 engines: {node: ^14 || ^16 || >=18.0} 5636 engines: {node: '>=14.16'}
10201 peerDependencies:
10202 postcss: ^8.2.15
10203 dependencies:
10204 browserslist: 4.22.1
10205 postcss: 8.4.31
10206 postcss-selector-parser: 6.0.13
10207 dev: true
10208
10209 /superagent@8.1.2:
10210 resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==}
10211 engines: {node: '>=6.4.0 <13 || >=14'}
10212 dependencies: 5637 dependencies:
10213 component-emitter: 1.3.0 5638 '@tokenizer/token': 0.3.0
10214 cookiejar: 2.1.4 5639 peek-readable: 5.0.0
10215 debug: 4.3.4
10216 fast-safe-stringify: 2.1.1
10217 form-data: 4.0.0
10218 formidable: 2.1.2
10219 methods: 1.1.2
10220 mime: 2.6.0
10221 qs: 6.11.2
10222 semver: 7.5.4
10223 transitivePeerDependencies:
10224 - supports-color
10225 dev: true
10226
10227 /supports-color@2.0.0:
10228 resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
10229 engines: {node: '>=0.8.0'}
10230 dev: true
10231 5640
10232 /supports-color@5.5.0: 5641 /supports-color@5.5.0:
10233 resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 5642 resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
@@ -10241,71 +5650,30 @@ packages:
10241 engines: {node: '>=8'} 5650 engines: {node: '>=8'}
10242 dependencies: 5651 dependencies:
10243 has-flag: 4.0.0 5652 has-flag: 4.0.0
10244 dev: true
10245
10246 /supports-color@8.1.1:
10247 resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
10248 engines: {node: '>=10'}
10249 dependencies:
10250 has-flag: 4.0.0
10251 5653
10252 /supports-hyperlinks@2.3.0: 5654 /supports-color@9.4.0:
10253 resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} 5655 resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==}
10254 engines: {node: '>=8'} 5656 engines: {node: '>=12'}
10255 dependencies:
10256 has-flag: 4.0.0
10257 supports-color: 7.2.0
10258 dev: true
10259 5657
10260 /supports-preserve-symlinks-flag@1.0.0: 5658 /supports-preserve-symlinks-flag@1.0.0:
10261 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 5659 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
10262 engines: {node: '>= 0.4'} 5660 engines: {node: '>= 0.4'}
10263 5661
10264 /svgo@3.0.2: 5662 /synckit@0.6.2:
10265 resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} 5663 resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==}
10266 engines: {node: '>=14.0.0'} 5664 engines: {node: '>=12.20'}
10267 hasBin: true
10268 dependencies: 5665 dependencies:
10269 '@trysound/sax': 0.2.0 5666 tslib: 2.6.2
10270 commander: 7.2.0
10271 css-select: 5.1.0
10272 css-tree: 2.3.1
10273 csso: 5.0.5
10274 picocolors: 1.0.0
10275 dev: true
10276
10277 /swagger-parser@10.0.3(openapi-types@12.1.3):
10278 resolution: {integrity: sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==}
10279 engines: {node: '>=10'}
10280 dependencies:
10281 '@apidevtools/swagger-parser': 10.0.3(openapi-types@12.1.3)
10282 transitivePeerDependencies:
10283 - openapi-types
10284 dev: true
10285
10286 /swagger-schema-official@2.0.0-bab6bed:
10287 resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==}
10288 dev: true
10289
10290 /sync-rpc@1.3.6:
10291 resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==}
10292 dependencies:
10293 get-port: 3.2.0
10294 dev: true 5667 dev: true
10295 5668
10296 /synckit@0.8.5: 5669 /synckit@0.8.8:
10297 resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} 5670 resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}
10298 engines: {node: ^14.18.0 || >=16.0.0} 5671 engines: {node: ^14.18.0 || >=16.0.0}
10299 dependencies: 5672 dependencies:
10300 '@pkgr/utils': 2.4.2 5673 '@pkgr/core': 0.1.1
10301 tslib: 2.6.2 5674 tslib: 2.6.2
10302 dev: true 5675 dev: true
10303 5676
10304 /tapable@2.2.1:
10305 resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
10306 engines: {node: '>=6'}
10307 dev: true
10308
10309 /tar-fs@1.16.3: 5677 /tar-fs@1.16.3:
10310 resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==} 5678 resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==}
10311 dependencies: 5679 dependencies:
@@ -10315,6 +5683,15 @@ packages:
10315 tar-stream: 1.6.2 5683 tar-stream: 1.6.2
10316 dev: false 5684 dev: false
10317 5685
5686 /tar-fs@2.1.1:
5687 resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
5688 dependencies:
5689 chownr: 1.1.4
5690 mkdirp-classic: 0.5.3
5691 pump: 3.0.0
5692 tar-stream: 2.2.0
5693 dev: false
5694
10318 /tar-stream@1.6.2: 5695 /tar-stream@1.6.2:
10319 resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} 5696 resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==}
10320 engines: {node: '>= 0.8.0'} 5697 engines: {node: '>= 0.8.0'}
@@ -10328,6 +5705,17 @@ packages:
10328 xtend: 4.0.2 5705 xtend: 4.0.2
10329 dev: false 5706 dev: false
10330 5707
5708 /tar-stream@2.2.0:
5709 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
5710 engines: {node: '>=6'}
5711 dependencies:
5712 bl: 4.1.0
5713 end-of-stream: 1.4.4
5714 fs-constants: 1.0.0
5715 inherits: 2.0.4
5716 readable-stream: 3.6.2
5717 dev: false
5718
10331 /tar@6.2.0: 5719 /tar@6.2.0:
10332 resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} 5720 resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
10333 engines: {node: '>=10'} 5721 engines: {node: '>=10'}
@@ -10338,7 +5726,6 @@ packages:
10338 minizlib: 2.1.2 5726 minizlib: 2.1.2
10339 mkdirp: 1.0.4 5727 mkdirp: 1.0.4
10340 yallist: 4.0.0 5728 yallist: 4.0.0
10341 dev: false
10342 5729
10343 /targz@1.0.1: 5730 /targz@1.0.1:
10344 resolution: {integrity: sha512-6q4tP9U55mZnRuMTBqnqc3nwYQY3kv+QthCFZuMk+Tn1qYUnMPmL/JZ/mzgXINzFpSqfU+242IFmFU9VPvqaQw==} 5731 resolution: {integrity: sha512-6q4tP9U55mZnRuMTBqnqc3nwYQY3kv+QthCFZuMk+Tn1qYUnMPmL/JZ/mzgXINzFpSqfU+242IFmFU9VPvqaQw==}
@@ -10351,139 +5738,61 @@ packages:
10351 engines: {node: '>=8.0.0'} 5738 engines: {node: '>=8.0.0'}
10352 dev: false 5739 dev: false
10353 5740
10354 /term-size@2.2.1: 5741 /tempura@0.4.0:
10355 resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 5742 resolution: {integrity: sha512-ghCAK7t3Yuy40NUA/pmS1aDY8M5MfZT4+S465S8YvwwDdgk3jLm/5BGwtMG/rMICDYY8T7Owe1qm91ArBOKd6w==}
10356 engines: {node: '>=8'}
10357
10358 /terser-webpack-plugin@5.3.9(webpack@5.88.2):
10359 resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==}
10360 engines: {node: '>= 10.13.0'}
10361 peerDependencies:
10362 '@swc/core': '*'
10363 esbuild: '*'
10364 uglify-js: '*'
10365 webpack: ^5.1.0
10366 peerDependenciesMeta:
10367 '@swc/core':
10368 optional: true
10369 esbuild:
10370 optional: true
10371 uglify-js:
10372 optional: true
10373 dependencies:
10374 '@jridgewell/trace-mapping': 0.3.19
10375 jest-worker: 27.5.1
10376 schema-utils: 3.3.0
10377 serialize-javascript: 6.0.1
10378 terser: 5.20.0
10379 webpack: 5.88.2(webpack-cli@5.1.4)
10380 dev: true
10381
10382 /terser@5.20.0:
10383 resolution: {integrity: sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==}
10384 engines: {node: '>=10'} 5743 engines: {node: '>=10'}
10385 hasBin: true 5744
10386 dependencies: 5745 /terminal-size@4.0.0:
10387 '@jridgewell/source-map': 0.3.5 5746 resolution: {integrity: sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==}
10388 acorn: 8.10.0 5747 engines: {node: '>=18'}
10389 commander: 2.20.3
10390 source-map-support: 0.5.21
10391 dev: true
10392 5748
10393 /text-table@0.2.0: 5749 /text-table@0.2.0:
10394 resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 5750 resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
10395 dev: true 5751 dev: true
10396 5752
10397 /thunky@1.1.0: 5753 /thread-stream@2.4.1:
10398 resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} 5754 resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==}
10399 dev: true 5755 dependencies:
5756 real-require: 0.2.0
10400 5757
10401 /tildify@2.0.0: 5758 /tildify@2.0.0:
10402 resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} 5759 resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==}
10403 engines: {node: '>=8'} 5760 engines: {node: '>=8'}
10404 dev: false 5761 dev: false
10405 5762
10406 /time-span@4.0.0: 5763 /time-span@5.1.0:
10407 resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} 5764 resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==}
10408 engines: {node: '>=10'}
10409 dependencies:
10410 convert-hrtime: 3.0.0
10411 dev: true
10412
10413 /titleize@3.0.0:
10414 resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==}
10415 engines: {node: '>=12'} 5765 engines: {node: '>=12'}
10416 dev: true 5766 dependencies:
5767 convert-hrtime: 5.0.0
10417 5768
10418 /tmp-cache@1.1.0: 5769 /tmp-cache@1.1.0:
10419 resolution: {integrity: sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==} 5770 resolution: {integrity: sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==}
10420 engines: {node: '>=6'} 5771 engines: {node: '>=6'}
10421 5772
10422 /tmp@0.2.1:
10423 resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
10424 engines: {node: '>=8.17.0'}
10425 dependencies:
10426 rimraf: 3.0.2
10427 dev: true
10428
10429 /to-buffer@1.1.1: 5773 /to-buffer@1.1.1:
10430 resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} 5774 resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==}
10431 dev: false 5775 dev: false
10432 5776
10433 /to-fast-properties@2.0.0:
10434 resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
10435 engines: {node: '>=4'}
10436 dev: true
10437
10438 /to-object-path@0.3.0:
10439 resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
10440 engines: {node: '>=0.10.0'}
10441 dependencies:
10442 kind-of: 3.2.2
10443 dev: true
10444
10445 /to-regex-range@2.1.1:
10446 resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
10447 engines: {node: '>=0.10.0'}
10448 dependencies:
10449 is-number: 3.0.0
10450 repeat-string: 1.6.1
10451 dev: true
10452
10453 /to-regex-range@5.0.1: 5777 /to-regex-range@5.0.1:
10454 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 5778 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
10455 engines: {node: '>=8.0'} 5779 engines: {node: '>=8.0'}
10456 dependencies: 5780 dependencies:
10457 is-number: 7.0.0 5781 is-number: 7.0.0
10458 5782
10459 /to-regex@3.0.2:
10460 resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
10461 engines: {node: '>=0.10.0'}
10462 dependencies:
10463 define-property: 2.0.2
10464 extend-shallow: 3.0.2
10465 regex-not: 1.0.2
10466 safe-regex: 1.1.0
10467 dev: true
10468
10469 /toidentifier@1.0.1: 5783 /toidentifier@1.0.1:
10470 resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 5784 resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
10471 engines: {node: '>=0.6'} 5785 engines: {node: '>=0.6'}
10472 5786
10473 /token-types@4.2.1: 5787 /token-types@5.0.1:
10474 resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} 5788 resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==}
10475 engines: {node: '>=10'} 5789 engines: {node: '>=14.16'}
10476 dependencies: 5790 dependencies:
10477 '@tokenizer/token': 0.3.0 5791 '@tokenizer/token': 0.3.0
10478 ieee754: 1.2.1 5792 ieee754: 1.2.1
10479 5793
10480 /tr46@0.0.3: 5794 /tr46@0.0.3:
10481 resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 5795 resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
10482 dev: false
10483
10484 /traverse@0.6.7:
10485 resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==}
10486 dev: true
10487 5796
10488 /truncate-utf8-bytes@1.0.2: 5797 /truncate-utf8-bytes@1.0.2:
10489 resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} 5798 resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==}
@@ -10494,13 +5803,13 @@ packages:
10494 /truncatise@0.0.8: 5803 /truncatise@0.0.8:
10495 resolution: {integrity: sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==} 5804 resolution: {integrity: sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==}
10496 5805
10497 /ts-api-utils@1.0.3(typescript@5.1.6): 5806 /ts-api-utils@1.2.1(typescript@5.3.3):
10498 resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} 5807 resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==}
10499 engines: {node: '>=16.13.0'} 5808 engines: {node: '>=16'}
10500 peerDependencies: 5809 peerDependencies:
10501 typescript: '>=4.2.0' 5810 typescript: '>=4.2.0'
10502 dependencies: 5811 dependencies:
10503 typescript: 5.1.6 5812 typescript: 5.3.3
10504 dev: true 5813 dev: true
10505 5814
10506 /ts-morph@16.0.0: 5815 /ts-morph@16.0.0:
@@ -10510,8 +5819,46 @@ packages:
10510 code-block-writer: 11.0.3 5819 code-block-writer: 11.0.3
10511 dev: false 5820 dev: false
10512 5821
10513 /tsconfig-paths@3.14.2: 5822 /ts-morph@21.0.1:
10514 resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 5823 resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==}
5824 dependencies:
5825 '@ts-morph/common': 0.22.0
5826 code-block-writer: 12.0.0
5827
5828 /ts-node@10.9.2(@swc/core@1.4.0)(@types/node@20.11.17)(typescript@5.3.3):
5829 resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
5830 hasBin: true
5831 peerDependencies:
5832 '@swc/core': '>=1.2.50'
5833 '@swc/wasm': '>=1.2.50'
5834 '@types/node': '*'
5835 typescript: '>=2.7'
5836 peerDependenciesMeta:
5837 '@swc/core':
5838 optional: true
5839 '@swc/wasm':
5840 optional: true
5841 dependencies:
5842 '@cspotcode/source-map-support': 0.8.1
5843 '@swc/core': 1.4.0
5844 '@tsconfig/node10': 1.0.9
5845 '@tsconfig/node12': 1.0.11
5846 '@tsconfig/node14': 1.0.3
5847 '@tsconfig/node16': 1.0.4
5848 '@types/node': 20.11.17
5849 acorn: 8.11.3
5850 acorn-walk: 8.3.2
5851 arg: 4.1.3
5852 create-require: 1.1.1
5853 diff: 4.0.2
5854 make-error: 1.3.6
5855 typescript: 5.3.3
5856 v8-compile-cache-lib: 3.0.1
5857 yn: 3.1.1
5858 dev: true
5859
5860 /tsconfig-paths@3.15.0:
5861 resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
10515 dependencies: 5862 dependencies:
10516 '@types/json5': 0.0.29 5863 '@types/json5': 0.0.29
10517 json5: 1.0.2 5864 json5: 1.0.2
@@ -10519,35 +5866,20 @@ packages:
10519 strip-bom: 3.0.0 5866 strip-bom: 3.0.0
10520 dev: true 5867 dev: true
10521 5868
10522 /tslib@1.14.1:
10523 resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
10524 dev: true
10525
10526 /tslib@2.6.2: 5869 /tslib@2.6.2:
10527 resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 5870 resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
5871 dev: true
10528 5872
10529 /tsscmp@1.0.6: 5873 /tsscmp@1.0.6:
10530 resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} 5874 resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
10531 engines: {node: '>=0.6.x'} 5875 engines: {node: '>=0.6.x'}
10532 dev: false
10533 5876
10534 /tsse@2.1.0: 5877 /tunnel-agent@0.6.0:
10535 resolution: {integrity: sha512-rYyp1CO0VcKCIoAlMKAaLEb/1v5arucsRWSc+kkz9k2/GQN7rVMUH5Dmc7l3ZuiJGZ7jwEDO9Z0Qv6LkAqCdDA==} 5878 resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
10536 engines: {node: '>=4'}
10537 dependencies: 5879 dependencies:
10538 safe-buffer: 5.2.1 5880 safe-buffer: 5.2.1
10539 dev: false 5881 dev: false
10540 5882
10541 /tsutils@3.21.0(typescript@5.1.6):
10542 resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
10543 engines: {node: '>= 6'}
10544 peerDependencies:
10545 typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
10546 dependencies:
10547 tslib: 1.14.1
10548 typescript: 5.1.6
10549 dev: true
10550
10551 /type-check@0.4.0: 5883 /type-check@0.4.0:
10552 resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 5884 resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
10553 engines: {node: '>= 0.8.0'} 5885 engines: {node: '>= 0.8.0'}
@@ -10555,20 +5887,11 @@ packages:
10555 prelude-ls: 1.2.1 5887 prelude-ls: 1.2.1
10556 dev: true 5888 dev: true
10557 5889
10558 /type-detect@4.0.8:
10559 resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
10560 engines: {node: '>=4'}
10561 dev: true
10562
10563 /type-fest@0.20.2: 5890 /type-fest@0.20.2:
10564 resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 5891 resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
10565 engines: {node: '>=10'} 5892 engines: {node: '>=10'}
10566 dev: true 5893 dev: true
10567 5894
10568 /type-fest@0.21.3:
10569 resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
10570 engines: {node: '>=10'}
10571
10572 /type-fest@0.6.0: 5895 /type-fest@0.6.0:
10573 resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 5896 resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
10574 engines: {node: '>=8'} 5897 engines: {node: '>=8'}
@@ -10579,10 +5902,13 @@ packages:
10579 engines: {node: '>=8'} 5902 engines: {node: '>=8'}
10580 dev: true 5903 dev: true
10581 5904
5905 /type-fest@2.19.0:
5906 resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
5907 engines: {node: '>=12.20'}
5908
10582 /type-fest@3.13.1: 5909 /type-fest@3.13.1:
10583 resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} 5910 resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
10584 engines: {node: '>=14.16'} 5911 engines: {node: '>=14.16'}
10585 dev: true
10586 5912
10587 /type-is@1.6.18: 5913 /type-is@1.6.18:
10588 resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 5914 resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
@@ -10595,8 +5921,8 @@ packages:
10595 resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 5921 resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
10596 engines: {node: '>= 0.4'} 5922 engines: {node: '>= 0.4'}
10597 dependencies: 5923 dependencies:
10598 call-bind: 1.0.2 5924 call-bind: 1.0.5
10599 get-intrinsic: 1.2.1 5925 get-intrinsic: 1.2.2
10600 is-typed-array: 1.1.12 5926 is-typed-array: 1.1.12
10601 dev: true 5927 dev: true
10602 5928
@@ -10604,7 +5930,7 @@ packages:
10604 resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 5930 resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
10605 engines: {node: '>= 0.4'} 5931 engines: {node: '>= 0.4'}
10606 dependencies: 5932 dependencies:
10607 call-bind: 1.0.2 5933 call-bind: 1.0.5
10608 for-each: 0.3.3 5934 for-each: 0.3.3
10609 has-proto: 1.0.1 5935 has-proto: 1.0.1
10610 is-typed-array: 1.1.12 5936 is-typed-array: 1.1.12
@@ -10615,7 +5941,7 @@ packages:
10615 engines: {node: '>= 0.4'} 5941 engines: {node: '>= 0.4'}
10616 dependencies: 5942 dependencies:
10617 available-typed-arrays: 1.0.5 5943 available-typed-arrays: 1.0.5
10618 call-bind: 1.0.2 5944 call-bind: 1.0.5
10619 for-each: 0.3.3 5945 for-each: 0.3.3
10620 has-proto: 1.0.1 5946 has-proto: 1.0.1
10621 is-typed-array: 1.1.12 5947 is-typed-array: 1.1.12
@@ -10624,16 +5950,15 @@ packages:
10624 /typed-array-length@1.0.4: 5950 /typed-array-length@1.0.4:
10625 resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 5951 resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
10626 dependencies: 5952 dependencies:
10627 call-bind: 1.0.2 5953 call-bind: 1.0.5
10628 for-each: 0.3.3 5954 for-each: 0.3.3
10629 is-typed-array: 1.1.12 5955 is-typed-array: 1.1.12
10630 dev: true 5956 dev: true
10631 5957
10632 /typescript@5.1.6: 5958 /typescript@5.3.3:
10633 resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} 5959 resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
10634 engines: {node: '>=14.17'} 5960 engines: {node: '>=14.17'}
10635 hasBin: true 5961 hasBin: true
10636 dev: true
10637 5962
10638 /uid-safe@2.1.5: 5963 /uid-safe@2.1.5:
10639 resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} 5964 resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==}
@@ -10644,44 +5969,14 @@ packages:
10644 /unbox-primitive@1.0.2: 5969 /unbox-primitive@1.0.2:
10645 resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 5970 resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
10646 dependencies: 5971 dependencies:
10647 call-bind: 1.0.2 5972 call-bind: 1.0.5
10648 has-bigints: 1.0.2 5973 has-bigints: 1.0.2
10649 has-symbols: 1.0.3 5974 has-symbols: 1.0.3
10650 which-boxed-primitive: 1.0.2 5975 which-boxed-primitive: 1.0.2
10651 dev: true 5976 dev: true
10652 5977
10653 /unicode-canonical-property-names-ecmascript@2.0.0: 5978 /undici-types@5.26.5:
10654 resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} 5979 resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
10655 engines: {node: '>=4'}
10656 dev: true
10657
10658 /unicode-match-property-ecmascript@2.0.0:
10659 resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
10660 engines: {node: '>=4'}
10661 dependencies:
10662 unicode-canonical-property-names-ecmascript: 2.0.0
10663 unicode-property-aliases-ecmascript: 2.1.0
10664 dev: true
10665
10666 /unicode-match-property-value-ecmascript@2.1.0:
10667 resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
10668 engines: {node: '>=4'}
10669 dev: true
10670
10671 /unicode-property-aliases-ecmascript@2.1.0:
10672 resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
10673 engines: {node: '>=4'}
10674 dev: true
10675
10676 /union-value@1.0.1:
10677 resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
10678 engines: {node: '>=0.10.0'}
10679 dependencies:
10680 arr-union: 3.1.0
10681 get-value: 2.0.6
10682 is-extendable: 0.1.1
10683 set-value: 2.0.1
10684 dev: true
10685 5980
10686 /unique-filename@1.1.1: 5981 /unique-filename@1.1.1:
10687 resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} 5982 resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
@@ -10699,76 +5994,32 @@ packages:
10699 dev: false 5994 dev: false
10700 optional: true 5995 optional: true
10701 5996
10702 /universalify@0.1.2: 5997 /universalify@2.0.1:
10703 resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 5998 resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
10704 engines: {node: '>= 4.0.0'}
10705 dev: true
10706
10707 /universalify@2.0.0:
10708 resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
10709 engines: {node: '>= 10.0.0'} 5999 engines: {node: '>= 10.0.0'}
6000 dev: false
10710 6001
10711 /unpipe@1.0.0: 6002 /unpipe@1.0.0:
10712 resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 6003 resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
10713 engines: {node: '>= 0.8'} 6004 engines: {node: '>= 0.8'}
10714 6005
10715 /unset-value@1.0.0: 6006 /update-browserslist-db@1.0.13(browserslist@4.22.3):
10716 resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
10717 engines: {node: '>=0.10.0'}
10718 dependencies:
10719 has-value: 0.3.1
10720 isobject: 3.0.1
10721 dev: true
10722
10723 /untildify@4.0.0:
10724 resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
10725 engines: {node: '>=8'}
10726 dev: true
10727
10728 /update-browserslist-db@1.0.13(browserslist@4.22.1):
10729 resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 6007 resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
10730 hasBin: true 6008 hasBin: true
10731 peerDependencies: 6009 peerDependencies:
10732 browserslist: '>= 4.21.0' 6010 browserslist: '>= 4.21.0'
10733 dependencies: 6011 dependencies:
10734 browserslist: 4.22.1 6012 browserslist: 4.22.3
10735 escalade: 3.1.1 6013 escalade: 3.1.2
10736 picocolors: 1.0.0 6014 picocolors: 1.0.0
10737 dev: true 6015 dev: true
10738 6016
10739 /upper-case-first@2.0.2:
10740 resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
10741 dependencies:
10742 tslib: 2.6.2
10743
10744 /upper-case@2.0.2:
10745 resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
10746 dependencies:
10747 tslib: 2.6.2
10748
10749 /uri-js@4.4.1: 6017 /uri-js@4.4.1:
10750 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 6018 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
10751 dependencies: 6019 dependencies:
10752 punycode: 2.3.0 6020 punycode: 2.3.0
10753 dev: true 6021 dev: true
10754 6022
10755 /urix@0.1.0:
10756 resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
10757 deprecated: Please see https://github.com/lydell/urix#deprecated
10758 dev: true
10759
10760 /url@0.10.3:
10761 resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==}
10762 dependencies:
10763 punycode: 1.3.2
10764 querystring: 0.2.0
10765 dev: false
10766
10767 /use@3.1.1:
10768 resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
10769 engines: {node: '>=0.10.0'}
10770 dev: true
10771
10772 /utf8-byte-length@1.0.4: 6023 /utf8-byte-length@1.0.4:
10773 resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} 6024 resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==}
10774 dev: false 6025 dev: false
@@ -10776,46 +6027,17 @@ packages:
10776 /util-deprecate@1.0.2: 6027 /util-deprecate@1.0.2:
10777 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 6028 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
10778 6029
10779 /util@0.12.5:
10780 resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
10781 dependencies:
10782 inherits: 2.0.4
10783 is-arguments: 1.1.1
10784 is-generator-function: 1.0.10
10785 is-typed-array: 1.1.12
10786 which-typed-array: 1.1.11
10787 dev: false
10788
10789 /utila@0.4.0:
10790 resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
10791 dev: true
10792
10793 /utils-merge@1.0.1:
10794 resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
10795 engines: {node: '>= 0.4.0'}
10796 dev: true
10797
10798 /uuid-random@1.3.2: 6030 /uuid-random@1.3.2:
10799 resolution: {integrity: sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==} 6031 resolution: {integrity: sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==}
10800 dev: false 6032 dev: false
10801 6033
10802 /uuid@8.0.0: 6034 /uuid@9.0.1:
10803 resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} 6035 resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
10804 hasBin: true 6036 hasBin: true
10805 dev: false 6037 dev: false
10806 6038
10807 /uuid@8.3.2: 6039 /v8-compile-cache-lib@3.0.1:
10808 resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 6040 resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
10809 hasBin: true
10810 dev: true
10811
10812 /uuid@9.0.0:
10813 resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
10814 hasBin: true
10815 dev: false
10816
10817 /valid-url@1.0.9:
10818 resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==}
10819 dev: true 6041 dev: true
10820 6042
10821 /validate-npm-package-license@3.0.4: 6043 /validate-npm-package-license@3.0.4:
@@ -10825,12 +6047,6 @@ packages:
10825 spdx-expression-parse: 3.0.1 6047 spdx-expression-parse: 3.0.1
10826 dev: true 6048 dev: true
10827 6049
10828 /validate-npm-package-name@3.0.0:
10829 resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
10830 dependencies:
10831 builtins: 1.0.3
10832 dev: true
10833
10834 /validator@13.11.0: 6050 /validator@13.11.0:
10835 resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} 6051 resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==}
10836 engines: {node: '>= 0.10'} 6052 engines: {node: '>= 0.10'}
@@ -10839,209 +6055,59 @@ packages:
10839 resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 6055 resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
10840 engines: {node: '>= 0.8'} 6056 engines: {node: '>= 0.8'}
10841 6057
10842 /watchpack@2.4.0: 6058 /vite-plugin-restart@0.4.0(vite@5.1.1):
10843 resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} 6059 resolution: {integrity: sha512-SXeyKQAzRFmEmEyGP2DjaTbx22D1K5MapyNiAP7Xa14UyFgNSDjZ86bfjWksA0pqn+bZyxnVLJpCiqDuG+tOcg==}
10844 engines: {node: '>=10.13.0'} 6060 peerDependencies:
10845 dependencies: 6061 vite: ^2.9.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
10846 glob-to-regexp: 0.4.1
10847 graceful-fs: 4.2.11
10848 dev: true
10849
10850 /wbuf@1.7.3:
10851 resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
10852 dependencies:
10853 minimalistic-assert: 1.0.1
10854 dev: true
10855
10856 /wcwidth@1.0.1:
10857 resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
10858 dependencies: 6062 dependencies:
10859 defaults: 1.0.4 6063 micromatch: 4.0.5
6064 vite: 5.1.1(@types/node@20.11.17)
10860 dev: true 6065 dev: true
10861 6066
10862 /webidl-conversions@3.0.1: 6067 /vite@5.1.1(@types/node@20.11.17):
10863 resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 6068 resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==}
10864 dev: false 6069 engines: {node: ^18.0.0 || >=20.0.0}
10865
10866 /webpack-cli@5.1.4(webpack@5.88.2):
10867 resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
10868 engines: {node: '>=14.15.0'}
10869 hasBin: true 6070 hasBin: true
10870 peerDependencies: 6071 peerDependencies:
10871 '@webpack-cli/generators': '*' 6072 '@types/node': ^18.0.0 || >=20.0.0
10872 webpack: 5.x.x 6073 less: '*'
10873 webpack-bundle-analyzer: '*' 6074 lightningcss: ^1.21.0
10874 webpack-dev-server: '*' 6075 sass: '*'
6076 stylus: '*'
6077 sugarss: '*'
6078 terser: ^5.4.0
10875 peerDependenciesMeta: 6079 peerDependenciesMeta:
10876 '@webpack-cli/generators': 6080 '@types/node':
10877 optional: true 6081 optional: true
10878 webpack-bundle-analyzer: 6082 less:
10879 optional: true 6083 optional: true
10880 webpack-dev-server: 6084 lightningcss:
10881 optional: true 6085 optional: true
10882 dependencies: 6086 sass:
10883 '@discoveryjs/json-ext': 0.5.7
10884 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.88.2)
10885 '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.88.2)
10886 '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.88.2)
10887 colorette: 2.0.20
10888 commander: 10.0.1
10889 cross-spawn: 7.0.3
10890 envinfo: 7.10.0
10891 fastest-levenshtein: 1.0.16
10892 import-local: 3.1.0
10893 interpret: 3.1.1
10894 rechoir: 0.8.0
10895 webpack: 5.88.2(webpack-cli@5.1.4)
10896 webpack-merge: 5.9.0
10897 dev: true
10898
10899 /webpack-dev-middleware@5.3.3(webpack@5.88.2):
10900 resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==}
10901 engines: {node: '>= 12.13.0'}
10902 peerDependencies:
10903 webpack: ^4.0.0 || ^5.0.0
10904 dependencies:
10905 colorette: 2.0.20
10906 memfs: 3.5.3
10907 mime-types: 2.1.35
10908 range-parser: 1.2.1
10909 schema-utils: 4.2.0
10910 webpack: 5.88.2(webpack-cli@5.1.4)
10911 dev: true
10912
10913 /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.88.2):
10914 resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==}
10915 engines: {node: '>= 12.13.0'}
10916 hasBin: true
10917 peerDependencies:
10918 webpack: ^4.37.0 || ^5.0.0
10919 webpack-cli: '*'
10920 peerDependenciesMeta:
10921 webpack:
10922 optional: true 6087 optional: true
10923 webpack-cli: 6088 stylus:
10924 optional: true 6089 optional: true
10925 dependencies: 6090 sugarss:
10926 '@types/bonjour': 3.5.11 6091 optional: true
10927 '@types/connect-history-api-fallback': 1.5.1 6092 terser:
10928 '@types/express': 4.17.18
10929 '@types/serve-index': 1.9.2
10930 '@types/serve-static': 1.15.3
10931 '@types/sockjs': 0.3.34
10932 '@types/ws': 8.5.6
10933 ansi-html-community: 0.0.8
10934 bonjour-service: 1.1.1
10935 chokidar: 3.5.3
10936 colorette: 2.0.20
10937 compression: 1.7.4
10938 connect-history-api-fallback: 2.0.0
10939 default-gateway: 6.0.3
10940 express: 4.18.2
10941 graceful-fs: 4.2.11
10942 html-entities: 2.4.0
10943 http-proxy-middleware: 2.0.6(@types/express@4.17.18)
10944 ipaddr.js: 2.1.0
10945 launch-editor: 2.6.0
10946 open: 8.4.2
10947 p-retry: 4.6.2
10948 rimraf: 3.0.2
10949 schema-utils: 4.2.0
10950 selfsigned: 2.1.1
10951 serve-index: 1.9.1
10952 sockjs: 0.3.24
10953 spdy: 4.0.2
10954 webpack: 5.88.2(webpack-cli@5.1.4)
10955 webpack-cli: 5.1.4(webpack@5.88.2)
10956 webpack-dev-middleware: 5.3.3(webpack@5.88.2)
10957 ws: 8.14.2
10958 transitivePeerDependencies:
10959 - bufferutil
10960 - debug
10961 - supports-color
10962 - utf-8-validate
10963 dev: true
10964
10965 /webpack-merge@4.2.2:
10966 resolution: {integrity: sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==}
10967 dependencies:
10968 lodash: 4.17.21
10969 dev: true
10970
10971 /webpack-merge@5.9.0:
10972 resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==}
10973 engines: {node: '>=10.0.0'}
10974 dependencies:
10975 clone-deep: 4.0.1
10976 wildcard: 2.0.1
10977 dev: true
10978
10979 /webpack-sources@3.2.3:
10980 resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
10981 engines: {node: '>=10.13.0'}
10982 dev: true
10983
10984 /webpack@5.88.2(webpack-cli@5.1.4):
10985 resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==}
10986 engines: {node: '>=10.13.0'}
10987 hasBin: true
10988 peerDependencies:
10989 webpack-cli: '*'
10990 peerDependenciesMeta:
10991 webpack-cli:
10992 optional: true 6093 optional: true
10993 dependencies: 6094 dependencies:
10994 '@types/eslint-scope': 3.7.5 6095 '@types/node': 20.11.17
10995 '@types/estree': 1.0.2 6096 esbuild: 0.19.12
10996 '@webassemblyjs/ast': 1.11.6 6097 postcss: 8.4.35
10997 '@webassemblyjs/wasm-edit': 1.11.6 6098 rollup: 4.10.0
10998 '@webassemblyjs/wasm-parser': 1.11.6 6099 optionalDependencies:
10999 acorn: 8.10.0 6100 fsevents: 2.3.3
11000 acorn-import-assertions: 1.9.0(acorn@8.10.0)
11001 browserslist: 4.22.1
11002 chrome-trace-event: 1.0.3
11003 enhanced-resolve: 5.15.0
11004 es-module-lexer: 1.3.1
11005 eslint-scope: 5.1.1
11006 events: 3.3.0
11007 glob-to-regexp: 0.4.1
11008 graceful-fs: 4.2.11
11009 json-parse-even-better-errors: 2.3.1
11010 loader-runner: 4.3.0
11011 mime-types: 2.1.35
11012 neo-async: 2.6.2
11013 schema-utils: 3.3.0
11014 tapable: 2.2.1
11015 terser-webpack-plugin: 5.3.9(webpack@5.88.2)
11016 watchpack: 2.4.0
11017 webpack-cli: 5.1.4(webpack@5.88.2)
11018 webpack-sources: 3.2.3
11019 transitivePeerDependencies:
11020 - '@swc/core'
11021 - esbuild
11022 - uglify-js
11023 dev: true
11024
11025 /websocket-driver@0.7.4:
11026 resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
11027 engines: {node: '>=0.8.0'}
11028 dependencies:
11029 http-parser-js: 0.5.8
11030 safe-buffer: 5.2.1
11031 websocket-extensions: 0.1.4
11032 dev: true 6101 dev: true
11033 6102
11034 /websocket-extensions@0.1.4: 6103 /webidl-conversions@3.0.1:
11035 resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} 6104 resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
11036 engines: {node: '>=0.8.0'}
11037 dev: true
11038 6105
11039 /whatwg-url@5.0.0: 6106 /whatwg-url@5.0.0:
11040 resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 6107 resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
11041 dependencies: 6108 dependencies:
11042 tr46: 0.0.3 6109 tr46: 0.0.3
11043 webidl-conversions: 3.0.1 6110 webidl-conversions: 3.0.1
11044 dev: false
11045 6111
11046 /which-boxed-primitive@1.0.2: 6112 /which-boxed-primitive@1.0.2:
11047 resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 6113 resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
@@ -11053,15 +6119,16 @@ packages:
11053 is-symbol: 1.0.4 6119 is-symbol: 1.0.4
11054 dev: true 6120 dev: true
11055 6121
11056 /which-typed-array@1.1.11: 6122 /which-typed-array@1.1.13:
11057 resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} 6123 resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
11058 engines: {node: '>= 0.4'} 6124 engines: {node: '>= 0.4'}
11059 dependencies: 6125 dependencies:
11060 available-typed-arrays: 1.0.5 6126 available-typed-arrays: 1.0.5
11061 call-bind: 1.0.2 6127 call-bind: 1.0.5
11062 for-each: 0.3.3 6128 for-each: 0.3.3
11063 gopd: 1.0.1 6129 gopd: 1.0.1
11064 has-tostringtag: 1.0.0 6130 has-tostringtag: 1.0.0
6131 dev: true
11065 6132
11066 /which@2.0.2: 6133 /which@2.0.2:
11067 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 6134 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
@@ -11074,77 +6141,36 @@ packages:
11074 resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} 6141 resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
11075 dependencies: 6142 dependencies:
11076 string-width: 4.2.3 6143 string-width: 4.2.3
11077 dev: false
11078
11079 /wildcard@2.0.1:
11080 resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
11081 dev: true
11082 6144
11083 /wordwrap@1.0.0: 6145 /wordwrap@1.0.0:
11084 resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} 6146 resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
11085 dev: true
11086 6147
11087 /wrap-ansi@6.2.0: 6148 /wrap-ansi@9.0.0:
11088 resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 6149 resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
11089 engines: {node: '>=8'} 6150 engines: {node: '>=18'}
11090 dependencies: 6151 dependencies:
11091 ansi-styles: 4.3.0 6152 ansi-styles: 6.2.1
11092 string-width: 4.2.3 6153 string-width: 7.1.0
11093 strip-ansi: 6.0.1 6154 strip-ansi: 7.1.0
11094 6155
11095 /wrappy@1.0.2: 6156 /wrappy@1.0.2:
11096 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 6157 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
11097 6158
11098 /ws@8.14.2:
11099 resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==}
11100 engines: {node: '>=10.0.0'}
11101 peerDependencies:
11102 bufferutil: ^4.0.1
11103 utf-8-validate: '>=5.0.2'
11104 peerDependenciesMeta:
11105 bufferutil:
11106 optional: true
11107 utf-8-validate:
11108 optional: true
11109 dev: true
11110
11111 /xml2js@0.5.0:
11112 resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
11113 engines: {node: '>=4.0.0'}
11114 dependencies:
11115 sax: 1.2.1
11116 xmlbuilder: 11.0.1
11117 dev: false
11118
11119 /xmlbuilder@11.0.1:
11120 resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
11121 engines: {node: '>=4.0'}
11122 dev: false
11123
11124 /xtend@4.0.2: 6159 /xtend@4.0.2:
11125 resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 6160 resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
11126 engines: {node: '>=0.4'} 6161 engines: {node: '>=0.4'}
11127 dev: false 6162 dev: false
11128 6163
11129 /yallist@2.1.2:
11130 resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
11131 dev: true
11132
11133 /yallist@3.1.1:
11134 resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
11135 dev: true
11136
11137 /yallist@4.0.0: 6164 /yallist@4.0.0:
11138 resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 6165 resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
11139 6166
11140 /yaml@2.3.2:
11141 resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==}
11142 engines: {node: '>= 14'}
11143 dev: true
11144
11145 /yargs-parser@21.1.1: 6167 /yargs-parser@21.1.1:
11146 resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 6168 resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
11147 engines: {node: '>=12'} 6169 engines: {node: '>=12'}
6170
6171 /yn@3.1.1:
6172 resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
6173 engines: {node: '>=6'}
11148 dev: true 6174 dev: true
11149 6175
11150 /yocto-queue@0.1.0: 6176 /yocto-queue@0.1.0:
@@ -11152,40 +6178,30 @@ packages:
11152 engines: {node: '>=10'} 6178 engines: {node: '>=10'}
11153 dev: true 6179 dev: true
11154 6180
11155 /youch-terminal@2.2.2: 6181 /yocto-queue@1.0.0:
11156 resolution: {integrity: sha512-JfVAsD0r88+vWVz+Im6bMk+c7gErDp1lq6Z1Na5LAyPZTwhB3VgO6HUQsm83I217mRFSuwVwEpnvwkK/TDTNhQ==} 6182 resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
6183 engines: {node: '>=12.20'}
6184
6185 /youch-terminal@2.2.3:
6186 resolution: {integrity: sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==}
11157 dependencies: 6187 dependencies:
11158 kleur: 4.1.5 6188 kleur: 4.1.5
11159 string-width: 4.2.3 6189 string-width: 4.2.3
11160 wordwrap: 1.0.0 6190 wordwrap: 1.0.0
11161 dev: true
11162 6191
11163 /youch@3.2.3: 6192 /youch@3.3.3:
11164 resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} 6193 resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==}
11165 dependencies: 6194 dependencies:
11166 cookie: 0.5.0 6195 cookie: 0.5.0
11167 mustache: 4.2.0 6196 mustache: 4.2.0
11168 stacktracey: 2.1.8 6197 stacktracey: 2.1.8
11169 dev: true
11170
11171 /z-schema@5.0.5:
11172 resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
11173 engines: {node: '>=8.0.0'}
11174 hasBin: true
11175 dependencies:
11176 lodash.get: 4.4.2
11177 lodash.isequal: 4.5.0
11178 validator: 13.11.0
11179 optionalDependencies:
11180 commander: 9.5.0
11181 dev: true
11182 6198
11183 github.com/SpecialAro/adonis5-jwt/34941c10adcf89583a40767552b994ea499b92e3: 6199 github.com/SpecialAro/adonis5-jwt/34941c10adcf89583a40767552b994ea499b92e3:
11184 resolution: {tarball: https://codeload.github.com/SpecialAro/adonis5-jwt/tar.gz/34941c10adcf89583a40767552b994ea499b92e3} 6200 resolution: {tarball: https://codeload.github.com/SpecialAro/adonis5-jwt/tar.gz/34941c10adcf89583a40767552b994ea499b92e3}
11185 name: adonis5-jwt 6201 name: adonis5-jwt
11186 version: 1.1.7 6202 version: 1.1.7
11187 dependencies: 6203 dependencies:
11188 jose: 4.14.6 6204 jose: 4.15.4
11189 ts-morph: 16.0.0 6205 ts-morph: 16.0.0
11190 uuid: 9.0.0 6206 uuid: 9.0.1
11191 dev: false 6207 dev: false
diff --git a/providers/AppProvider.ts b/providers/AppProvider.ts
index 8d64412..c84c0e6 100644
--- a/providers/AppProvider.ts
+++ b/providers/AppProvider.ts
@@ -1,7 +1,7 @@
1import { ApplicationContract } from '@ioc:Adonis/Core/Application'; 1import { ApplicationService } from '@adonisjs/core/types'
2 2
3export default class AppProvider { 3export default class AppProvider {
4 constructor(protected app: ApplicationContract) {} 4 constructor(protected app: ApplicationService) {}
5 5
6 public register() { 6 public register() {
7 // Register your own bindings 7 // Register your own bindings
diff --git a/providers/LegacyHashDriver.ts b/providers/LegacyHashDriver.ts
index 22f9de1..eb2a263 100644
--- a/providers/LegacyHashDriver.ts
+++ b/providers/LegacyHashDriver.ts
@@ -1,5 +1,6 @@
1import bcrypt from 'bcrypt'; 1import bcrypt from 'bcrypt'
2import { HashDriverContract } from '@ioc:Adonis/Core/Hash'; 2import { HashDriverContract } from '@adonisjs/core/hash'
3
3/** 4/**
4 * Implementation of custom bcrypt driver 5 * Implementation of custom bcrypt driver
5 */ 6 */
@@ -8,12 +9,12 @@ export class LegacyHashDriver implements HashDriverContract {
8 * Hash value 9 * Hash value
9 */ 10 */
10 public async make(value: string) { 11 public async make(value: string) {
11 return bcrypt.hash(value, 10); 12 return bcrypt.hash(value, 10)
12 } 13 }
13 /** 14 /**
14 * Verify value 15 * Verify value
15 */ 16 */
16 public async verify(hashedValue: string, plainValue: string) { 17 public async verify(hashedValue: string, plainValue: string) {
17 return bcrypt.compare(plainValue, hashedValue); 18 return bcrypt.compare(plainValue, hashedValue)
18 } 19 }
19} 20}
diff --git a/providers/LegacyHasherProvider.ts b/providers/LegacyHasherProvider.ts
index 05b2d27..a4a25d9 100644
--- a/providers/LegacyHasherProvider.ts
+++ b/providers/LegacyHasherProvider.ts
@@ -1,14 +1,14 @@
1import { ApplicationContract } from '@ioc:Adonis/Core/Application'; 1import { LegacyHashDriver } from './LegacyHashDriver.js'
2import { LegacyHashDriver } from './LegacyHashDriver'; 2import { ApplicationService } from '@adonisjs/core/types'
3 3
4export default class LegacyHasherProvider { 4export default class LegacyHasherProvider {
5 constructor(protected app: ApplicationContract) {} 5 constructor(protected app: ApplicationService) {}
6 6
7 public async boot() { 7 public async boot() {
8 const Hash = this.app.container.use('Adonis/Core/Hash'); 8 const Hash = this.app.container.use('Adonis/Core/Hash')
9 9
10 Hash.extend('legacy', () => { 10 Hash.extend('legacy', () => {
11 return new LegacyHashDriver(); 11 return new LegacyHashDriver()
12 }); 12 })
13 } 13 }
14} 14}
diff --git a/public/js/new.js b/public/js/new.js
index 62c2e4b..593258e 100644
--- a/public/js/new.js
+++ b/public/js/new.js
@@ -1,24 +1,24 @@
1/* eslint-env browser */ 1/* eslint-env browser */
2const elDrop = document.querySelector('#dropzone'); 2const elDrop = document.querySelector('#dropzone')
3const submitBtn = document.querySelector('#submitbutton'); 3const submitBtn = document.querySelector('#submitbutton')
4const fileInput = document.querySelector('#files'); 4const fileInput = document.querySelector('#files')
5 5
6elDrop.addEventListener('dragover', event => { 6elDrop.addEventListener('dragover', (event) => {
7 event.preventDefault(); 7 event.preventDefault()
8}); 8})
9 9
10elDrop.addEventListener('drop', async event => { 10elDrop.addEventListener('drop', async (event) => {
11 event.preventDefault(); 11 event.preventDefault()
12 12
13 submitBtn.disabled = true; 13 submitBtn.disabled = true
14 14
15 fileInput.files = event.dataTransfer.files; 15 fileInput.files = event.dataTransfer.files
16 16
17 elDrop.textContent = `✓ ${fileInput.files.length} files selected`; 17 elDrop.textContent = `✓ ${fileInput.files.length} files selected`
18 elDrop.style.height = 'inherit'; 18 elDrop.style.height = 'inherit'
19 19
20 submitBtn.disabled = false; 20 submitBtn.disabled = false
21}); 21})
22elDrop.addEventListener('click', () => { 22elDrop.addEventListener('click', () => {
23 fileInput.click(); 23 fileInput.click()
24}); 24})
diff --git a/public/js/transfer.js b/public/js/transfer.js
index b4ba14c..4bf46fa 100644
--- a/public/js/transfer.js
+++ b/public/js/transfer.js
@@ -1,15 +1,15 @@
1/* eslint-env browser */ 1/* eslint-env browser */
2const submitBtn = document.querySelector('#submit'); 2const submitBtn = document.querySelector('#submit')
3const fileInput = document.querySelector('#file'); 3const fileInput = document.querySelector('#file')
4const fileOutput = document.querySelector('#fileoutput'); 4const fileOutput = document.querySelector('#fileoutput')
5 5
6fileInput.addEventListener('change', () => { 6fileInput.addEventListener('change', () => {
7 const reader = new FileReader(); 7 const reader = new FileReader()
8 reader.addEventListener('load', () => { 8 reader.addEventListener('load', () => {
9 const text = reader.result; 9 const text = reader.result
10 fileOutput.value = text; 10 fileOutput.value = text
11 submitBtn.disabled = false; 11 submitBtn.disabled = false
12 }); 12 })
13 // eslint-disable-next-line unicorn/prefer-blob-reading-methods 13 // eslint-disable-next-line unicorn/prefer-blob-reading-methods
14 reader.readAsText(fileInput.files[0]); 14 reader.readAsText(fileInput.files[0])
15}); 15})
diff --git a/server.ts b/server.ts
deleted file mode 100644
index f334636..0000000
--- a/server.ts
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2|--------------------------------------------------------------------------
3| AdonisJs Server
4|--------------------------------------------------------------------------
5|
6| The contents in this file is meant to bootstrap the AdonisJs application
7| and start the HTTP server to accept incoming connections. You must avoid
8| making this file dirty and instead make use of `lifecycle hooks` provided
9| by AdonisJs service providers for custom code.
10|
11*/
12
13import 'reflect-metadata';
14import sourceMapSupport from 'source-map-support';
15import { Ignitor } from '@adonisjs/core/build/standalone';
16
17sourceMapSupport.install({ handleUncaughtExceptions: false });
18
19new Ignitor(__dirname).httpServer().start();
diff --git a/env.ts b/start/env.ts
index 1f163b0..3e1702e 100644
--- a/env.ts
+++ b/start/env.ts
@@ -11,10 +11,9 @@
11| and hence do not rename or move this file to a different location. 11| and hence do not rename or move this file to a different location.
12| 12|
13*/ 13*/
14import { Env } from '@adonisjs/core/env'
14 15
15import Env from '@ioc:Adonis/Core/Env'; 16export default await Env.create(new URL('../', import.meta.url), {
16
17export default Env.rules({
18 HOST: Env.schema.string({ format: 'host' }), 17 HOST: Env.schema.string({ format: 'host' }),
19 PORT: Env.schema.number(), 18 PORT: Env.schema.number(),
20 19
@@ -22,4 +21,4 @@ export default Env.rules({
22 APP_NAME: Env.schema.string(), 21 APP_NAME: Env.schema.string(),
23 22
24 NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const), 23 NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const),
25}); 24})
diff --git a/start/events.ts b/start/events.ts
index 11e63e5..faedc29 100644
--- a/start/events.ts
+++ b/start/events.ts
@@ -1,6 +1,6 @@
1import Config from '@ioc:Adonis/Core/Config'; 1import { Config } from '@adonisjs/core/config'
2import Event from '@ioc:Adonis/Core/Event'; 2import emitter from '@adonisjs/core/services/emitter'
3import Mail from '@ioc:Adonis/Addons/Mail'; 3import mail from '@adonisjs/mail/services/main'
4 4
5/* 5/*
6|-------------------------------------------------------------------------- 6|--------------------------------------------------------------------------
@@ -11,11 +11,11 @@ import Mail from '@ioc:Adonis/Addons/Mail';
11| boot. 11| boot.
12| 12|
13*/ 13*/
14Event.on('forgot::password', async ({ user, token }) => { 14emitter.on('forgot::password', async ({ user, token }) => {
15 try { 15 try {
16 // eslint-disable-next-line no-console 16 // eslint-disable-next-line no-console
17 console.log('Sending message'); 17 console.log('Sending message')
18 await Mail.send(message => { 18 await mail.send((message) => {
19 message 19 message
20 .subject('[Ferdium] Forgot Password') 20 .subject('[Ferdium] Forgot Password')
21 .to(user.email) 21 .to(user.email)
@@ -24,10 +24,10 @@ Event.on('forgot::password', async ({ user, token }) => {
24 appUrl: Config.get('app.url'), 24 appUrl: Config.get('app.url'),
25 username: user.username, 25 username: user.username,
26 token, 26 token,
27 }); 27 })
28 }); 28 })
29 } catch (error) { 29 } catch (error) {
30 // eslint-disable-next-line no-console 30 // eslint-disable-next-line no-console
31 console.log(`Couldn't send mail: ${error}`); 31 console.log(`Couldn't send mail: ${error}`)
32 } 32 }
33}); 33})
diff --git a/start/kernel.ts b/start/kernel.ts
index 1c5c92b..99a0820 100644
--- a/start/kernel.ts
+++ b/start/kernel.ts
@@ -9,7 +9,7 @@
9| 9|
10*/ 10*/
11 11
12import Server from '@ioc:Adonis/Core/Server'; 12import { server } from '@adonisjs/core/services/server'
13 13
14/* 14/*
15|-------------------------------------------------------------------------- 15|--------------------------------------------------------------------------
@@ -20,10 +20,10 @@ import Server from '@ioc:Adonis/Core/Server';
20| are defined for every HTTP requests. 20| are defined for every HTTP requests.
21| 21|
22*/ 22*/
23Server.middleware.register([ 23server.middleware.register([
24 () => import('@ioc:Adonis/Core/BodyParser'), 24 () => import('@ioc:Adonis/Core/BodyParser'),
25 () => import('@ioc:Adonis/Addons/Shield'), 25 () => import('@ioc:Adonis/Addons/Shield'),
26]); 26])
27 27
28/* 28/*
29|-------------------------------------------------------------------------- 29|--------------------------------------------------------------------------
@@ -41,9 +41,9 @@ Server.middleware.register([
41| Route.get('dashboard', 'UserController.dashboard').middleware('auth') 41| Route.get('dashboard', 'UserController.dashboard').middleware('auth')
42| 42|
43*/ 43*/
44Server.middleware.registerNamed({ 44server.middleware.registerNamed({
45 auth: () => import('App/Middleware/Auth'), 45 auth: () => import('App/Middleware/Auth'),
46 dashboard: () => import('App/Middleware/Dashboard'), 46 dashboard: () => import('App/Middleware/Dashboard'),
47 guest: () => import('App/Middleware/AllowGuestOnly'), 47 guest: () => import('App/Middleware/AllowGuestOnly'),
48 shield: () => import('@ioc:Adonis/Addons/Shield'), 48 shield: () => import('@ioc:Adonis/Addons/Shield'),
49}); 49})
diff --git a/start/routes.ts b/start/routes.ts
index 75cef72..7c62909 100644
--- a/start/routes.ts
+++ b/start/routes.ts
@@ -18,5 +18,5 @@
18| 18|
19*/ 19*/
20 20
21import './routes/api'; 21import './routes/api.js'
22import './routes/web'; 22import './routes/web.js'
diff --git a/start/routes/api.ts b/start/routes/api.ts
index 78282f0..8992154 100644
--- a/start/routes/api.ts
+++ b/start/routes/api.ts
@@ -1,51 +1,47 @@
1// As this is currently a rebuild of the initial API we it is grouped in /v2/ 1// As this is currently a rebuild of the initial API we it is grouped in /v2/
2 2
3import Route from '@ioc:Adonis/Core/Route'; 3import router from '@adonisjs/core/services/router'
4const UserController = () => import('#controllers/Http/UserController')
5const ServiceController = () => import('#controllers/Http/ServiceController')
6const RecipeController = () => import('#controllers/Http/RecipeController')
4 7
5Route.group(() => { 8router
6 // User authentification 9 .group(() => {
7 Route.post('auth/signup', 'UserController.signup').middleware('guest'); 10 // User authentification
8 Route.post('auth/login', 'UserController.login').middleware('guest'); 11 router.post('auth/signup', [UserController, 'signup']).middleware('guest')
12 router.post('auth/login', [UserController, 'login']).middleware('guest')
9 13
10 // User info 14 // User info
11 Route.get('me', 'UserController.me').middleware('auth:jwt'); 15 router.get('me', [UserController, 'me']).middleware('auth:jwt')
12 Route.put('me', 'UserController.updateMe').middleware('auth:jwt'); 16 router.put('me', [UserController, 'updateMe']).middleware('auth:jwt')
13 Route.get('me/newtoken', 'UserController.newToken').middleware('auth:jwt'); 17 router.get('me/newtoken', [UserController, 'newToken']).middleware('auth:jwt')
14 18
15 // // Service info 19 // // Service info
16 Route.post('service', 'ServiceController.create').middleware('auth:jwt'); 20 router.post('service', [ServiceController, 'create']).middleware('auth:jwt')
17 Route.put('service/reorder', 'ServiceController.reorder').middleware( 21 router.put('service/reorder', [ServiceController, 'reorder']).middleware('auth:jwt')
18 'auth:jwt', 22 router.put('service/:id', [ServiceController, 'edit']).middleware('auth:jwt')
19 ); 23 router.delete('service/:id', [ServiceController, 'delete']).middleware('auth:jwt')
20 Route.put('service/:id', 'ServiceController.edit').middleware('auth:jwt'); 24 router.get('me/services', [ServiceController, 'list']).middleware('auth:jwt')
21 Route.delete('service/:id', 'ServiceController.delete').middleware( 25 router.get('recipe', [ServiceController, 'list']).middleware('auth:jwt')
22 'auth:jwt', 26 router.get('icon/:id', [ServiceController, 'icon'])
23 );
24 Route.get('me/services', 'ServiceController.list').middleware('auth:jwt');
25 Route.get('recipe', 'ServiceController.list').middleware('auth:jwt');
26 Route.get('icon/:id', 'ServiceController.icon');
27 27
28 // Recipe store 28 // Recipe store
29 Route.get('recipes', 'RecipeController.list'); 29 router.get('recipes', [RecipeController, 'list'])
30 Route.get('recipes/search', 'RecipeController.search'); 30 router.get('recipes/search', [RecipeController, 'search'])
31 Route.get('recipes/popular', 'RecipeController.popularRecipes'); 31 router.get('recipes/popular', [RecipeController, 'popularRecipes'])
32 Route.get('recipes/download/:recipe', 'RecipeController.download'); 32 router.get('recipes/download/:recipe', [RecipeController, 'download'])
33 Route.post('recipes/update', 'RecipeController.update'); 33 router.post('recipes/update', [RecipeController, 'update'])
34 34
35 // // Workspaces 35 // // Workspaces
36 Route.put('workspace/:id', 'WorkspaceController.edit').middleware('auth:jwt'); 36 router.put('workspace/:id', 'WorkspaceController.edit').middleware('auth:jwt')
37 Route.delete('workspace/:id', 'WorkspaceController.delete').middleware( 37 router.delete('workspace/:id', 'WorkspaceController.delete').middleware('auth:jwt')
38 'auth:jwt', 38 router.post('workspace', 'WorkspaceController.create').middleware('auth:jwt')
39 ); 39 router.get('workspace', 'WorkspaceController.list').middleware('auth:jwt')
40 Route.post('workspace', 'WorkspaceController.create').middleware('auth:jwt');
41 Route.get('workspace', 'WorkspaceController.list').middleware('auth:jwt');
42 40
43 // Static responses 41 // Static responses
44 Route.get('features/:mode?', 'Api/Static/FeaturesController.show'); 42 router.get('features/:mode?', 'Api/Static/FeaturesController.show')
45 Route.get('services', 'Api/Static/EmptyController.show'); 43 router.get('services', 'Api/Static/EmptyController.show')
46 Route.get('news', 'Api/Static/EmptyController.show'); 44 router.get('news', 'Api/Static/EmptyController.show')
47 Route.get( 45 router.get('announcements/:version', 'Api/Static/AnnouncementsController.show')
48 'announcements/:version', 46 })
49 'Api/Static/AnnouncementsController.show', 47 .prefix('/v1')
50 );
51}).prefix('/v1');
diff --git a/start/routes/web.ts b/start/routes/web.ts
index 308abec..fd12bf2 100644
--- a/start/routes/web.ts
+++ b/start/routes/web.ts
@@ -1,54 +1,62 @@
1import Route from '@ioc:Adonis/Core/Route'; 1import router from '@adonisjs/core/services/router'
2 2
3// Health check 3// Health check
4Route.get('health', 'HealthController.index'); 4router.get('health', 'HealthController.index')
5 5
6// Legal documents 6// Legal documents
7Route.get('terms', ({ response }) => response.redirect('/terms.html')); 7router.get('terms', ({ response }) => response.redirect('/terms.html'))
8Route.get('privacy', ({ response }) => response.redirect('/privacy.html')); 8router.get('privacy', ({ response }) => response.redirect('/privacy.html'))
9 9
10// Index 10// Index
11Route.get('/', ({ view }) => view.render('others/index')); 11router.get('/', ({ view }) => view.render('others/index'))
12 12
13Route.group(() => { 13router
14 Route.group(() => { 14 .group(() => {
15 // Guest troutes 15 router
16 Route.group(() => { 16 .group(() => {
17 Route.get('login', 'Dashboard/LoginController.show'); 17 // Guest troutes
18 Route.post('login', 'Dashboard/LoginController.login').as('login'); 18 router
19 19 .group(() => {
20 // Reset password 20 router.get('login', 'Dashboard/LoginController.show')
21 Route.get('forgot', 'Dashboard/ForgotPasswordController.show'); 21 router.post('login', 'Dashboard/LoginController.login').as('login')
22 Route.post('forgot', 'Dashboard/ForgotPasswordController.forgotPassword'); 22
23 23 // Reset password
24 Route.get('reset', 'Dashboard/ResetPasswordController.show'); 24 router.get('forgot', 'Dashboard/ForgotPasswordController.show')
25 Route.post('reset', 'Dashboard/ResetPasswordController.resetPassword'); 25 router.post('forgot', 'Dashboard/ForgotPasswordController.forgotPassword')
26 }).middleware(['dashboard', 'guest']); 26
27 27 router.get('reset', 'Dashboard/ResetPasswordController.show')
28 // Authenticated routes 28 router.post('reset', 'Dashboard/ResetPasswordController.resetPassword')
29 Route.group(() => { 29 })
30 Route.get('account', 'Dashboard/AccountController.show'); 30 .middleware(['dashboard', 'guest'])
31 Route.post('account', 'Dashboard/AccountController.store'); 31
32 32 // Authenticated routes
33 Route.get('data', 'Dashboard/DataController.show'); 33 router
34 Route.get('export', 'Dashboard/ExportController.show'); 34 .group(() => {
35 35 router.get('account', 'Dashboard/AccountController.show')
36 Route.get('transfer', 'Dashboard/TransferController.show'); 36 router.post('account', 'Dashboard/AccountController.store')
37 Route.post('transfer', 'Dashboard/TransferController.import'); 37
38 38 router.get('data', 'Dashboard/DataController.show')
39 Route.get('delete', 'Dashboard/DeleteController.show'); 39 router.get('export', 'Dashboard/ExportController.show')
40 Route.post('delete', 'Dashboard/DeleteController.delete'); 40
41 41 router.get('transfer', 'Dashboard/TransferController.show')
42 Route.get('logout', 'Dashboard/LogOutController.logout'); 42 router.post('transfer', 'Dashboard/TransferController.import')
43 43
44 Route.get('*', ({ response }) => response.redirect('/user/account')); 44 router.get('delete', 'Dashboard/DeleteController.show')
45 }).middleware(['dashboard', 'auth:web']); 45 router.post('delete', 'Dashboard/DeleteController.delete')
46 }).prefix('user'); 46
47 47 router.get('logout', 'Dashboard/LogOutController.logout')
48 // Franz/Ferdi account import 48
49 Route.get('import', ({ view }) => view.render('others/import')); 49 router.get('*', ({ response }) => response.redirect('/user/account'))
50 Route.post('import', 'UserController.import'); 50 })
51 51 .middleware(['dashboard', 'auth:web'])
52 // 404 handler 52 })
53 Route.get('/*', ({ response }) => response.redirect('/')); 53 .prefix('user')
54}).middleware(['dashboard']); 54
55 // Franz/Ferdi account import
56 router.get('import', ({ view }) => view.render('others/import'))
57 router.post('import', 'UserController.import')
58
59 // 404 handler
60 router.get('/*', ({ response }) => response.redirect('/'))
61 })
62 .middleware(['dashboard'])
diff --git a/test.ts b/test.ts
deleted file mode 100644
index 65f1348..0000000
--- a/test.ts
+++ /dev/null
@@ -1,49 +0,0 @@
1/*
2|--------------------------------------------------------------------------
3| Tests
4|--------------------------------------------------------------------------
5|
6| The contents in this file boots the AdonisJS application and configures
7| the Japa tests runner.
8|
9| For the most part you will never edit this file. The configuration
10| for the tests can be controlled via ".adonisrc.json" and
11| "tests/bootstrap.ts" files.
12|
13*/
14
15import 'reflect-metadata';
16import sourceMapSupport from 'source-map-support';
17import { Ignitor } from '@adonisjs/core/build/standalone';
18import {
19 configure,
20 processCliArgs,
21 run,
22 RunnerHooksHandler,
23} from '@japa/runner';
24
25process.env.NODE_ENV = 'test';
26
27sourceMapSupport.install({ handleUncaughtExceptions: false });
28
29const kernel = new Ignitor(__dirname).kernel('test');
30
31kernel
32 .boot()
33 .then(() => import('./tests/bootstrap'))
34 .then(({ runnerHooks, ...config }) => {
35 const app: RunnerHooksHandler[] = [() => kernel.start()];
36
37 configure({
38 ...kernel.application.rcFile.tests,
39 ...processCliArgs(process.argv.slice(2)),
40 ...config,
41
42 importer: filePath => import(filePath),
43 setup: [...app, ...runnerHooks.setup],
44 teardown: runnerHooks.teardown,
45 cwd: kernel.application.appRoot,
46 });
47
48 run();
49 });
diff --git a/tests/bootstrap.ts b/tests/bootstrap.ts
index efd1d1f..1c6bea1 100644
--- a/tests/bootstrap.ts
+++ b/tests/bootstrap.ts
@@ -5,15 +5,10 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import type { Config } from '@japa/runner'; 8import type { Config } from '@japa/runner'
9import TestUtils from '@ioc:Adonis/Core/TestUtils'; 9import TestUtils from '@ioc:Adonis/Core/TestUtils'
10import { 10import { assert, runFailedTests, specReporter, apiClient } from '@japa/preset-adonis'
11 assert, 11import { fakeCsrfField } from './utils.js'
12 runFailedTests,
13 specReporter,
14 apiClient,
15} from '@japa/preset-adonis';
16import { fakeCsrfField } from './utils';
17 12
18/* 13/*
19|-------------------------------------------------------------------------- 14|--------------------------------------------------------------------------
@@ -26,11 +21,7 @@ import { fakeCsrfField } from './utils';
26| Feel free to remove existing plugins or add more. 21| Feel free to remove existing plugins or add more.
27| 22|
28*/ 23*/
29export const plugins: Config['plugins'] = [ 24export const plugins: Config['plugins'] = [assert(), runFailedTests(), apiClient()]
30 assert(),
31 runFailedTests(),
32 apiClient(),
33];
34 25
35/* 26/*
36|-------------------------------------------------------------------------- 27|--------------------------------------------------------------------------
@@ -42,7 +33,7 @@ export const plugins: Config['plugins'] = [
42| of tests on the terminal. 33| of tests on the terminal.
43| 34|
44*/ 35*/
45export const reporters: Config['reporters'] = [specReporter()]; 36export const reporters: Config['reporters'] = [specReporter()]
46 37
47/* 38/*
48|-------------------------------------------------------------------------- 39|--------------------------------------------------------------------------
@@ -63,7 +54,7 @@ export const runnerHooks: Required<Pick<Config, 'setup' | 'teardown'>> = {
63 () => fakeCsrfField(), 54 () => fakeCsrfField(),
64 ], 55 ],
65 teardown: [], 56 teardown: [],
66}; 57}
67 58
68/* 59/*
69|-------------------------------------------------------------------------- 60|--------------------------------------------------------------------------
@@ -76,8 +67,8 @@ export const runnerHooks: Required<Pick<Config, 'setup' | 'teardown'>> = {
76| You can use this method to configure suites. For example: Only start 67| You can use this method to configure suites. For example: Only start
77| the HTTP server when it is a functional suite. 68| the HTTP server when it is a functional suite.
78*/ 69*/
79export const configureSuite: Config['configureSuite'] = suite => { 70export const configureSuite: Config['configureSuite'] = (suite) => {
80 if (suite.name === 'functional') { 71 if (suite.name === 'functional') {
81 suite.setup(() => TestUtils.httpServer().start()); 72 suite.setup(() => TestUtils.httpServer().start())
82 } 73 }
83}; 74}
diff --git a/tests/config.ts b/tests/config.ts
index 8cd3511..f40284e 100644
--- a/tests/config.ts
+++ b/tests/config.ts
@@ -1 +1 @@
export const apiVersion = 'v1'; export const apiVersion = 'v1'
diff --git a/tests/functional/api/static/announcements.spec.ts b/tests/functional/api/static/announcements.spec.ts
index ac933fe..45881ec 100644
--- a/tests/functional/api/static/announcements.spec.ts
+++ b/tests/functional/api/static/announcements.spec.ts
@@ -1,22 +1,20 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import { apiVersion } from '../../../config'; 2import { apiVersion } from '../../../config.js'
3 3
4test.group('API / Static / News', () => { 4test.group('API / Static / News', () => {
5 test('returns a 404 response when the requested versions does not exist', async ({ 5 test('returns a 404 response when the requested versions does not exist', async ({ client }) => {
6 client, 6 const response = await client.get(`/${apiVersion}/announcements/illegal`)
7 }) => {
8 const response = await client.get(`/${apiVersion}/announcements/illegal`);
9 7
10 response.assertStatus(404); 8 response.assertStatus(404)
11 response.assertTextIncludes('No announcement found.'); 9 response.assertTextIncludes('No announcement found.')
12 }); 10 })
13 11
14 test('returns a 200 response with default version file when specifying version as input', async ({ 12 test('returns a 200 response with default version file when specifying version as input', async ({
15 client, 13 client,
16 }) => { 14 }) => {
17 const response = await client.get(`/${apiVersion}/announcements/version`); 15 const response = await client.get(`/${apiVersion}/announcements/version`)
18 16
19 response.assertStatus(200); 17 response.assertStatus(200)
20 response.assertBody({ 18 response.assertBody({
21 main: { 19 main: {
22 headline: 'Example Announcement', 20 headline: 'Example Announcement',
@@ -50,6 +48,6 @@ test.group('API / Static / News', () => {
50 }, 48 },
51 }, 49 },
52 }, 50 },
53 }); 51 })
54 }); 52 })
55}); 53})
diff --git a/tests/functional/api/static/features.spec.ts b/tests/functional/api/static/features.spec.ts
index 1050fcf..c31e25f 100644
--- a/tests/functional/api/static/features.spec.ts
+++ b/tests/functional/api/static/features.spec.ts
@@ -1,5 +1,5 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import { apiVersion } from '../../../config'; 2import { apiVersion } from '../../../config.js'
3 3
4const defaultResponse = { 4const defaultResponse = {
5 isServiceProxyEnabled: true, 5 isServiceProxyEnabled: true,
@@ -8,22 +8,22 @@ const defaultResponse = {
8 isSettingsWSEnabled: false, 8 isSettingsWSEnabled: false,
9 isMagicBarEnabled: true, 9 isMagicBarEnabled: true,
10 isTodosEnabled: true, 10 isTodosEnabled: true,
11}; 11}
12 12
13test.group('API / Static / Features', () => { 13test.group('API / Static / Features', () => {
14 test('returns a 200 response with empty array', async ({ client }) => { 14 test('returns a 200 response with empty array', async ({ client }) => {
15 const response = await client.get(`/${apiVersion}/features`); 15 const response = await client.get(`/${apiVersion}/features`)
16 16
17 response.assertStatus(200); 17 response.assertStatus(200)
18 response.assertBody(defaultResponse); 18 response.assertBody(defaultResponse)
19 }); 19 })
20 20
21 test('returns a 200 response with expected object when calling with :mode', async ({ 21 test('returns a 200 response with expected object when calling with :mode', async ({
22 client, 22 client,
23 }) => { 23 }) => {
24 const response = await client.get(`/${apiVersion}/features/random`); 24 const response = await client.get(`/${apiVersion}/features/random`)
25 25
26 response.assertStatus(200); 26 response.assertStatus(200)
27 response.assertBody(defaultResponse); 27 response.assertBody(defaultResponse)
28 }); 28 })
29}); 29})
diff --git a/tests/functional/api/static/news.spec.ts b/tests/functional/api/static/news.spec.ts
index 8f3818f..71b5797 100644
--- a/tests/functional/api/static/news.spec.ts
+++ b/tests/functional/api/static/news.spec.ts
@@ -1,11 +1,11 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import { apiVersion } from '../../../config'; 2import { apiVersion } from '../../../config.js'
3 3
4test.group('API / Static / News', () => { 4test.group('API / Static / News', () => {
5 test('returns a 200 response with empty array', async ({ client }) => { 5 test('returns a 200 response with empty array', async ({ client }) => {
6 const response = await client.get(`/${apiVersion}/news`); 6 const response = await client.get(`/${apiVersion}/news`)
7 7
8 response.assertStatus(200); 8 response.assertStatus(200)
9 response.assertBody([]); 9 response.assertBody([])
10 }); 10 })
11}); 11})
diff --git a/tests/functional/api/static/services.spec.ts b/tests/functional/api/static/services.spec.ts
index 55eef37..595b8dc 100644
--- a/tests/functional/api/static/services.spec.ts
+++ b/tests/functional/api/static/services.spec.ts
@@ -1,11 +1,11 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import { apiVersion } from '../../../config'; 2import { apiVersion } from '../../../config.js'
3 3
4test.group('API / Static / Services', () => { 4test.group('API / Static / Services', () => {
5 test('returns a 200 response with empty array', async ({ client }) => { 5 test('returns a 200 response with empty array', async ({ client }) => {
6 const response = await client.get(`/${apiVersion}/services`); 6 const response = await client.get(`/${apiVersion}/services`)
7 7
8 response.assertStatus(200); 8 response.assertStatus(200)
9 response.assertBody([]); 9 response.assertBody([])
10 }); 10 })
11}); 11})
diff --git a/tests/functional/dashboard/account.spec.ts b/tests/functional/dashboard/account.spec.ts
index bee9d6a..25de22c 100644
--- a/tests/functional/dashboard/account.spec.ts
+++ b/tests/functional/dashboard/account.spec.ts
@@ -1,124 +1,109 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import User from 'App/Models/User'; 2import User from '#app/Models/User'
3import UserFactory from 'Database/factories/UserFactory'; 3import UserFactory from '#database/factories/UserFactory'
4 4
5test.group('Dashboard / Account page', () => { 5test.group('Dashboard / Account page', () => {
6 test('redirects to /user/login when accessing /user/account as guest', async ({ 6 test('redirects to /user/login when accessing /user/account as guest', async ({ client }) => {
7 client, 7 const response = await client.get('/user/account')
8 }) => {
9 const response = await client.get('/user/account');
10 8
11 response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL 9 response.assertRedirectsTo('/user/login') // Check if it redirects to the expected URL
12 }); 10 })
13 11
14 test('returns a 200 opening the account route while logged in', async ({ 12 test('returns a 200 opening the account route while logged in', async ({ client }) => {
15 client, 13 const user = await UserFactory.create()
16 }) => { 14 const response = await client.get('/user/account').loginAs(user)
17 const user = await UserFactory.create();
18 const response = await client.get('/user/account').loginAs(user);
19 15
20 response.assertStatus(200); 16 response.assertStatus(200)
21 response.assertTextIncludes('Your Ferdium account'); 17 response.assertTextIncludes('Your Ferdium account')
22 18
23 response.assertTextIncludes(user.email); 19 response.assertTextIncludes(user.email)
24 response.assertTextIncludes(user.username); 20 response.assertTextIncludes(user.username)
25 response.assertTextIncludes(user.lastname); 21 response.assertTextIncludes(user.lastname)
26 }); 22 })
27 23
28 test('returns a validation error for all fields when missing', async ({ 24 test('returns a validation error for all fields when missing', async ({ client }) => {
29 client, 25 const user = await UserFactory.create()
30 }) => { 26 const response = await client.post('/user/account').loginAs(user)
31 const user = await UserFactory.create();
32 const response = await client.post('/user/account').loginAs(user);
33 27
34 response.assertTextIncludes( 28 response.assertTextIncludes(
35 'value="required validation failed,required validation failed" placeholder="E-Mail"', 29 'value="required validation failed,required validation failed" placeholder="E-Mail"'
36 ); 30 )
37 response.assertTextIncludes( 31 response.assertTextIncludes(
38 'value="required validation failed,required validation failed" placeholder="Name"', 32 'value="required validation failed,required validation failed" placeholder="Name"'
39 ); 33 )
40 response.assertTextIncludes( 34 response.assertTextIncludes(
41 'value="required validation failed,required validation failed" placeholder="Last Name"', 35 'value="required validation failed,required validation failed" placeholder="Last Name"'
42 ); 36 )
43 }); 37 })
44 38
45 test('returns a validation error for username when there is another user with same username', async ({ 39 test('returns a validation error for username when there is another user with same username', async ({
46 client, 40 client,
47 }) => { 41 }) => {
48 const user = await UserFactory.create(); 42 const user = await UserFactory.create()
49 const existingUser = await UserFactory.create(); 43 const existingUser = await UserFactory.create()
50 44
51 const response = await client.post('/user/account').loginAs(user).form({ 45 const response = await client.post('/user/account').loginAs(user).form({
52 username: existingUser.username, 46 username: existingUser.username,
53 email: user.email, 47 email: user.email,
54 lastname: user.lastname, 48 lastname: user.lastname,
55 }); 49 })
56 50
57 response.assertTextIncludes( 51 response.assertTextIncludes('value="unique validation failure" placeholder="Name"')
58 'value="unique validation failure" placeholder="Name"', 52 })
59 );
60 });
61 53
62 test('returns a validation error for email when there is another user with same email', async ({ 54 test('returns a validation error for email when there is another user with same email', async ({
63 client, 55 client,
64 }) => { 56 }) => {
65 const user = await UserFactory.create(); 57 const user = await UserFactory.create()
66 const existingUser = await UserFactory.create(); 58 const existingUser = await UserFactory.create()
67 59
68 const response = await client.post('/user/account').loginAs(user).form({ 60 const response = await client.post('/user/account').loginAs(user).form({
69 username: user.username, 61 username: user.username,
70 email: existingUser.email, 62 email: existingUser.email,
71 lastname: user.lastname, 63 lastname: user.lastname,
72 }); 64 })
73 65
74 response.assertTextIncludes( 66 response.assertTextIncludes('value="unique validation failure" placeholder="E-Mail"')
75 'value="unique validation failure" placeholder="E-Mail"', 67 })
76 );
77 });
78 68
79 test('updates user data and ensures the data is persisted', async ({ 69 test('updates user data and ensures the data is persisted', async ({ client, assert }) => {
80 client, 70 const user = await UserFactory.create()
81 assert,
82 }) => {
83 const user = await UserFactory.create();
84 const response = await client.post('/user/account').loginAs(user).form({ 71 const response = await client.post('/user/account').loginAs(user).form({
85 username: 'edited-username', 72 username: 'edited-username',
86 email: 'edited-email', 73 email: 'edited-email',
87 lastname: 'edited-lastname', 74 lastname: 'edited-lastname',
88 }); 75 })
89 76
90 response.assertStatus(200); 77 response.assertStatus(200)
91 78
92 // Ensure updated data is displayed on account page 79 // Ensure updated data is displayed on account page
93 response.assertTextIncludes('edited-username'); 80 response.assertTextIncludes('edited-username')
94 response.assertTextIncludes('edited-email'); 81 response.assertTextIncludes('edited-email')
95 response.assertTextIncludes('edited-lastname'); 82 response.assertTextIncludes('edited-lastname')
96 83
97 // Ensure updated data is persisted in database 84 // Ensure updated data is persisted in database
98 const updatedUser = await User.findBy('id', user.id); 85 const updatedUser = await User.findBy('id', user.id)
99 assert.equal(updatedUser?.username, 'edited-username'); 86 assert.equal(updatedUser?.username, 'edited-username')
100 assert.equal(updatedUser?.email, 'edited-email'); 87 assert.equal(updatedUser?.email, 'edited-email')
101 assert.equal(updatedUser?.lastname, 'edited-lastname'); 88 assert.equal(updatedUser?.lastname, 'edited-lastname')
102 }); 89 })
103 90
104 test('updates user password and ensures the user can still login', async ({ 91 test('updates user password and ensures the user can still login', async ({ client }) => {
105 client, 92 const user = await UserFactory.create()
106 }) => {
107 const user = await UserFactory.create();
108 const response = await client.post('/user/account').loginAs(user).form({ 93 const response = await client.post('/user/account').loginAs(user).form({
109 username: user.username, 94 username: user.username,
110 email: user.email, 95 email: user.email,
111 lastname: user.lastname, 96 lastname: user.lastname,
112 password: 'modified-password-account-page', 97 password: 'modified-password-account-page',
113 }); 98 })
114 99
115 response.assertStatus(200); 100 response.assertStatus(200)
116 101
117 const loginResponse = await client.post('/user/login').fields({ 102 const loginResponse = await client.post('/user/login').fields({
118 mail: user.email, 103 mail: user.email,
119 password: 'modified-password-account-page', 104 password: 'modified-password-account-page',
120 }); 105 })
121 106
122 loginResponse.assertRedirectsTo('/user/account'); 107 loginResponse.assertRedirectsTo('/user/account')
123 }); 108 })
124}); 109})
diff --git a/tests/functional/dashboard/data.spec.ts b/tests/functional/dashboard/data.spec.ts
index 1a0e7ad..150229a 100644
--- a/tests/functional/dashboard/data.spec.ts
+++ b/tests/functional/dashboard/data.spec.ts
@@ -1,31 +1,25 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import UserFactory from 'Database/factories/UserFactory'; 2import UserFactory from '#database/factories/UserFactory'
3 3
4test.group('Dashboard / Data page', () => { 4test.group('Dashboard / Data page', () => {
5 test('redirects to /user/login when accessing /user/data as guest', async ({ 5 test('redirects to /user/login when accessing /user/data as guest', async ({ client }) => {
6 client, 6 const response = await client.get('/user/data')
7 }) => {
8 const response = await client.get('/user/data');
9 7
10 response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL 8 response.assertRedirectsTo('/user/login') // Check if it redirects to the expected URL
11 }); 9 })
12 10
13 test('ensure the correct data is shown on the page', async ({ client }) => { 11 test('ensure the correct data is shown on the page', async ({ client }) => {
14 const user = await UserFactory.create(); 12 const user = await UserFactory.create()
15 const response = await client.get('/user/data').loginAs(user); 13 const response = await client.get('/user/data').loginAs(user)
16 14
17 response.assertStatus(200); 15 response.assertStatus(200)
18 response.assertTextIncludes(user.email); 16 response.assertTextIncludes(user.email)
19 response.assertTextIncludes(user.username); 17 response.assertTextIncludes(user.username)
20 response.assertTextIncludes(user.lastname); 18 response.assertTextIncludes(user.lastname)
21 response.assertTextIncludes( 19 response.assertTextIncludes(user.created_at.toFormat('yyyy-MM-dd HH:mm:ss'))
22 user.created_at.toFormat('yyyy-MM-dd HH:mm:ss'), 20 response.assertTextIncludes(user.updated_at.toFormat('yyyy-MM-dd HH:mm:ss'))
23 ); 21 })
24 response.assertTextIncludes(
25 user.updated_at.toFormat('yyyy-MM-dd HH:mm:ss'),
26 );
27 });
28 22
29 // TODO: Add test to include services. 23 // TODO: Add test to include services.
30 // TODO: Add test to include workspaces. 24 // TODO: Add test to include workspaces.
31}); 25})
diff --git a/tests/functional/dashboard/delete.spec.ts b/tests/functional/dashboard/delete.spec.ts
index ae3f0e6..9bb9f6a 100644
--- a/tests/functional/dashboard/delete.spec.ts
+++ b/tests/functional/dashboard/delete.spec.ts
@@ -1,37 +1,30 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import User from 'App/Models/User'; 2import User from '#app/Models/User'
3import UserFactory from 'Database/factories/UserFactory'; 3import UserFactory from '#database/factories/UserFactory'
4 4
5test.group('Dashboard / Delete account page', () => { 5test.group('Dashboard / Delete account page', () => {
6 test('redirects to /user/login when accessing /user/delete as guest', async ({ 6 test('redirects to /user/login when accessing /user/delete as guest', async ({ client }) => {
7 client, 7 const response = await client.get('/user/delete')
8 }) => {
9 const response = await client.get('/user/delete');
10 8
11 response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL 9 response.assertRedirectsTo('/user/login') // Check if it redirects to the expected URL
12 }); 10 })
13 11
14 test('returns a 200 opening the delete route while logged in', async ({ 12 test('returns a 200 opening the delete route while logged in', async ({ client }) => {
15 client, 13 const user = await UserFactory.create()
16 }) => { 14 const response = await client.get('/user/delete').loginAs(user)
17 const user = await UserFactory.create();
18 const response = await client.get('/user/delete').loginAs(user);
19 15
20 response.assertStatus(200); 16 response.assertStatus(200)
21 response.assertTextIncludes('Delete your account'); 17 response.assertTextIncludes('Delete your account')
22 }); 18 })
23 19
24 test('returns a 200 opening the delete route while logged in', async ({ 20 test('returns a 200 opening the delete route while logged in', async ({ client, assert }) => {
25 client, 21 const user = await UserFactory.create()
26 assert, 22 const response = await client.post('/user/delete').loginAs(user)
27 }) => {
28 const user = await UserFactory.create();
29 const response = await client.post('/user/delete').loginAs(user);
30 23
31 response.assertRedirectsTo('/user/login'); 24 response.assertRedirectsTo('/user/login')
32 // This asserts the session is deleted as well 25 // This asserts the session is deleted as well
33 response.assertSessionMissing('auth_web'); 26 response.assertSessionMissing('auth_web')
34 27
35 assert.isNull(await User.find(user.id)); 28 assert.isNull(await User.find(user.id))
36 }); 29 })
37}); 30})
diff --git a/tests/functional/dashboard/disabled-dashboard.spec.ts b/tests/functional/dashboard/disabled-dashboard.spec.ts
index cc9052c..fd9600f 100644
--- a/tests/functional/dashboard/disabled-dashboard.spec.ts
+++ b/tests/functional/dashboard/disabled-dashboard.spec.ts
@@ -1,71 +1,63 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import Config from '@ioc:Adonis/Core/Config'; 2import Config from '@ioc:Adonis/Core/Config'
3 3
4const disabledDashboardMessage = 4const disabledDashboardMessage =
5 'The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.'; 5 'The user dashboard is disabled on this server\n\nIf you are the server owner, please set IS_DASHBOARD_ENABLED to true to enable the dashboard.'
6 6
7test.group('Dashboard / Disabled dashboard', group => { 7test.group('Dashboard / Disabled dashboard', (group) => {
8 group.setup(() => { 8 group.setup(() => {
9 Config.set('dashboard.enabled', false); 9 Config.set('dashboard.enabled', false)
10 }); 10 })
11 11
12 group.teardown(() => { 12 group.teardown(() => {
13 Config.set('dashboard.enabled', true); 13 Config.set('dashboard.enabled', true)
14 }); 14 })
15 15
16 test('Login page returns disabled dashboard message', async ({ client }) => { 16 test('Login page returns disabled dashboard message', async ({ client }) => {
17 const response = await client.get('/user/login'); 17 const response = await client.get('/user/login')
18 18
19 response.assertTextIncludes(disabledDashboardMessage); 19 response.assertTextIncludes(disabledDashboardMessage)
20 }); 20 })
21 21
22 test('Forgot password page returns disabled dashboard message', async ({ 22 test('Forgot password page returns disabled dashboard message', async ({ client }) => {
23 client, 23 const response = await client.get('/user/forgot')
24 }) => {
25 const response = await client.get('/user/forgot');
26 24
27 response.assertTextIncludes(disabledDashboardMessage); 25 response.assertTextIncludes(disabledDashboardMessage)
28 }); 26 })
29 27
30 test('Reset password page returns disabled dashboard message', async ({ 28 test('Reset password page returns disabled dashboard message', async ({ client }) => {
31 client, 29 const response = await client.get('/user/reset')
32 }) => {
33 const response = await client.get('/user/reset');
34 30
35 response.assertTextIncludes(disabledDashboardMessage); 31 response.assertTextIncludes(disabledDashboardMessage)
36 }); 32 })
37 33
38 test('Account page returns disabled dashboard message', async ({ 34 test('Account page returns disabled dashboard message', async ({ client }) => {
39 client, 35 const response = await client.get('/user/account')
40 }) => {
41 const response = await client.get('/user/account');
42 36
43 response.assertTextIncludes(disabledDashboardMessage); 37 response.assertTextIncludes(disabledDashboardMessage)
44 }); 38 })
45 39
46 test('Data page returns disabled dashboard message', async ({ client }) => { 40 test('Data page returns disabled dashboard message', async ({ client }) => {
47 const response = await client.get('/user/data'); 41 const response = await client.get('/user/data')
48 42
49 response.assertTextIncludes(disabledDashboardMessage); 43 response.assertTextIncludes(disabledDashboardMessage)
50 }); 44 })
51 45
52 test('Export page returns disabled dashboard message', async ({ client }) => { 46 test('Export page returns disabled dashboard message', async ({ client }) => {
53 const response = await client.get('/user/export'); 47 const response = await client.get('/user/export')
54 48
55 response.assertTextIncludes(disabledDashboardMessage); 49 response.assertTextIncludes(disabledDashboardMessage)
56 }); 50 })
57 51
58 test('Transfer page returns disabled dashboard message', async ({ 52 test('Transfer page returns disabled dashboard message', async ({ client }) => {
59 client, 53 const response = await client.get('/user/transfer')
60 }) => {
61 const response = await client.get('/user/transfer');
62 54
63 response.assertTextIncludes(disabledDashboardMessage); 55 response.assertTextIncludes(disabledDashboardMessage)
64 }); 56 })
65 57
66 test('Logout page returns disabled dashboard message', async ({ client }) => { 58 test('Logout page returns disabled dashboard message', async ({ client }) => {
67 const response = await client.get('/user/logout'); 59 const response = await client.get('/user/logout')
68 60
69 response.assertTextIncludes(disabledDashboardMessage); 61 response.assertTextIncludes(disabledDashboardMessage)
70 }); 62 })
71}); 63})
diff --git a/tests/functional/dashboard/export.spec.ts b/tests/functional/dashboard/export.spec.ts
index 4250622..f85673e 100644
--- a/tests/functional/dashboard/export.spec.ts
+++ b/tests/functional/dashboard/export.spec.ts
@@ -1,61 +1,50 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import UserFactory from 'Database/factories/UserFactory'; 2import UserFactory from '#database/factories/UserFactory'
3 3
4test.group('Dashboard / Export page', () => { 4test.group('Dashboard / Export page', () => {
5 test('redirects to /user/login when accessing /user/transfer as guest', async ({ 5 test('redirects to /user/login when accessing /user/transfer as guest', async ({ client }) => {
6 client, 6 const response = await client.get('/user/transfer')
7 }) => {
8 const response = await client.get('/user/transfer');
9 7
10 response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL 8 response.assertRedirectsTo('/user/login') // Check if it redirects to the expected URL
11 }); 9 })
12 10
13 test('returns a correct export with user data', async ({ 11 test('returns a correct export with user data', async ({ assert, client }) => {
14 assert, 12 const user = await UserFactory.create()
15 client, 13 const response = await client.get('/user/export').loginAs(user)
16 }) => {
17 const user = await UserFactory.create();
18 const response = await client.get('/user/export').loginAs(user);
19 14
20 response.assertStatus(200); 15 response.assertStatus(200)
21 const exportData = JSON.parse(response.text()); 16 const exportData = JSON.parse(response.text())
22 17
23 assert.equal(exportData.username, user.username); 18 assert.equal(exportData.username, user.username)
24 assert.equal(exportData.lastname, user.lastname); 19 assert.equal(exportData.lastname, user.lastname)
25 assert.equal(exportData.mail, user.email); 20 assert.equal(exportData.mail, user.email)
26 }); 21 })
27 22
28 // TODO: We can improve this test by hard checking the export data 23 // TODO: We can improve this test by hard checking the export data
29 test('returns a correct export with service data', async ({ 24 test('returns a correct export with service data', async ({ assert, client }) => {
30 assert, 25 const user = await UserFactory.with('services', 5).create()
31 client, 26 const response = await client.get('/user/export').loginAs(user)
32 }) => { 27
33 const user = await UserFactory.with('services', 5).create(); 28 response.assertStatus(200)
34 const response = await client.get('/user/export').loginAs(user); 29 const exportData = JSON.parse(response.text())
35 30
36 response.assertStatus(200); 31 assert.equal(exportData.username, user.username)
37 const exportData = JSON.parse(response.text()); 32 assert.equal(exportData.lastname, user.lastname)
38 33 assert.equal(exportData.mail, user.email)
39 assert.equal(exportData.username, user.username); 34 assert.equal(exportData.services.length, user.services.length)
40 assert.equal(exportData.lastname, user.lastname); 35 })
41 assert.equal(exportData.mail, user.email);
42 assert.equal(exportData.services.length, user.services.length);
43 });
44 36
45 // TODO: We can improve this test by hard checking the export data 37 // TODO: We can improve this test by hard checking the export data
46 test('returns a correct export with workspace data', async ({ 38 test('returns a correct export with workspace data', async ({ assert, client }) => {
47 assert, 39 const user = await UserFactory.with('workspaces', 5).create()
48 client, 40 const response = await client.get('/user/export').loginAs(user)
49 }) => { 41
50 const user = await UserFactory.with('workspaces', 5).create(); 42 response.assertStatus(200)
51 const response = await client.get('/user/export').loginAs(user); 43 const exportData = JSON.parse(response.text())
52 44
53 response.assertStatus(200); 45 assert.equal(exportData.username, user.username)
54 const exportData = JSON.parse(response.text()); 46 assert.equal(exportData.lastname, user.lastname)
55 47 assert.equal(exportData.mail, user.email)
56 assert.equal(exportData.username, user.username); 48 assert.equal(exportData.workspaces.length, user.workspaces.length)
57 assert.equal(exportData.lastname, user.lastname); 49 })
58 assert.equal(exportData.mail, user.email); 50})
59 assert.equal(exportData.workspaces.length, user.workspaces.length);
60 });
61});
diff --git a/tests/functional/dashboard/forgot-password.spec.ts b/tests/functional/dashboard/forgot-password.spec.ts
index 9dcec5a..7c356c8 100644
--- a/tests/functional/dashboard/forgot-password.spec.ts
+++ b/tests/functional/dashboard/forgot-password.spec.ts
@@ -1,70 +1,66 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import Event from '@ioc:Adonis/Core/Event'; 2import emitter from '@adonisjs/core/services/emitter'
3import UserFactory from 'Database/factories/UserFactory'; 3import UserFactory from '#database/factories/UserFactory'
4 4
5test.group('Dashboard / Forgot password page', () => { 5test.group('Dashboard / Forgot password page', () => {
6 test('returns a 200 opening the forgot password route', async ({ 6 test('returns a 200 opening the forgot password route', async ({ client }) => {
7 client, 7 const response = await client.get('/user/forgot')
8 }) => {
9 const response = await client.get('/user/forgot');
10 8
11 response.assertStatus(200); 9 response.assertStatus(200)
12 response.assertTextIncludes('Forgot Password?'); 10 response.assertTextIncludes('Forgot Password?')
13 }); 11 })
14 12
15 test('returns `Please enter a valid email address` when providing invalid email', async ({ 13 test('returns `Please enter a valid email address` when providing invalid email', async ({
16 client, 14 client,
17 }) => { 15 }) => {
18 const response = await client.post('/user/forgot').fields({ 16 const response = await client.post('/user/forgot').fields({
19 mail: 'invalid', 17 mail: 'invalid',
20 }); 18 })
21 19
22 response.assertStatus(200); 20 response.assertStatus(200)
23 response.assertTextIncludes('Please enter a valid email address'); 21 response.assertTextIncludes('Please enter a valid email address')
24 }); 22 })
25 23
26 test('returns `email send when exists` without forgot:password event', async ({ 24 test('returns `email send when exists` without forgot:password event', async ({
27 client, 25 client,
28 assert, 26 assert,
29 }) => { 27 }) => {
30 const emitter = Event.fake(); 28 const emitterService = emitter.fake()
31 29
32 const response = await client.post('/user/forgot').fields({ 30 const response = await client.post('/user/forgot').fields({
33 mail: 'test@ferdium.org', 31 mail: 'test@ferdium.org',
34 }); 32 })
35 33
36 response.assertStatus(200); 34 response.assertStatus(200)
37 response.assertTextIncludes( 35 response.assertTextIncludes(
38 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.', 36 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.'
39 ); 37 )
40 38
41 assert.isFalse(emitter.exists('forgot:password')); 39 assert.isFalse(emitterService.exists('forgot:password'))
42 }); 40 })
43 41
44 test('returns `email send when exists` and trigger forgot:password event', async ({ 42 test('returns `email send when exists` and trigger forgot:password event', async ({
45 client, 43 client,
46 assert, 44 assert,
47 }) => { 45 }) => {
48 const emitter = Event.fake(); 46 const emitterService = emitter.fake()
49 const user = await UserFactory.merge({ 47 const user = await UserFactory.merge({
50 email: 'test+forgot_password@ferdium.org', 48 email: 'test+forgot_password@ferdium.org',
51 }).create(); 49 }).create()
52 50
53 const response = await client.post('/user/forgot').fields({ 51 const response = await client.post('/user/forgot').fields({
54 mail: 'test+forgot_password@ferdium.org', 52 mail: 'test+forgot_password@ferdium.org',
55 }); 53 })
56 54
57 response.assertStatus(200); 55 response.assertStatus(200)
58 response.assertTextIncludes( 56 response.assertTextIncludes(
59 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.', 57 'If your provided E-Mail address is linked to an account, we have just sent an E-Mail to that address.'
60 ); 58 )
61 59
62 assert.isTrue( 60 assert.isTrue(
63 emitter.exists( 61 emitterService.exists(
64 event => 62 (event) => event.name === 'forgot:password' && event.data.user.email === user.email
65 event.name === 'forgot:password' && 63 )
66 event.data.user.email === user.email, 64 )
67 ), 65 })
68 ); 66})
69 });
70});
diff --git a/tests/functional/dashboard/import-stubs/services-workspaces.json b/tests/functional/dashboard/import-stubs/services-workspaces.json
index 139b32c..d1ad0dd 100644
--- a/tests/functional/dashboard/import-stubs/services-workspaces.json
+++ b/tests/functional/dashboard/import-stubs/services-workspaces.json
@@ -44,10 +44,7 @@
44 { 44 {
45 "name": "workspace2", 45 "name": "workspace2",
46 "order": 0, 46 "order": 0,
47 "services": [ 47 "services": ["d6901fff-ec44-4251-93de-d7103ed9c44b", "79769de5-a998-4af1-b7d0-89956a15b0ed"],
48 "d6901fff-ec44-4251-93de-d7103ed9c44b",
49 "79769de5-a998-4af1-b7d0-89956a15b0ed"
50 ],
51 "data": "{\"name\":\"workspace2\"}" 48 "data": "{\"name\":\"workspace2\"}"
52 }, 49 },
53 { 50 {
diff --git a/tests/functional/dashboard/login.spec.ts b/tests/functional/dashboard/login.spec.ts
index adae66a..cf482cd 100644
--- a/tests/functional/dashboard/login.spec.ts
+++ b/tests/functional/dashboard/login.spec.ts
@@ -1,65 +1,57 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import UserFactory from 'Database/factories/UserFactory'; 2import UserFactory from '#database/factories/UserFactory'
3 3
4test.group('Dashboard / Login page', () => { 4test.group('Dashboard / Login page', () => {
5 test('returns a 200 opening the login route', async ({ client }) => { 5 test('returns a 200 opening the login route', async ({ client }) => {
6 const response = await client.get('/user/login'); 6 const response = await client.get('/user/login')
7 7
8 response.assertStatus(200); 8 response.assertStatus(200)
9 }); 9 })
10 10
11 test('returns `invalid mail or password` when validation fails', async ({ 11 test('returns `invalid mail or password` when validation fails', async ({ client }) => {
12 client,
13 }) => {
14 const response = await client.post('/user/login').fields({ 12 const response = await client.post('/user/login').fields({
15 mail: 'invalid', 13 mail: 'invalid',
16 password: 'invalid', 14 password: 'invalid',
17 }); 15 })
18 16
19 response.assertRedirectsTo('/user/login'); 17 response.assertRedirectsTo('/user/login')
20 response.assertTextIncludes('Invalid mail or password'); 18 response.assertTextIncludes('Invalid mail or password')
21 }); 19 })
22 20
23 test('returns `invalid mail or password` when account is not found', async ({ 21 test('returns `invalid mail or password` when account is not found', async ({ client }) => {
24 client,
25 }) => {
26 const response = await client.post('/user/login').fields({ 22 const response = await client.post('/user/login').fields({
27 mail: 'test+notexistingpassword@ferdium.org', 23 mail: 'test+notexistingpassword@ferdium.org',
28 password: 'notexistingpassword', 24 password: 'notexistingpassword',
29 }); 25 })
30 26
31 response.assertRedirectsTo('/user/login'); 27 response.assertRedirectsTo('/user/login')
32 response.assertTextIncludes('Invalid mail or password'); 28 response.assertTextIncludes('Invalid mail or password')
33 }); 29 })
34 30
35 test('returns `invalid mail or password` when password is not valid', async ({ 31 test('returns `invalid mail or password` when password is not valid', async ({ client }) => {
36 client,
37 }) => {
38 await UserFactory.merge({ 32 await UserFactory.merge({
39 email: 'test@ferdium.org', 33 email: 'test@ferdium.org',
40 }).create(); 34 }).create()
41 35
42 const response = await client.post('/user/login').fields({ 36 const response = await client.post('/user/login').fields({
43 mail: 'test+invalid_password@ferdium.org', 37 mail: 'test+invalid_password@ferdium.org',
44 password: 'invalid_password', 38 password: 'invalid_password',
45 }); 39 })
46 40
47 response.assertRedirectsTo('/user/login'); 41 response.assertRedirectsTo('/user/login')
48 response.assertTextIncludes('Invalid mail or password'); 42 response.assertTextIncludes('Invalid mail or password')
49 }); 43 })
50 44
51 test('redirects to account page when user is able to login', async ({ 45 test('redirects to account page when user is able to login', async ({ client }) => {
52 client,
53 }) => {
54 await UserFactory.merge({ 46 await UserFactory.merge({
55 email: 'test+password@ferdium.org', 47 email: 'test+password@ferdium.org',
56 }).create(); 48 }).create()
57 49
58 const response = await client.post('/user/login').fields({ 50 const response = await client.post('/user/login').fields({
59 mail: 'test+password@ferdium.org', 51 mail: 'test+password@ferdium.org',
60 password: 'password', 52 password: 'password',
61 }); 53 })
62 54
63 response.assertRedirectsTo('/user/account'); 55 response.assertRedirectsTo('/user/account')
64 }); 56 })
65}); 57})
diff --git a/tests/functional/dashboard/logout.spec.ts b/tests/functional/dashboard/logout.spec.ts
index a45ee72..ad117da 100644
--- a/tests/functional/dashboard/logout.spec.ts
+++ b/tests/functional/dashboard/logout.spec.ts
@@ -1,21 +1,19 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import UserFactory from 'Database/factories/UserFactory'; 2import UserFactory from '#database/factories/UserFactory'
3 3
4test.group('Dashboard / Log out page', () => { 4test.group('Dashboard / Log out page', () => {
5 test('redirects to /user/login when accessing /user/logout as guest', async ({ 5 test('redirects to /user/login when accessing /user/logout as guest', async ({ client }) => {
6 client, 6 const response = await client.get('/user/logout')
7 }) => {
8 const response = await client.get('/user/logout');
9 7
10 response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL 8 response.assertRedirectsTo('/user/login') // Check if it redirects to the expected URL
11 }); 9 })
12 10
13 test('logs the user out when opening the page', async ({ client }) => { 11 test('logs the user out when opening the page', async ({ client }) => {
14 const user = await UserFactory.create(); 12 const user = await UserFactory.create()
15 const response = await client.get('/user/logout').loginAs(user); 13 const response = await client.get('/user/logout').loginAs(user)
16 14
17 response.assertRedirectsTo('/user/login'); 15 response.assertRedirectsTo('/user/login')
18 // This asserts the session is deleted as well 16 // This asserts the session is deleted as well
19 response.assertSessionMissing('auth_web'); 17 response.assertSessionMissing('auth_web')
20 }); 18 })
21}); 19})
diff --git a/tests/functional/dashboard/reset-password.spec.ts b/tests/functional/dashboard/reset-password.spec.ts
index e488482..8883665 100644
--- a/tests/functional/dashboard/reset-password.spec.ts
+++ b/tests/functional/dashboard/reset-password.spec.ts
@@ -1,26 +1,22 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import Token from 'App/Models/Token'; 2import Token from '#app/Models/Token'
3import UserFactory from 'Database/factories/UserFactory'; 3import UserFactory from '#database/factories/UserFactory'
4import TokenFactory from 'Database/factories/TokenFactory'; 4import TokenFactory from '#database/factories/TokenFactory'
5 5
6test.group('Dashboard / Reset password page', () => { 6test.group('Dashboard / Reset password page', () => {
7 test('returns a `Invalid token` message when opening without a token', async ({ 7 test('returns a `Invalid token` message when opening without a token', async ({ client }) => {
8 client, 8 const response = await client.get('/user/reset')
9 }) => {
10 const response = await client.get('/user/reset');
11 9
12 response.assertStatus(200); 10 response.assertStatus(200)
13 response.assertTextIncludes('Invalid token'); 11 response.assertTextIncludes('Invalid token')
14 }); 12 })
15 13
16 test('displays the form when a token is provided', async ({ client }) => { 14 test('displays the form when a token is provided', async ({ client }) => {
17 const response = await client.get( 15 const response = await client.get('/user/reset?token=randomtokenbutitworks')
18 '/user/reset?token=randomtokenbutitworks',
19 );
20 16
21 response.assertStatus(200); 17 response.assertStatus(200)
22 response.assertTextIncludes('Reset Your Password'); 18 response.assertTextIncludes('Reset Your Password')
23 }); 19 })
24 20
25 test('returns `passwords do not match` message when passwords do not match', async ({ 21 test('returns `passwords do not match` message when passwords do not match', async ({
26 client, 22 client,
@@ -29,22 +25,20 @@ test.group('Dashboard / Reset password page', () => {
29 token: 'randomnotworkingtoken', 25 token: 'randomnotworkingtoken',
30 password: 'password', 26 password: 'password',
31 password_confirmation: 'not_matching', 27 password_confirmation: 'not_matching',
32 }); 28 })
33 29
34 response.assertTextIncludes('Passwords do not match'); 30 response.assertTextIncludes('Passwords do not match')
35 }); 31 })
36 32
37 test('returns `Cannot reset your password` when token does not exist', async ({ 33 test('returns `Cannot reset your password` when token does not exist', async ({ client }) => {
38 client,
39 }) => {
40 const response = await client.post('/user/reset').fields({ 34 const response = await client.post('/user/reset').fields({
41 token: 'randomnotworkingtoken', 35 token: 'randomnotworkingtoken',
42 password: 'password', 36 password: 'password',
43 password_confirmation: 'password', 37 password_confirmation: 'password',
44 }); 38 })
45 39
46 response.assertTextIncludes('Cannot reset your password'); 40 response.assertTextIncludes('Cannot reset your password')
47 }); 41 })
48 42
49 test('returns `Cannot reset your password` when token is older than 24 hours', async ({ 43 test('returns `Cannot reset your password` when token is older than 24 hours', async ({
50 client, 44 client,
@@ -54,41 +48,39 @@ test.group('Dashboard / Reset password page', () => {
54 user_id: (await UserFactory.create()).id, 48 user_id: (await UserFactory.create()).id,
55 }) 49 })
56 .apply('old_token') 50 .apply('old_token')
57 .create(); 51 .create()
58 52
59 const response = await client.post('/user/reset').fields({ 53 const response = await client.post('/user/reset').fields({
60 token: token.token, 54 token: token.token,
61 password: 'password', 55 password: 'password',
62 password_confirmation: 'password', 56 password_confirmation: 'password',
63 }); 57 })
64 58
65 response.assertTextIncludes('Cannot reset your password'); 59 response.assertTextIncludes('Cannot reset your password')
66 }); 60 })
67 61
68 test('returns `Cannot reset your password` when token is revoked', async ({ 62 test('returns `Cannot reset your password` when token is revoked', async ({ client }) => {
69 client,
70 }) => {
71 const token = await TokenFactory.merge({ 63 const token = await TokenFactory.merge({
72 // eslint-disable-next-line unicorn/no-await-expression-member 64 // eslint-disable-next-line unicorn/no-await-expression-member
73 user_id: (await UserFactory.create()).id, 65 user_id: (await UserFactory.create()).id,
74 }) 66 })
75 .apply('revoked') 67 .apply('revoked')
76 .create(); 68 .create()
77 69
78 const response = await client.post('/user/reset').fields({ 70 const response = await client.post('/user/reset').fields({
79 token: token.token, 71 token: token.token,
80 password: 'password', 72 password: 'password',
81 password_confirmation: 'password', 73 password_confirmation: 'password',
82 }); 74 })
83 75
84 response.assertTextIncludes('Cannot reset your password'); 76 response.assertTextIncludes('Cannot reset your password')
85 }); 77 })
86 78
87 test('correctly resets password and deletes token and able to login with new password', async ({ 79 test('correctly resets password and deletes token and able to login with new password', async ({
88 client, 80 client,
89 assert, 81 assert,
90 }) => { 82 }) => {
91 const userEmail = 'working-reset-password-login@ferdium.org'; 83 const userEmail = 'working-reset-password-login@ferdium.org'
92 const token = await TokenFactory.merge({ 84 const token = await TokenFactory.merge({
93 user_id: 85 user_id:
94 ( 86 (
@@ -98,25 +90,25 @@ test.group('Dashboard / Reset password page', () => {
98 // prettier-ignore 90 // prettier-ignore
99 // eslint-disable-next-line unicorn/no-await-expression-member 91 // eslint-disable-next-line unicorn/no-await-expression-member
100 ).id, 92 ).id,
101 }).create(); 93 }).create()
102 94
103 const response = await client.post('/user/reset').fields({ 95 const response = await client.post('/user/reset').fields({
104 token: token.token, 96 token: token.token,
105 password: 'new_password', 97 password: 'new_password',
106 password_confirmation: 'new_password', 98 password_confirmation: 'new_password',
107 }); 99 })
108 100
109 // Assert response is as expected 101 // Assert response is as expected
110 response.assertTextIncludes('Successfully reset your password'); 102 response.assertTextIncludes('Successfully reset your password')
111 103
112 // Token should be deleted from database 104 // Token should be deleted from database
113 assert.isNull(await Token.query().where('token', token.token).first()); 105 assert.isNull(await Token.query().where('token', token.token).first())
114 106
115 const loginResponse = await client.post('/user/login').fields({ 107 const loginResponse = await client.post('/user/login').fields({
116 mail: userEmail, 108 mail: userEmail,
117 password: 'new_password', 109 password: 'new_password',
118 }); 110 })
119 111
120 loginResponse.assertRedirectsTo('/user/account'); 112 loginResponse.assertRedirectsTo('/user/account')
121 }); 113 })
122}); 114})
diff --git a/tests/functional/dashboard/transfer.spec.ts b/tests/functional/dashboard/transfer.spec.ts
index e40fca2..41a6709 100644
--- a/tests/functional/dashboard/transfer.spec.ts
+++ b/tests/functional/dashboard/transfer.spec.ts
@@ -1,80 +1,59 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2import { readFileSync } from 'node:fs'; 2import { readFileSync } from 'node:fs'
3import UserFactory from 'Database/factories/UserFactory'; 3import UserFactory from '#database/factories/UserFactory'
4 4
5test.group('Dashboard / Transfer page', () => { 5test.group('Dashboard / Transfer page', () => {
6 test('redirects to /user/login when accessing /user/transfer as guest', async ({ 6 test('redirects to /user/login when accessing /user/transfer as guest', async ({ client }) => {
7 client, 7 const response = await client.get('/user/transfer')
8 }) => {
9 const response = await client.get('/user/transfer');
10 8
11 response.assertRedirectsTo('/user/login'); // Check if it redirects to the expected URL 9 response.assertRedirectsTo('/user/login') // Check if it redirects to the expected URL
12 }); 10 })
13 11
14 test('returns a 200 opening the transfer route while being logged in', async ({ 12 test('returns a 200 opening the transfer route while being logged in', async ({ client }) => {
15 client, 13 const user = await UserFactory.create()
16 }) => { 14 const response = await client.get('/user/transfer').loginAs(user)
17 const user = await UserFactory.create();
18 const response = await client.get('/user/transfer').loginAs(user);
19 15
20 response.assertStatus(200); 16 response.assertStatus(200)
21 }); 17 })
22 18
23 test('returns a validation error when not uploading a file', async ({ 19 test('returns a validation error when not uploading a file', async ({ client }) => {
24 client, 20 const user = await UserFactory.create()
25 }) => { 21 const response = await client.post('/user/transfer').loginAs(user)
26 const user = await UserFactory.create();
27 const response = await client.post('/user/transfer').loginAs(user);
28 22
29 response.assertTextIncludes('Invalid Ferdium account file'); 23 response.assertTextIncludes('Invalid Ferdium account file')
30 }); 24 })
31 25
32 test('returns a validation error when trying to use anything but json', async ({ 26 test('returns a validation error when trying to use anything but json', async ({ client }) => {
33 client, 27 const user = await UserFactory.create()
34 }) => {
35 const user = await UserFactory.create();
36 const response = await client 28 const response = await client
37 .post('/user/transfer') 29 .post('/user/transfer')
38 .loginAs(user) 30 .loginAs(user)
39 .field( 31 .field('file', readFileSync('tests/functional/dashboard/import-stubs/random-file.txt'))
40 'file',
41 readFileSync('tests/functional/dashboard/import-stubs/random-file.txt'),
42 );
43 32
44 response.assertTextIncludes('Invalid Ferdium account file'); 33 response.assertTextIncludes('Invalid Ferdium account file')
45 }); 34 })
46 35
47 test('returns a validation error when trying to use anything valid json', async ({ 36 test('returns a validation error when trying to use anything valid json', async ({ client }) => {
48 client, 37 const user = await UserFactory.create()
49 }) => {
50 const user = await UserFactory.create();
51 const response = await client 38 const response = await client
52 .post('/user/transfer') 39 .post('/user/transfer')
53 .loginAs(user) 40 .loginAs(user)
54 .field( 41 .field('file', readFileSync('tests/functional/dashboard/import-stubs/invalid.json'))
55 'file',
56 readFileSync('tests/functional/dashboard/import-stubs/invalid.json'),
57 );
58 42
59 response.assertTextIncludes('Invalid Ferdium account file'); 43 response.assertTextIncludes('Invalid Ferdium account file')
60 }); 44 })
61 45
62 test('returns a validation error when trying to use a json file with no ferdium structure', async ({ 46 test('returns a validation error when trying to use a json file with no ferdium structure', async ({
63 client, 47 client,
64 }) => { 48 }) => {
65 const user = await UserFactory.create(); 49 const user = await UserFactory.create()
66 const response = await client 50 const response = await client
67 .post('/user/transfer') 51 .post('/user/transfer')
68 .loginAs(user) 52 .loginAs(user)
69 .field( 53 .field('file', readFileSync('tests/functional/dashboard/import-stubs/valid-no-data.json'))
70 'file',
71 readFileSync(
72 'tests/functional/dashboard/import-stubs/valid-no-data.json',
73 ),
74 );
75 54
76 response.assertTextIncludes('Invalid Ferdium account file'); 55 response.assertTextIncludes('Invalid Ferdium account file')
77 }); 56 })
78 57
79 test('correctly transfers data from json/ferdi-data and ferdium-data file with only workspaces', async ({ 58 test('correctly transfers data from json/ferdi-data and ferdium-data file with only workspaces', async ({
80 client, 59 client,
@@ -85,76 +64,62 @@ test.group('Dashboard / Transfer page', () => {
85 'workspaces-only.json', 64 'workspaces-only.json',
86 'workspaces-only.ferdi-data', 65 'workspaces-only.ferdi-data',
87 'workspaces-only.ferdium-data', 66 'workspaces-only.ferdium-data',
88 ]; 67 ]
89 68
90 for (const file of files) { 69 for (const file of files) {
91 // eslint-disable-next-line no-await-in-loop 70 // eslint-disable-next-line no-await-in-loop
92 const user = await UserFactory.create(); 71 const user = await UserFactory.create()
93 // eslint-disable-next-line no-await-in-loop 72 // eslint-disable-next-line no-await-in-loop
94 const response = await client 73 const response = await client
95 .post('/user/transfer') 74 .post('/user/transfer')
96 .loginAs(user) 75 .loginAs(user)
97 .field( 76 .field('file', readFileSync(`tests/functional/dashboard/import-stubs/${file}`))
98 'file', 77
99 readFileSync(`tests/functional/dashboard/import-stubs/${file}`), 78 response.assertTextIncludes('Your account has been imported, you can now login as usual!')
100 );
101
102 response.assertTextIncludes(
103 'Your account has been imported, you can now login as usual!',
104 );
105 // eslint-disable-next-line no-await-in-loop 79 // eslint-disable-next-line no-await-in-loop
106 await user.refresh(); 80 await user.refresh()
107 81
108 // eslint-disable-next-line no-await-in-loop 82 // eslint-disable-next-line no-await-in-loop
109 const workspacesForUser = await user.related('workspaces').query(); 83 const workspacesForUser = await user.related('workspaces').query()
110 assert.equal(workspacesForUser.length, 3, file); 84 assert.equal(workspacesForUser.length, 3, file)
111 85
112 // ensure not JSON encoded twice 86 // ensure not JSON encoded twice
113 for (const workspace of workspacesForUser) { 87 for (const workspace of workspacesForUser) {
114 assert.isNull(workspace.data.match(/\\"/), file); 88 assert.isNull(workspace.data.match(/\\"/), file)
115 } 89 }
116 } 90 }
117 }); 91 })
118 92
119 test('correctly transfers data from json/ferdi-data and ferdium-data file with only services', async ({ 93 test('correctly transfers data from json/ferdi-data and ferdium-data file with only services', async ({
120 client, 94 client,
121 assert, 95 assert,
122 }) => { 96 }) => {
123 // Repeat for all 3 file extension 97 // Repeat for all 3 file extension
124 const files = [ 98 const files = ['services-only.json', 'services-only.ferdi-data', 'services-only.ferdium-data']
125 'services-only.json',
126 'services-only.ferdi-data',
127 'services-only.ferdium-data',
128 ];
129 99
130 for (const file of files) { 100 for (const file of files) {
131 // eslint-disable-next-line no-await-in-loop 101 // eslint-disable-next-line no-await-in-loop
132 const user = await UserFactory.create(); 102 const user = await UserFactory.create()
133 // eslint-disable-next-line no-await-in-loop 103 // eslint-disable-next-line no-await-in-loop
134 const response = await client 104 const response = await client
135 .post('/user/transfer') 105 .post('/user/transfer')
136 .loginAs(user) 106 .loginAs(user)
137 .field( 107 .field('file', readFileSync(`tests/functional/dashboard/import-stubs/${file}`))
138 'file', 108
139 readFileSync(`tests/functional/dashboard/import-stubs/${file}`), 109 response.assertTextIncludes('Your account has been imported, you can now login as usual!')
140 );
141
142 response.assertTextIncludes(
143 'Your account has been imported, you can now login as usual!',
144 );
145 // eslint-disable-next-line no-await-in-loop 110 // eslint-disable-next-line no-await-in-loop
146 await user.refresh(); 111 await user.refresh()
147 112
148 // eslint-disable-next-line no-await-in-loop 113 // eslint-disable-next-line no-await-in-loop
149 const servicesForUser = await user.related('services').query(); 114 const servicesForUser = await user.related('services').query()
150 assert.equal(servicesForUser.length, 3, file); 115 assert.equal(servicesForUser.length, 3, file)
151 116
152 // ensure not JSON encoded twice 117 // ensure not JSON encoded twice
153 for (const service of servicesForUser) { 118 for (const service of servicesForUser) {
154 assert.isNull(service.settings.match(/\\"/), file); 119 assert.isNull(service.settings.match(/\\"/), file)
155 } 120 }
156 } 121 }
157 }); 122 })
158 123
159 test('correctly transfers data from json/ferdi-data and ferdium-data file with workspaces and services', async ({ 124 test('correctly transfers data from json/ferdi-data and ferdium-data file with workspaces and services', async ({
160 client, 125 client,
@@ -165,72 +130,57 @@ test.group('Dashboard / Transfer page', () => {
165 'services-workspaces.json', 130 'services-workspaces.json',
166 'services-workspaces.ferdi-data', 131 'services-workspaces.ferdi-data',
167 'services-workspaces.ferdium-data', 132 'services-workspaces.ferdium-data',
168 ]; 133 ]
169 134
170 for (const file of files) { 135 for (const file of files) {
171 // eslint-disable-next-line no-await-in-loop 136 // eslint-disable-next-line no-await-in-loop
172 const user = await UserFactory.create(); 137 const user = await UserFactory.create()
173 // eslint-disable-next-line no-await-in-loop 138 // eslint-disable-next-line no-await-in-loop
174 const response = await client 139 const response = await client
175 .post('/user/transfer') 140 .post('/user/transfer')
176 .loginAs(user) 141 .loginAs(user)
177 .field( 142 .field('file', readFileSync(`tests/functional/dashboard/import-stubs/${file}`))
178 'file', 143
179 readFileSync(`tests/functional/dashboard/import-stubs/${file}`), 144 response.assertTextIncludes('Your account has been imported, you can now login as usual!')
180 );
181
182 response.assertTextIncludes(
183 'Your account has been imported, you can now login as usual!',
184 );
185 // eslint-disable-next-line no-await-in-loop 145 // eslint-disable-next-line no-await-in-loop
186 await user.refresh(); 146 await user.refresh()
187 147
188 // eslint-disable-next-line no-await-in-loop 148 // eslint-disable-next-line no-await-in-loop
189 const servicesForUser = await user.related('services').query(); 149 const servicesForUser = await user.related('services').query()
190 // eslint-disable-next-line no-await-in-loop 150 // eslint-disable-next-line no-await-in-loop
191 const workspacesForUser = await user.related('workspaces').query(); 151 const workspacesForUser = await user.related('workspaces').query()
192 assert.equal(servicesForUser.length, 3, file); 152 assert.equal(servicesForUser.length, 3, file)
193 assert.equal(workspacesForUser.length, 3, file); 153 assert.equal(workspacesForUser.length, 3, file)
194 154
195 const firstServiceUuid = servicesForUser.find( 155 const firstServiceUuid = servicesForUser.find((s) => s.name === 'random-service-1')?.serviceId
196 s => s.name === 'random-service-1',
197 )?.serviceId;
198 const secondServiceUuid = servicesForUser.find( 156 const secondServiceUuid = servicesForUser.find(
199 s => s.name === 'random-service-2', 157 (s) => s.name === 'random-service-2'
200 )?.serviceId; 158 )?.serviceId
201 const thirdServiceUUid = servicesForUser.find( 159 const thirdServiceUUid = servicesForUser.find((s) => s.name === 'random-service-3')?.serviceId
202 s => s.name === 'random-service-3',
203 )?.serviceId;
204 160
205 // Assert the first workspace to not have any services 161 // Assert the first workspace to not have any services
206 const firstWorkspace = workspacesForUser.find( 162 const firstWorkspace = workspacesForUser.find((w) => w.name === 'workspace1')
207 w => w.name === 'workspace1',
208 );
209 if (firstWorkspace?.services) { 163 if (firstWorkspace?.services) {
210 assert.empty(JSON.parse(firstWorkspace.services), file); 164 assert.empty(JSON.parse(firstWorkspace.services), file)
211 } 165 }
212 166
213 const secondWorkspace = workspacesForUser.find( 167 const secondWorkspace = workspacesForUser.find((w) => w.name === 'workspace2')
214 w => w.name === 'workspace2',
215 );
216 if (secondWorkspace?.services) { 168 if (secondWorkspace?.services) {
217 assert.deepEqual( 169 assert.deepEqual(
218 JSON.parse(secondWorkspace.services), 170 JSON.parse(secondWorkspace.services),
219 [firstServiceUuid, secondServiceUuid], 171 [firstServiceUuid, secondServiceUuid],
220 file, 172 file
221 ); 173 )
222 } 174 }
223 175
224 const thirdWorkspace = workspacesForUser.find( 176 const thirdWorkspace = workspacesForUser.find((w) => w.name === 'workspace3')
225 w => w.name === 'workspace3',
226 );
227 if (thirdWorkspace?.services) { 177 if (thirdWorkspace?.services) {
228 assert.deepEqual( 178 assert.deepEqual(
229 JSON.parse(thirdWorkspace.services), 179 JSON.parse(thirdWorkspace.services),
230 [firstServiceUuid, secondServiceUuid, thirdServiceUUid], 180 [firstServiceUuid, secondServiceUuid, thirdServiceUUid],
231 file, 181 file
232 ); 182 )
233 } 183 }
234 } 184 }
235 }); 185 })
236}); 186})
diff --git a/tests/functional/health.spec.ts b/tests/functional/health.spec.ts
index 2f7e074..50bf46c 100644
--- a/tests/functional/health.spec.ts
+++ b/tests/functional/health.spec.ts
@@ -1,13 +1,13 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2 2
3test.group('health page', () => { 3test.group('health page', () => {
4 test('returns a 200 response', async ({ client }) => { 4 test('returns a 200 response', async ({ client }) => {
5 const response = await client.get('/health'); 5 const response = await client.get('/health')
6 6
7 response.assertStatus(200); 7 response.assertStatus(200)
8 response.assertBodyContains({ 8 response.assertBodyContains({
9 api: 'success', 9 api: 'success',
10 db: 'success', 10 db: 'success',
11 }); 11 })
12 }); 12 })
13}); 13})
diff --git a/tests/functional/static-pages/home.spec.ts b/tests/functional/static-pages/home.spec.ts
index 5054e05..20d02db 100644
--- a/tests/functional/static-pages/home.spec.ts
+++ b/tests/functional/static-pages/home.spec.ts
@@ -1,10 +1,10 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2 2
3test.group('home page', () => { 3test.group('home page', () => {
4 test('returns a 200 response', async ({ client }) => { 4 test('returns a 200 response', async ({ client }) => {
5 const response = await client.get('/'); 5 const response = await client.get('/')
6 6
7 response.assertStatus(200); 7 response.assertStatus(200)
8 response.assertTextIncludes('Go to account dashboard'); 8 response.assertTextIncludes('Go to account dashboard')
9 }); 9 })
10}); 10})
diff --git a/tests/functional/static-pages/privacy.spec.ts b/tests/functional/static-pages/privacy.spec.ts
index f1d5bec..b79f580 100644
--- a/tests/functional/static-pages/privacy.spec.ts
+++ b/tests/functional/static-pages/privacy.spec.ts
@@ -1,10 +1,10 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2 2
3test.group('privacy page', () => { 3test.group('privacy page', () => {
4 test('returns a 200 response', async ({ client }) => { 4 test('returns a 200 response', async ({ client }) => {
5 const response = await client.get('/privacy'); 5 const response = await client.get('/privacy')
6 6
7 response.assertStatus(200); 7 response.assertStatus(200)
8 response.assertTextIncludes('PRIVACY POLICY'); 8 response.assertTextIncludes('PRIVACY POLICY')
9 }); 9 })
10}); 10})
diff --git a/tests/functional/static-pages/terms.spec.ts b/tests/functional/static-pages/terms.spec.ts
index de990e4..9c22257 100644
--- a/tests/functional/static-pages/terms.spec.ts
+++ b/tests/functional/static-pages/terms.spec.ts
@@ -1,10 +1,10 @@
1import { test } from '@japa/runner'; 1import { test } from '@japa/runner'
2 2
3test.group('terms page', () => { 3test.group('terms page', () => {
4 test('returns a 200 response', async ({ client }) => { 4 test('returns a 200 response', async ({ client }) => {
5 const response = await client.get('/terms'); 5 const response = await client.get('/terms')
6 6
7 response.assertStatus(200); 7 response.assertStatus(200)
8 response.assertTextIncludes('Terms of Service'); 8 response.assertTextIncludes('Terms of Service')
9 }); 9 })
10}); 10})
diff --git a/tests/utils.ts b/tests/utils.ts
index 14460b9..b60b867 100644
--- a/tests/utils.ts
+++ b/tests/utils.ts
@@ -1,6 +1,6 @@
1import View from '@ioc:Adonis/Core/View'; 1import edge from 'edge.js'
2 2
3export function fakeCsrfField(): void { 3export function fakeCsrfField(): void {
4 // Create fake csrField function in the view 4 // Create fake csrField function in the view
5 View.global('csrfField', () => ''); 5 edge.global('csrfField', () => '')
6} 6}
diff --git a/tsconfig.json b/tsconfig.json
index aee7acd..54d4a5e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,5 +1,5 @@
1{ 1{
2 "extends": "./node_modules/adonis-preset-ts/tsconfig.json", 2 "extends": "@adonisjs/tsconfig/tsconfig.app.json",
3 "include": ["**/*"], 3 "include": ["**/*"],
4 "exclude": ["node_modules", "build", "recipes"], 4 "exclude": ["node_modules", "build", "recipes"],
5 "compilerOptions": { 5 "compilerOptions": {
@@ -8,25 +8,21 @@
8 "strict": true, 8 "strict": true,
9 "incremental": true, 9 "incremental": true,
10 "paths": { 10 "paths": {
11 "App/*": ["./app/*"], 11 "#controllers/*": ["./app/controllers/*.js"],
12 "Config/*": ["./config/*"], 12 "#exceptions/*": ["./app/exceptions/*.js"],
13 "Contracts/*": ["./contracts/*"], 13 "#models/*": ["./app/models/*.js"],
14 "Database/*": ["./database/*"] 14 "#services/*": ["./app/services/*.js"],
15 "#listeners/*": ["./app/listeners/*.js"],
16 "#events/*": ["./app/events/*.js"],
17 "#middleware/*": ["./app/middleware/*.js"],
18 "#validators/*": ["./app/validators/*.js"],
19 "#start/*": ["./start/*.js"],
20 "#config/*": ["./config/*.js"],
21 "#app/*": ["./app/*.js"],
22 "#database/*": ["./database/*.js"],
23 "#types/*": ["./types/*.js"]
15 }, 24 },
16 "types": [ 25 "types": ["fs-extra", "adonis5-jwt"],
17 "@adonisjs/core",
18 "@adonisjs/repl",
19 "@japa/preset-adonis/build/adonis-typings",
20 "@adonisjs/view",
21 "@adonisjs/lucid",
22 "@adonisjs/auth",
23 "@adonisjs/shield",
24 "@adonisjs/session",
25 "@adonisjs/mail",
26 "fs-extra",
27 "adonis5-jwt"
28 ],
29 "sourceMap": true,
30 "noFallthroughCasesInSwitch": true, 26 "noFallthroughCasesInSwitch": true,
31 "resolveJsonModule": true, 27 "resolveJsonModule": true,
32 "forceConsistentCasingInFileNames": true, 28 "forceConsistentCasingInFileNames": true,
diff --git a/contracts/auth.ts b/types/auth.ts
index 1625116..9761ea5 100644
--- a/contracts/auth.ts
+++ b/types/auth.ts
@@ -5,8 +5,8 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import User from 'App/Models/User'; 8import User from '#app/Models/User'
9import { JWTGuardConfig, JWTGuardContract } from '@ioc:Adonis/Addons/Jwt'; 9import { JWTGuardConfig, JWTGuardContract } from '@ioc:Adonis/Addons/Jwt'
10 10
11declare module '@ioc:Adonis/Addons/Auth' { 11declare module '@ioc:Adonis/Addons/Auth' {
12 /* 12 /*
@@ -35,9 +35,9 @@ declare module '@ioc:Adonis/Addons/Auth' {
35 | 35 |
36 */ 36 */
37 user: { 37 user: {
38 implementation: LucidProviderContract<typeof User>; 38 implementation: LucidProviderContract<typeof User>
39 config: LucidProviderConfig<typeof User>; 39 config: LucidProviderConfig<typeof User>
40 }; 40 }
41 } 41 }
42 42
43 /* 43 /*
@@ -66,9 +66,9 @@ declare module '@ioc:Adonis/Addons/Auth' {
66 | 66 |
67 */ 67 */
68 web: { 68 web: {
69 implementation: SessionGuardContract<'user', 'web'>; 69 implementation: SessionGuardContract<'user', 'web'>
70 config: SessionGuardConfig<'user'>; 70 config: SessionGuardConfig<'user'>
71 }; 71 }
72 /* 72 /*
73 |-------------------------------------------------------------------------- 73 |--------------------------------------------------------------------------
74 | OAT Guard 74 | OAT Guard
@@ -79,9 +79,9 @@ declare module '@ioc:Adonis/Addons/Auth' {
79 | 79 |
80 */ 80 */
81 api: { 81 api: {
82 implementation: OATGuardContract<'user', 'api'>; 82 implementation: OATGuardContract<'user', 'api'>
83 config: OATGuardConfig<'user'>; 83 config: OATGuardConfig<'user'>
84 }; 84 }
85 /* 85 /*
86 |-------------------------------------------------------------------------- 86 |--------------------------------------------------------------------------
87 | Basic Auth Guard 87 | Basic Auth Guard
@@ -92,12 +92,12 @@ declare module '@ioc:Adonis/Addons/Auth' {
92 | 92 |
93 */ 93 */
94 basic: { 94 basic: {
95 implementation: BasicAuthGuardContract<'user', 'basic'>; 95 implementation: BasicAuthGuardContract<'user', 'basic'>
96 config: BasicAuthGuardConfig<'user'>; 96 config: BasicAuthGuardConfig<'user'>
97 }; 97 }
98 jwt: { 98 jwt: {
99 implementation: JWTGuardContract<'user', 'api'>; 99 implementation: JWTGuardContract<'user', 'api'>
100 config: JWTGuardConfig<'user'>; 100 config: JWTGuardConfig<'user'>
101 }; 101 }
102 } 102 }
103} 103}
diff --git a/contracts/drive.ts b/types/drive.ts
index 47b70f3..0ad668e 100644
--- a/contracts/drive.ts
+++ b/types/drive.ts
@@ -5,8 +5,8 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import { InferDisksFromConfig } from '@adonisjs/core/build/config'; 8import { InferDisksFromConfig } from '@adonisjs/core/build/config'
9import driveConfig from '../config/drive'; 9import driveConfig from '../config/drive.js'
10 10
11declare module '@ioc:Adonis/Core/Drive' { 11declare module '@ioc:Adonis/Core/Drive' {
12 interface DisksList extends InferDisksFromConfig<typeof driveConfig> {} 12 interface DisksList extends InferDisksFromConfig<typeof driveConfig> {}
diff --git a/contracts/events.ts b/types/events.ts
index 541bdc2..91be5b4 100644
--- a/contracts/events.ts
+++ b/types/events.ts
@@ -5,7 +5,7 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import User from 'App/Models/User'; 8import User from '#app/Models/User'
9 9
10declare module '@ioc:Adonis/Core/Event' { 10declare module '@ioc:Adonis/Core/Event' {
11 /* 11 /*
@@ -28,6 +28,6 @@ declare module '@ioc:Adonis/Core/Event' {
28 | 28 |
29 */ 29 */
30 interface EventsList { 30 interface EventsList {
31 'forgot:password': { user: User; token: string }; 31 'forgot:password': { user: User; token: string }
32 } 32 }
33} 33}
diff --git a/contracts/tests.ts b/types/tests.ts
index fec995d..9be30fc 100644
--- a/contracts/tests.ts
+++ b/types/tests.ts
@@ -5,7 +5,7 @@
5 * file. 5 * file.
6 */ 6 */
7 7
8import '@japa/runner'; 8import '@japa/runner'
9 9
10declare module '@japa/runner' { 10declare module '@japa/runner' {
11 interface TestContext { 11 interface TestContext {
diff --git a/vite.config.ts b/vite.config.ts
new file mode 100644
index 0000000..fb09564
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,19 @@
1import { defineConfig } from 'vite'
2import adonisjs from '@adonisjs/vite/client'
3
4export default defineConfig({
5 plugins: [
6 adonisjs({
7 /**
8 * Entrypoints of your application. Each entrypoint will
9 * result in a separate bundle.
10 */
11 entrypoints: ['resources/js/app.js'],
12
13 /**
14 * Paths to watch and reload the browser on file change
15 */
16 reload: ['resources/views/**/*.edge'],
17 }),
18 ],
19})
diff --git a/webpack.config.js b/webpack.config.js
deleted file mode 100644
index 9743941..0000000
--- a/webpack.config.js
+++ /dev/null
@@ -1,213 +0,0 @@
1const { join } = require('node:path');
2const Encore = require('@symfony/webpack-encore');
3
4/*
5|--------------------------------------------------------------------------
6| Encore runtime environment
7|--------------------------------------------------------------------------
8*/
9if (!Encore.isRuntimeEnvironmentConfigured()) {
10 Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
11}
12
13/*
14|--------------------------------------------------------------------------
15| Output path
16|--------------------------------------------------------------------------
17|
18| The output path for writing the compiled files. It should always
19| be inside the public directory, so that AdonisJS can serve it.
20|
21*/
22Encore.setOutputPath('./public/assets');
23
24/*
25|--------------------------------------------------------------------------
26| Public URI
27|--------------------------------------------------------------------------
28|
29| The public URI to access the static files. It should always be
30| relative from the "public" directory.
31|
32*/
33Encore.setPublicPath('/assets');
34
35/*
36|--------------------------------------------------------------------------
37| Entrypoints
38|--------------------------------------------------------------------------
39|
40| Entrypoints are script files that boots your frontend application. Ideally
41| a single entrypoint is used by majority of applications. However, feel
42| free to add more (if required).
43|
44| Also, make sure to read the docs on "Assets bundler" to learn more about
45| entrypoints.
46|
47*/
48Encore.addEntry('app', './resources/js/app.js');
49
50/*
51|--------------------------------------------------------------------------
52| Copy assets
53|--------------------------------------------------------------------------
54|
55| Since the edge templates are not part of the Webpack compile lifecycle, any
56| images referenced by it will not be processed by Webpack automatically. Hence
57| we must copy them manually.
58|
59*/
60// Encore.copyFiles({
61// from: './resources/images',
62// to: 'images/[path][name].[hash:8].[ext]',
63// })
64
65/*
66|--------------------------------------------------------------------------
67| Split shared code
68|--------------------------------------------------------------------------
69|
70| Instead of bundling duplicate code in all the bundles, generate a separate
71| bundle for the shared code.
72|
73| https://symfony.com/doc/current/frontend/encore/split-chunks.html
74| https://webpack.js.org/plugins/split-chunks-plugin/
75|
76*/
77// Encore.splitEntryChunks()
78
79/*
80|--------------------------------------------------------------------------
81| Isolated entrypoints
82|--------------------------------------------------------------------------
83|
84| Treat each entry point and its dependencies as its own isolated module.
85|
86*/
87Encore.disableSingleRuntimeChunk();
88
89/*
90|--------------------------------------------------------------------------
91| Cleanup output folder
92|--------------------------------------------------------------------------
93|
94| It is always nice to cleanup the build output before creating a build. It
95| will ensure that all unused files from the previous build are removed.
96|
97*/
98Encore.cleanupOutputBeforeBuild();
99/*
100|--------------------------------------------------------------------------
101| Source maps
102|--------------------------------------------------------------------------
103|
104| Enable source maps in production
105|
106*/
107Encore.enableSourceMaps(!Encore.isProduction());
108
109/*
110|--------------------------------------------------------------------------
111| Assets versioning
112|--------------------------------------------------------------------------
113|
114| Enable assets versioning to leverage lifetime browser and CDN cache
115|
116*/
117Encore.enableVersioning(Encore.isProduction());
118
119/*
120|--------------------------------------------------------------------------
121| Configure dev server
122|--------------------------------------------------------------------------
123|
124| Here we configure the dev server to enable live reloading for edge templates.
125| Remember edge templates are not processed by Webpack and hence we need
126| to watch them explicitly and livereload the browser.
127|
128*/
129Encore.configureDevServerOptions(options => {
130 /**
131 * Normalize "options.static" property to an array
132 */
133 if (!options.static) {
134 options.static = [];
135 } else if (!Array.isArray(options.static)) {
136 options.static = [options.static];
137 }
138
139 /**
140 * Enable live reload and add views directory
141 */
142 options.liveReload = true;
143 options.static.push({
144 directory: join(__dirname, './resources/views'),
145 watch: true,
146 });
147});
148
149/*
150|--------------------------------------------------------------------------
151| CSS precompilers support
152|--------------------------------------------------------------------------
153|
154| Uncomment one of the following lines of code to enable support for your
155| favorite CSS precompiler
156|
157*/
158// Encore.enableSassLoader()
159// Encore.enableLessLoader()
160// Encore.enableStylusLoader()
161
162/*
163|--------------------------------------------------------------------------
164| CSS loaders
165|--------------------------------------------------------------------------
166|
167| Uncomment one of the following line of code to enable support for
168| PostCSS or CSS.
169|
170*/
171// Encore.enablePostCssLoader()
172// Encore.configureCssLoader(() => {})
173
174/*
175|--------------------------------------------------------------------------
176| Enable Vue loader
177|--------------------------------------------------------------------------
178|
179| Uncomment the following lines of code to enable support for vue. Also make
180| sure to install the required dependencies.
181|
182*/
183// Encore.enableVueLoader(() => {}, {
184// version: 3,
185// runtimeCompilerBuild: false,
186// useJsx: false
187// })
188
189/*
190|--------------------------------------------------------------------------
191| Configure logging
192|--------------------------------------------------------------------------
193|
194| To keep the terminal clean from unnecessary info statements , we only
195| log warnings and errors. If you want all the logs, you can change
196| the level to "info".
197|
198*/
199const config = Encore.getWebpackConfig();
200config.infrastructureLogging = {
201 level: 'warn',
202};
203config.stats = 'errors-warnings';
204
205/*
206|--------------------------------------------------------------------------
207| Export config
208|--------------------------------------------------------------------------
209|
210| Export config for webpack to do its job
211|
212*/
213module.exports = config;