diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 3aafaa5..82499d5 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1 +1 @@
-FROM mcr.microsoft.com/devcontainers/javascript-node:18
+FROM mcr.microsoft.com/devcontainers/javascript-node:20
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index cb0c72e..395dc39 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -6,20 +6,19 @@
"customizations": {
"vscode": {
"settings": {
- "remote.autoForwardPorts": false
- },
- "extensions": [
- "editorconfig.editorconfig",
- "esbenp.prettier-vscode",
- "dbaeumer.vscode-eslint",
- "davidanson.vscode-markdownlint",
- "prisma.prisma",
- "mikestead.dotenv",
- "ms-azuretools.vscode-docker"
- ]
- }
+ "remote.autoForwardPorts": false,
+ "remote.localPortHost": "allInterfaces"
+ }
+ },
+ "extensions": [
+ "editorconfig.editorconfig",
+ "esbenp.prettier-vscode",
+ "dbaeumer.vscode-eslint",
+ "davidanson.vscode-markdownlint",
+ "prisma.prisma",
+ "mikestead.dotenv",
+ "ms-azuretools.vscode-docker"
+ ]
},
- "forwardPorts": [8080, 5555, 5432, 1080],
- "postAttachCommand": ["npm", "install"],
"remoteUser": "node"
}
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
index 52ab71e..a2773da 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/docker-compose.yml
@@ -1,5 +1,3 @@
-version: '3.0'
-
services:
workspace:
build:
@@ -8,18 +6,18 @@ services:
volumes:
- '..:/workspace:cached'
command: 'sleep infinity'
- extra_hosts:
- - 'host.docker.internal:host-gateway'
+ network_mode: 'host'
thream-database:
image: 'postgres:15.3'
environment:
- POSTGRES_USER: 'user'
+ POSTGRES_USER: 'thream_user'
POSTGRES_PASSWORD: 'password'
POSTGRES_DB: 'thream'
volumes:
- - 'postgres-data:/var/lib/postgresql/data'
+ - 'thream-postgres-data:/var/lib/postgresql/data'
restart: 'unless-stopped'
+ network_mode: 'host'
volumes:
- postgres-data:
+ thream-postgres-data:
diff --git a/.env.example b/.env.example
index 9822413..f07ad63 100644
--- a/.env.example
+++ b/.env.example
@@ -1,14 +1,22 @@
-API_URL=http://localhost:8080
+API_URL=http://127.0.0.1:8080
COMPOSE_PROJECT_NAME=thream-api
-DATABASE_URL=postgresql://user:password@thream-database:5432/thream
+
+DATABASE_USER=thream_user
+DATABASE_PASSWORD=password
+DATABASE_NAME=thream
+DATABASE_URL=postgresql://thream_user:password@127.0.0.1:5432/thream
+
+EMAIL_HOST=0.0.0.0
+EMAIL_PASSWORD=password
+EMAIL_PORT=1025
+EMAIL_USER=no-reply@thream.fr
+
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=
-EMAIL_HOST=thream-maildev
-EMAIL_PASSWORD=password
-EMAIL_PORT=25
-EMAIL_USER=no-reply@thream.fr
+
FILE_UPLOADS_API_KEY=apiKeySecret
-FILE_UPLOADS_API_URL=http://host.docker.internal:8000
+FILE_UPLOADS_API_URL=http://127.0.0.1:8000
+
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GOOGLE_CLIENT_ID=
diff --git a/.eslintrc.json b/.eslintrc.json
index 2180ba5..c922e6a 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,6 +1,7 @@
{
"extends": ["conventions", "prettier"],
"plugins": ["prettier", "import", "unicorn"],
+ "parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json"
},
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 80cb407..8f8651e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -15,7 +15,7 @@ jobs:
- name: 'Setup Node.js'
uses: 'actions/setup-node@v3.6.0'
with:
- node-version: '18.x'
+ node-version: '20.x'
cache: 'npm'
- name: 'Install dependencies'
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 7d10b16..1bcee53 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -15,7 +15,7 @@ jobs:
- name: 'Setup Node.js'
uses: 'actions/setup-node@v3.6.0'
with:
- node-version: '18.x'
+ node-version: '20.x'
cache: 'npm'
- name: 'Install dependencies'
@@ -36,10 +36,5 @@ jobs:
- name: 'lint:prettier'
run: 'npm run lint:prettier'
- - name: 'lint:dotenv'
- uses: 'dotenv-linter/action-dotenv-linter@v2'
- with:
- github_token: ${{ secrets.github_token }}
-
- name: 'prisma:validate'
run: 'cp .env.example .env && npm run prisma:validate'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b37b554..ed547cb 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -23,7 +23,7 @@ jobs:
- name: 'Setup Node.js'
uses: 'actions/setup-node@v3.6.0'
with:
- node-version: '18.x'
+ node-version: '20.x'
cache: 'npm'
- name: 'Install dependencies'
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 87d6224..8e22d44 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -15,7 +15,7 @@ jobs:
- name: 'Setup Node.js'
uses: 'actions/setup-node@v3.6.0'
with:
- node-version: '18.x'
+ node-version: '20.x'
cache: 'npm'
- name: 'Install dependencies'
diff --git a/.nycrc.json b/.nycrc.json
deleted file mode 100644
index 937a14e..0000000
--- a/.nycrc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "reporter": ["text", "cobertura"],
- "src": "./build",
- "all": true
-}
diff --git a/.taprc b/.taprc
deleted file mode 100644
index c9905aa..0000000
--- a/.taprc
+++ /dev/null
@@ -1,8 +0,0 @@
-ts: false
-jsx: false
-flow: false
-check-coverage: false
-coverage: false
-
-files:
- - 'build/**/*.test.js'
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cc39254..07c9bd6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -67,7 +67,7 @@ git commit -m "fix: should emit events to connected users"
We have API REST services for the `channels`.
-Here is what potentially look like a folder structure for this service :
+Here is what potentially look like a folder structure for this service:
```text
└── src
@@ -86,7 +86,7 @@ Here is what potentially look like a folder structure for this service :
└── index.ts
```
-This folder structure will map to these REST API routes :
+This folder structure will map to these REST API routes:
- GET `/channels`
- DELETE `/channels/:channelId`
diff --git a/Dockerfile b/Dockerfile
index 150277f..494450a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,21 +1,22 @@
-FROM node:18.16.1 AS dependencies
+FROM node:20.5.0 AS dependencies
WORKDIR /usr/src/app
COPY ./package*.json ./
-RUN npm install
+RUN npm clean-install
-FROM node:18.16.1 AS builder
+FROM node:20.5.0 AS builder
WORKDIR /usr/src/app
COPY --from=dependencies /usr/src/app/node_modules ./node_modules
COPY ./ ./
RUN npm run prisma:generate && npm run build
-FROM node:18.16.1 AS runner
+FROM node:20.5.0 AS runner
WORKDIR /usr/src/app
ENV NODE_ENV=production
+ENV NODE_OPTIONS=--enable-source-maps
COPY --from=builder /usr/src/app/node_modules ./node_modules
COPY --from=builder /usr/src/app/package.json ./package.json
COPY --from=builder /usr/src/app/email ./email
COPY --from=builder /usr/src/app/build ./build
COPY --from=builder /usr/src/app/prisma ./prisma
USER node
-CMD ["node", "build/index.js"]
+CMD npm run prisma:migrate:deploy && node build/index.js
diff --git a/README.md b/README.md
index 834793b..d729502 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-
+
@@ -18,7 +18,7 @@
Thream's Application Programming Interface (API) to stay close with your friends and communities.
-It uses [Thream/file-uploads-api](https://github.com/Thream/file-uploads-api) [v1.1.5](https://github.com/Thream/file-uploads-api/releases/tag/v1.1.5).
+It uses [Thream/file-uploads-api](https://github.com/Thream/file-uploads-api) [v1.1.6](https://github.com/Thream/file-uploads-api/releases/tag/v1.1.6).
## ⚙️ Getting Started
@@ -37,46 +37,75 @@ git clone git@github.com:Thream/api.git
# Go to the project root
cd api
+# Install dependencies
+npm clean-install
+
# Configure environment variables
cp .env.example .env
-# Install
-npm install
+# Generate Prisma client types
npm run prisma:generate
```
-You will need to configure the environment variables by creating an `.env` file at
-the root of the project (see `.env.example`).
+### Database Setup
+
+```sh
+# Create a new user and database
+psql
+CREATE DATABASE thream;
+CREATE USER thream_user with encrypted password 'password';
+ALTER USER thream_user WITH SUPERUSER;
+```
+
+### Database Production migration
+
+```sh
+npm run prisma:migrate:deploy
+```
### Local Development environment
Recommended to use [VSCode: Remote development in Containers](https://code.visualstudio.com/docs/remote/containers-tutorial).
-#### Setup the database
-
-```sh
-# Create a new user and database
-psql
-create database thream_database;
-create user thream_user with encrypted password 'password';
-ALTER USER thream_user WITH SUPERUSER;
-```
-
-Replace `DATABASE_URL` inside `.env` with `postgresql://thream_user:password@localhost:5432/thream_database`
+#### Database Development migration
```sh
# Run Prisma migrations
npm run prisma:migrate:dev
+
+# Reset the database (WARNING: This will delete all data)
+npm run prisma:migrate:reset
```
#### Usage
```sh
-# Run API
npm run dev
+```
-# Run Prisma Studio
-npm run prisma:studio
+##### Services started
+
+- `api`:
+- [Maildev](https://maildev.github.io/maildev/):
+- [Prisma Studio](https://www.prisma.io/studio):
+
+##### Commands
+
+```sh
+# Build, Lint and Test
+npm run build
+npm run build:typescript
+npm run lint:editorconfig
+npm run lint:markdown
+npm run lint:eslint
+npm run lint:prettier
+npm run test
+```
+
+### Production environment (with [Docker](https://www.docker.com/))
+
+```sh
+docker compose up --build
```
## 💡 Contributing
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..d2cf3ee
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,27 @@
+services:
+ thream-api:
+ container_name: 'thream-api'
+ image: 'thream-api'
+ restart: 'unless-stopped'
+ network_mode: 'host'
+ build:
+ context: './'
+ env_file: '.env'
+ depends_on:
+ - 'thream-database'
+
+ thream-database:
+ container_name: 'thream-database'
+ image: 'postgres:15.3'
+ restart: 'unless-stopped'
+ network_mode: 'host'
+ env_file: '.env'
+ environment:
+ POSTGRES_USER: ${DATABASE_USER}
+ POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
+ POSTGRES_DB: ${DATABASE_NAME}
+ volumes:
+ - 'thream-postgres-data:/var/lib/postgresql/data'
+
+volumes:
+ thream-postgres-data:
diff --git a/generators/service/service.test.ts.hbs b/generators/service/service.test.ts.hbs
index e9c56f5..dbe4d97 100644
--- a/generators/service/service.test.ts.hbs
+++ b/generators/service/service.test.ts.hbs
@@ -1,18 +1,20 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from 'application.js'
+import { application } from '#src/application.js'
{{#if shouldBeAuthenticated}}
-import { authenticateUserTest } from '__test__/utils/authenticateUserTest.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
{{/if}}
-import prisma from 'tools/database/prisma.js'
+import prisma from '#src/tools/database/prisma.js'
-await tap.test('{{httpMethod}} {{url}}', async (t) => {
+await test('{{httpMethod}} {{url}}', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
{{#if shouldBeAuthenticated}}
const { accessToken } = await authenticateUserTest()
{{/if}}
@@ -32,6 +34,6 @@ await tap.test('{{httpMethod}} {{url}}', async (t) => {
payload: {}
})
// const responseJson = response.json()
- t.equal(response.statusCode, 200)
+ assert.strictEqual(response.statusCode, 200)
})
})
diff --git a/generators/service/service.ts.hbs b/generators/service/service.ts.hbs
index dbb4d71..af7c2e6 100644
--- a/generators/service/service.ts.hbs
+++ b/generators/service/service.ts.hbs
@@ -1,10 +1,10 @@
import { Static, Type } from '@sinclair/typebox'
import { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from 'tools/database/prisma.js'
-import { fastifyErrors } from 'models/utils.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
{{#if shouldBeAuthenticated}}
-import authenticateUser from 'tools/plugins/authenticateUser.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
{{/if}}
const body{{sentenceCase httpMethod}}ServiceSchema = Type.Object({
diff --git a/package-lock.json b/package-lock.json
index f19d9c6..909ab49 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,35 +11,35 @@
"dependencies": {
"@fastify/cors": "8.3.0",
"@fastify/helmet": "11.0.0",
- "@fastify/multipart": "7.7.0",
- "@fastify/rate-limit": "8.0.1",
+ "@fastify/multipart": "7.6.0",
+ "@fastify/rate-limit": "8.0.3",
"@fastify/sensible": "5.2.0",
- "@fastify/swagger": "8.6.0",
+ "@fastify/swagger": "8.8.0",
"@fastify/swagger-ui": "1.9.2",
- "@prisma/client": "4.16.2",
- "@sinclair/typebox": "0.29.0",
- "@thream/socketio-jwt": "3.1.1",
+ "@prisma/client": "5.0.0",
+ "@sinclair/typebox": "0.29.6",
+ "@thream/socketio-jwt": "3.1.2",
"axios": "1.4.0",
"bcryptjs": "2.4.3",
"dotenv": "16.3.1",
"ejs": "3.1.9",
- "fastify": "4.19.1",
- "fastify-plugin": "4.5.0",
+ "fastify": "4.20.0",
+ "fastify-plugin": "4.5.1",
"form-data": "4.0.0",
"http-errors": "2.0.0",
- "jsonwebtoken": "9.0.0",
+ "jsonwebtoken": "9.0.1",
"ms": "2.1.3",
- "nodemailer": "6.9.3",
+ "nodemailer": "6.9.4",
"read-pkg": "8.0.0",
"socket.io": "4.7.1"
},
"devDependencies": {
- "@commitlint/cli": "17.6.6",
- "@commitlint/config-conventional": "17.6.6",
+ "@commitlint/cli": "17.6.7",
+ "@commitlint/config-conventional": "17.6.7",
"@saithodev/semantic-release-backmerge": "3.2.0",
"@semantic-release/git": "10.0.1",
"@swc/cli": "0.1.62",
- "@swc/core": "1.3.67",
+ "@swc/core": "1.3.70",
"@tsconfig/strictest": "2.0.1",
"@types/bcryptjs": "2.4.2",
"@types/busboy": "1.5.0",
@@ -47,36 +47,34 @@
"@types/http-errors": "2.0.1",
"@types/jsonwebtoken": "9.0.2",
"@types/ms": "0.7.31",
- "@types/node": "20.3.3",
+ "@types/node": "20.4.3",
"@types/nodemailer": "6.4.8",
"@types/sinon": "10.0.15",
- "@types/tap": "15.0.8",
- "@typescript-eslint/eslint-plugin": "5.60.1",
- "@typescript-eslint/parser": "5.60.1",
- "c8": "8.0.0",
+ "@typescript-eslint/eslint-plugin": "6.1.0",
+ "@typescript-eslint/parser": "6.1.0",
+ "chokidar": "3.5.3",
"concurrently": "8.2.0",
"cross-env": "7.0.3",
"editorconfig-checker": "5.1.1",
- "eslint": "8.44.0",
- "eslint-config-conventions": "10.0.0",
+ "eslint": "8.45.0",
+ "eslint-config-conventions": "11.0.1",
"eslint-config-prettier": "8.8.0",
"eslint-plugin-import": "2.27.5",
- "eslint-plugin-prettier": "4.2.1",
+ "eslint-plugin-prettier": "5.0.0",
"eslint-plugin-promise": "6.1.1",
- "eslint-plugin-unicorn": "47.0.0",
+ "eslint-plugin-unicorn": "48.0.0",
"husky": "8.0.3",
"lint-staged": "13.2.3",
- "maildev": "2.0.5",
+ "maildev": "2.1.0",
"markdownlint-cli2": "0.8.1",
"markdownlint-rule-relative-links": "2.1.0",
"plop": "3.1.2",
- "prettier": "2.8.8",
- "prisma": "4.16.2",
+ "prettier": "3.0.0",
+ "prisma": "5.0.0",
"rimraf": "5.0.1",
- "semantic-release": "21.0.6",
+ "semantic-release": "21.0.7",
"sinon": "15.2.0",
- "tap": "16.3.7",
- "typescript": "5.0.4"
+ "typescript": "5.1.6"
},
"engines": {
"node": ">=16.0.0",
@@ -92,19 +90,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@babel/code-frame": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
@@ -116,222 +101,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/compat-data": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz",
- "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
- "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helpers": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
- "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator/node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz",
- "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
- "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
- "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz",
- "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-validator-identifier": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
@@ -340,29 +109,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
- "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/highlight": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
@@ -440,22 +186,10 @@
"node": ">=4"
}
},
- "node_modules/@babel/parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz",
- "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@babel/runtime": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz",
- "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==",
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz",
+ "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.11"
@@ -464,70 +198,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/template": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
- "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
- "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
- "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -539,14 +209,14 @@
}
},
"node_modules/@commitlint/cli": {
- "version": "17.6.6",
- "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.6.tgz",
- "integrity": "sha512-sTKpr2i/Fjs9OmhU+beBxjPavpnLSqZaO6CzwKVq2Tc4UYVTMFgpKOslDhUBVlfAUBfjVO8ParxC/MXkIOevEA==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.7.tgz",
+ "integrity": "sha512-nzZmfO5KIOupYppn1MsnYX/80I+KDlxiwkks3CJT0XT+t34UgqGi3eSyEuzgcIjPlORk5/GMaAEiys78iLfGMg==",
"dev": true,
"dependencies": {
"@commitlint/format": "^17.4.4",
- "@commitlint/lint": "^17.6.6",
- "@commitlint/load": "^17.5.0",
+ "@commitlint/lint": "^17.6.7",
+ "@commitlint/load": "^17.6.7",
"@commitlint/read": "^17.5.1",
"@commitlint/types": "^17.4.4",
"execa": "^5.0.0",
@@ -563,9 +233,9 @@
}
},
"node_modules/@commitlint/config-conventional": {
- "version": "17.6.6",
- "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.6.tgz",
- "integrity": "sha512-phqPz3BDhfj49FUYuuZIuDiw+7T6gNAEy7Yew1IBHqSohVUCWOK2FXMSAExzS2/9X+ET93g0Uz83KjiHDOOFag==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.7.tgz",
+ "integrity": "sha512-4oTpEUC0HRM54QRHBPMOJW1pETp7usxXn9RuNYNWHcmu8wi1mpws95hvS20u2n6HtIkTn0jfn7vHioCm4AGUTw==",
"dev": true,
"dependencies": {
"conventional-changelog-conventionalcommits": "^5.0.0"
@@ -575,9 +245,9 @@
}
},
"node_modules/@commitlint/config-validator": {
- "version": "17.4.4",
- "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz",
- "integrity": "sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.6.7.tgz",
+ "integrity": "sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==",
"dev": true,
"dependencies": {
"@commitlint/types": "^17.4.4",
@@ -588,9 +258,9 @@
}
},
"node_modules/@commitlint/ensure": {
- "version": "17.4.4",
- "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.4.4.tgz",
- "integrity": "sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.6.7.tgz",
+ "integrity": "sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==",
"dev": true,
"dependencies": {
"@commitlint/types": "^17.4.4",
@@ -627,9 +297,9 @@
}
},
"node_modules/@commitlint/is-ignored": {
- "version": "17.6.6",
- "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.6.tgz",
- "integrity": "sha512-4Fw875faAKO+2nILC04yW/2Vy/wlV3BOYCSQ4CEFzriPEprc1Td2LILmqmft6PDEK5Sr14dT9tEzeaZj0V56Gg==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.7.tgz",
+ "integrity": "sha512-vqyNRqtbq72P2JadaoWiuoLtXIs9SaAWDqdtef6G2zsoXqKFc7vqj1f+thzVgosXG3X/5K9jNp+iYijmvOfc/g==",
"dev": true,
"dependencies": {
"@commitlint/types": "^17.4.4",
@@ -640,14 +310,14 @@
}
},
"node_modules/@commitlint/lint": {
- "version": "17.6.6",
- "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.6.tgz",
- "integrity": "sha512-5bN+dnHcRLkTvwCHYMS7Xpbr+9uNi0Kq5NR3v4+oPNx6pYXt8ACuw9luhM/yMgHYwW0ajIR20wkPAFkZLEMGmg==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.7.tgz",
+ "integrity": "sha512-TW+AozfuOFMrHn+jdwtz0IWu8REKFp0eryOvoBp2r8IXNc4KihKB1spAiUB6SFyHD6hVVeolz12aHnJ3Mb+xVQ==",
"dev": true,
"dependencies": {
- "@commitlint/is-ignored": "^17.6.6",
- "@commitlint/parse": "^17.6.5",
- "@commitlint/rules": "^17.6.5",
+ "@commitlint/is-ignored": "^17.6.7",
+ "@commitlint/parse": "^17.6.7",
+ "@commitlint/rules": "^17.6.7",
"@commitlint/types": "^17.4.4"
},
"engines": {
@@ -655,14 +325,14 @@
}
},
"node_modules/@commitlint/load": {
- "version": "17.5.0",
- "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz",
- "integrity": "sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.6.7.tgz",
+ "integrity": "sha512-QZ2rJTbX55BQdYrCm/p6+hh/pFBgC9nTJxfsrK6xRPe2thiQzHN0AQDBqBwAirn6gIkHrjIbCbtAE6kiDYLjrw==",
"dev": true,
"dependencies": {
- "@commitlint/config-validator": "^17.4.4",
+ "@commitlint/config-validator": "^17.6.7",
"@commitlint/execute-rule": "^17.4.0",
- "@commitlint/resolve-extends": "^17.4.4",
+ "@commitlint/resolve-extends": "^17.6.7",
"@commitlint/types": "^17.4.4",
"@types/node": "*",
"chalk": "^4.1.0",
@@ -689,9 +359,9 @@
}
},
"node_modules/@commitlint/parse": {
- "version": "17.6.5",
- "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.6.5.tgz",
- "integrity": "sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.6.7.tgz",
+ "integrity": "sha512-ibO03BgEns+JJpohpBZYD49mCdSNMg6fTv7vA5yqzEFWkBQk5NWhEBw2yG+Z1UClStIRkMkAYyI2HzoQG9tCQQ==",
"dev": true,
"dependencies": {
"@commitlint/types": "^17.4.4",
@@ -719,12 +389,12 @@
}
},
"node_modules/@commitlint/resolve-extends": {
- "version": "17.4.4",
- "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz",
- "integrity": "sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz",
+ "integrity": "sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==",
"dev": true,
"dependencies": {
- "@commitlint/config-validator": "^17.4.4",
+ "@commitlint/config-validator": "^17.6.7",
"@commitlint/types": "^17.4.4",
"import-fresh": "^3.0.0",
"lodash.mergewith": "^4.6.2",
@@ -736,12 +406,12 @@
}
},
"node_modules/@commitlint/rules": {
- "version": "17.6.5",
- "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.5.tgz",
- "integrity": "sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A==",
+ "version": "17.6.7",
+ "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.7.tgz",
+ "integrity": "sha512-x/SDwDTN3w3Gr5xkhrIORu96rlKCc8ZLYEMXRqi9+MB33st2mKcGvKa5uJuigHlbl3xm75bAAubATrodVrjguQ==",
"dev": true,
"dependencies": {
- "@commitlint/ensure": "^17.4.4",
+ "@commitlint/ensure": "^17.6.7",
"@commitlint/message": "^17.4.2",
"@commitlint/to-lines": "^17.4.0",
"@commitlint/types": "^17.4.4",
@@ -796,16 +466,6 @@
"node": ">=12"
}
},
- "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
@@ -822,9 +482,9 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.0.tgz",
+ "integrity": "sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -950,25 +610,24 @@
}
},
"node_modules/@fastify/multipart": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-7.7.0.tgz",
- "integrity": "sha512-lE5v6+MVbLYmPL8yUHrvyezEOLQbZulEPL8itwGqPbNxL2pWdAN1HWEZ7f3VdwyR6wmQdOcpfZ0zdCU4BbWKzw==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-7.6.0.tgz",
+ "integrity": "sha512-mQoz0SMxk1WAYLYvQypoj3GYhCbmhnFl2LdleTzKQ4HgPfhVcMT014uln2wgzRh2y+gL74b/+j0mMVgvOKpqpQ==",
"dependencies": {
"@fastify/busboy": "^1.0.0",
"@fastify/deepmerge": "^1.0.0",
"@fastify/error": "^3.0.0",
- "@fastify/swagger": "^8.3.1",
- "@fastify/swagger-ui": "^1.8.0",
"end-of-stream": "^1.4.4",
"fastify-plugin": "^4.0.0",
+ "hexoid": "^1.0.0",
"secure-json-parse": "^2.4.0",
"stream-wormhole": "^1.1.0"
}
},
"node_modules/@fastify/rate-limit": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/@fastify/rate-limit/-/rate-limit-8.0.1.tgz",
- "integrity": "sha512-sKztox9tAhKYJadS7yD7mBamNs8sLP/OlBjX6prGzlL3+q4cxPE2UafW8QF5s4+BuUyssQ7FabSlgieqyk4JZg==",
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/@fastify/rate-limit/-/rate-limit-8.0.3.tgz",
+ "integrity": "sha512-7wbSKXGKKLI1VkpW2XvS7SFg4n4/uzYt0YA5O2pfCcM6PYaBSV3VhSKGJ9/hJceCSH+zNEDRrWpufqxbcDkTZg==",
"dependencies": {
"fastify-plugin": "^4.0.0",
"ms": "^2.1.3",
@@ -1016,9 +675,9 @@
}
},
"node_modules/@fastify/swagger": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.6.0.tgz",
- "integrity": "sha512-PGde7ryn0nsX/BpSrjP4Ade8RK2M0uBIU4Iow3Qt3kWa/70p1fM7AW28kS3dKERnwT0VwrUdxU3ftrRI+DsNTw==",
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.8.0.tgz",
+ "integrity": "sha512-tYI2lbItb4yg9FhQj+leK6DdIBICLbXkSR2vZjo117ygHyYQLxw2v0ere/d2PtDmYAx7SOJzxvg3w6y0Sxc3iw==",
"dependencies": {
"fastify-plugin": "^4.0.0",
"json-schema-resolver": "^2.0.0",
@@ -1145,132 +804,10 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true,
"engines": {
"node": ">=6.0.0"
@@ -1283,21 +820,15 @@
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
}
},
- "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
"node_modules/@lukeed/ms": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz",
@@ -1361,58 +892,58 @@
}
},
"node_modules/@octokit/auth-token": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz",
- "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
"dev": true,
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/core": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz",
- "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz",
+ "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==",
"dev": true,
"dependencies": {
- "@octokit/auth-token": "^3.0.0",
- "@octokit/graphql": "^5.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.0.0",
+ "@octokit/request": "^8.0.2",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0",
"before-after-hook": "^2.2.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/endpoint": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz",
- "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz",
+ "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==",
"dev": true,
"dependencies": {
- "@octokit/types": "^9.0.0",
+ "@octokit/types": "^11.0.0",
"is-plain-object": "^5.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/graphql": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz",
- "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz",
+ "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==",
"dev": true,
"dependencies": {
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/request": "^8.0.1",
+ "@octokit/types": "^11.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/openapi-types": {
@@ -1422,118 +953,87 @@
"dev": true
},
"node_modules/@octokit/plugin-paginate-rest": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-7.1.2.tgz",
- "integrity": "sha512-Jx8KuKqEAVRsK6fMzZKv3h6UH9/NRDHsDRtUAROqqmZlCptM///Uef7A1ViZ/cbDplekz7VbDWdFLAZ/mpuDww==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-8.0.0.tgz",
+ "integrity": "sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==",
"dev": true,
"dependencies": {
- "@octokit/tsconfig": "^2.0.0",
- "@octokit/types": "^9.3.2"
+ "@octokit/types": "^11.0.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": ">=4"
+ "@octokit/core": ">=5"
}
},
"node_modules/@octokit/plugin-retry": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-5.0.4.tgz",
- "integrity": "sha512-hw00fDIhOgijy4aSxS6weWF5uqZVeoiC/AptLLyjL8KFCJRGRaXfcfgj76h/Z3cSLTjRsEIQnNCTig8INttL/g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.0.tgz",
+ "integrity": "sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==",
"dev": true,
"dependencies": {
- "@octokit/request-error": "^4.0.1",
- "@octokit/types": "^10.0.0",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0",
"bottleneck": "^2.15.3"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": ">=3"
- }
- },
- "node_modules/@octokit/plugin-retry/node_modules/@octokit/request-error": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-4.0.2.tgz",
- "integrity": "sha512-uqwUEmZw3x4I9DGYq9fODVAAvcLsPQv97NRycP6syEFu5916M189VnNBW2zANNwqg3OiligNcAey7P0SET843w==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^10.0.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz",
- "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==",
- "dev": true,
- "dependencies": {
- "@octokit/openapi-types": "^18.0.0"
+ "@octokit/core": ">=5"
}
},
"node_modules/@octokit/plugin-throttling": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-6.1.0.tgz",
- "integrity": "sha512-JqMbTiPC0sUSTsLQsdq3JVx1mx8UtTo5mwR80YqPXE93+XhevvSyOR1rO2Z+NbO/r0TK4hqFJSSi/9oIZBxZTg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-7.0.0.tgz",
+ "integrity": "sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==",
"dev": true,
"dependencies": {
- "@octokit/types": "^9.0.0",
+ "@octokit/types": "^11.0.0",
"bottleneck": "^2.15.3"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": "^4.0.0"
+ "@octokit/core": "^5.0.0"
}
},
"node_modules/@octokit/request": {
- "version": "6.2.8",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz",
- "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.1.tgz",
+ "integrity": "sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==",
"dev": true,
"dependencies": {
- "@octokit/endpoint": "^7.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/endpoint": "^9.0.0",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.1.0",
"is-plain-object": "^5.0.0",
- "node-fetch": "^2.6.7",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/request-error": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz",
- "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz",
+ "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==",
"dev": true,
"dependencies": {
- "@octokit/types": "^9.0.0",
+ "@octokit/types": "^11.0.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
- "node_modules/@octokit/tsconfig": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-2.0.0.tgz",
- "integrity": "sha512-tWnrai3quGt8+gRN2edzo9fmraWekeryXPeXDomMw2oFSpu/lH3VSWGn/q4V+rwjTRMeeXk/ci623/01Zet4VQ==",
- "dev": true
- },
"node_modules/@octokit/types": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
- "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz",
+ "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==",
"dev": true,
"dependencies": {
"@octokit/openapi-types": "^18.0.0"
@@ -1549,6 +1049,26 @@
"node": ">=14"
}
},
+ "node_modules/@pkgr/utils": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz",
+ "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "fast-glob": "^3.3.0",
+ "is-glob": "^4.0.3",
+ "open": "^9.1.0",
+ "picocolors": "^1.0.0",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
"node_modules/@pnpm/config.env-replace": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
@@ -1591,15 +1111,15 @@
}
},
"node_modules/@prisma/client": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.16.2.tgz",
- "integrity": "sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.0.0.tgz",
+ "integrity": "sha512-XlO5ELNAQ7rV4cXIDJUNBEgdLwX3pjtt9Q/RHqDpGf43szpNJx2hJnggfFs7TKNx0cOFsl6KJCSfqr5duEU/bQ==",
"hasInstallScript": true,
"dependencies": {
- "@prisma/engines-version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81"
+ "@prisma/engines-version": "4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584"
},
"engines": {
- "node": ">=14.17"
+ "node": ">=16.13"
},
"peerDependencies": {
"prisma": "*"
@@ -1611,16 +1131,16 @@
}
},
"node_modules/@prisma/engines": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.16.2.tgz",
- "integrity": "sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.0.0.tgz",
+ "integrity": "sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==",
"devOptional": true,
"hasInstallScript": true
},
"node_modules/@prisma/engines-version": {
- "version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81",
- "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81.tgz",
- "integrity": "sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg=="
+ "version": "4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584",
+ "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584.tgz",
+ "integrity": "sha512-HHiUF6NixsldsP3JROq07TYBLEjXFKr6PdH8H4gK/XAoTmIplOJBCgrIUMrsRAnEuGyRoRLXKXWUb943+PFoKQ=="
},
"node_modules/@saithodev/semantic-release-backmerge": {
"version": "3.2.0",
@@ -1719,15 +1239,15 @@
}
},
"node_modules/@semantic-release/github": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.0.3.tgz",
- "integrity": "sha512-X6gq4USKVlCxPwIIyXb99jU7gwVWlnsKOevs+OyABRdoqc+OIRITbFmrrYU3eE1vGMGk+Qu/GAoLUQQQwC3YOA==",
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.0.4.tgz",
+ "integrity": "sha512-kQCGFAsBErvCR6hzNuzu63cj4erQN2krm9zQlg8vl4j5X0mL0d/Ras0wmL5Gkr1TuSS2lweME7M4J5zvtDDDSA==",
"dev": true,
"dependencies": {
- "@octokit/core": "^4.2.1",
- "@octokit/plugin-paginate-rest": "^7.0.0",
- "@octokit/plugin-retry": "^5.0.0",
- "@octokit/plugin-throttling": "^6.0.0",
+ "@octokit/core": "^5.0.0",
+ "@octokit/plugin-paginate-rest": "^8.0.0",
+ "@octokit/plugin-retry": "^6.0.0",
+ "@octokit/plugin-throttling": "^7.0.0",
"@semantic-release/error": "^4.0.0",
"aggregate-error": "^4.0.1",
"debug": "^4.3.4",
@@ -1813,14 +1333,14 @@
}
},
"node_modules/@semantic-release/github/node_modules/globby": {
- "version": "13.2.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.1.tgz",
- "integrity": "sha512-DPCBxctI7dN4EeIqjW2KGqgdcUMbrhJ9AzON+PlxCtvppWhubTLD4+a0GFxiym14ZvacUydTPjLPc2DlKz7EIg==",
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
+ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
"dev": true,
"dependencies": {
"dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
+ "fast-glob": "^3.3.0",
+ "ignore": "^5.2.4",
"merge2": "^1.4.1",
"slash": "^4.0.0"
},
@@ -1845,9 +1365,9 @@
}
},
"node_modules/@semantic-release/github/node_modules/https-proxy-agent": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz",
- "integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz",
+ "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==",
"dev": true,
"dependencies": {
"agent-base": "^7.0.2",
@@ -2095,9 +1615,9 @@
}
},
"node_modules/@semantic-release/release-notes-generator": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.3.tgz",
- "integrity": "sha512-NU77dWKQf+QcZrv/Hcp3DPeSxglPu8hYKCipGxAPpeaneLkg6S0zfTVug4tg4mfDhZHC6RtoI7ljQDK8VoJ2Dw==",
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.4.tgz",
+ "integrity": "sha512-j0Znnwq9IdWTCGzqSlkLv4MpALTsVDZxcVESzJCNN8pK2BYQlYaKsdZ1Ea/+7RlppI3vjhEi33ZKmjSGY1FLKw==",
"dev": true,
"dependencies": {
"conventional-changelog-angular": "^6.0.0",
@@ -2109,7 +1629,7 @@
"import-from": "^4.0.0",
"into-stream": "^7.0.0",
"lodash-es": "^4.17.21",
- "read-pkg-up": "^9.0.0"
+ "read-pkg-up": "^10.0.0"
},
"engines": {
"node": ">=18"
@@ -2230,48 +1750,30 @@
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
- "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^2.0.0"
- },
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
- "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.0.0.tgz",
+ "integrity": "sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==",
"dev": true,
"dependencies": {
"find-up": "^6.3.0",
- "read-pkg": "^7.1.0",
- "type-fest": "^2.5.0"
+ "read-pkg": "^8.0.0",
+ "type-fest": "^3.12.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
"engines": {
- "node": ">=12.20"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2290,9 +1792,9 @@
}
},
"node_modules/@sinclair/typebox": {
- "version": "0.29.0",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.29.0.tgz",
- "integrity": "sha512-htPaB6O/USun7JviXuzHnIchTbwgSdKijwt/ho8l9agmvbFcYnrSPOi2qNRzqNOBnHjXMUPoCXri4C6SwkOy3g=="
+ "version": "0.29.6",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.29.6.tgz",
+ "integrity": "sha512-aX5IFYWlMa7tQ8xZr3b2gtVReCvg7f3LEhjir/JAjX2bJCMVJA5tIPv30wTD4KDfcwMd7DDYY3hFDeGmOgtrZQ=="
},
"node_modules/@sindresorhus/is": {
"version": "4.6.0",
@@ -2387,9 +1889,9 @@
}
},
"node_modules/@swc/core": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.67.tgz",
- "integrity": "sha512-9DROjzfAEt0xt0CDkOYsWpkUPyne8fl5ggWGon049678BOM7p0R0dmaalZGAsKatG5vYP1IWSKWsKhJIubDCsQ==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.70.tgz",
+ "integrity": "sha512-LWVWlEDLlOD25PvA2NEz41UzdwXnlDyBiZbe69s3zM0DfCPwZXLUm79uSqH9ItsOjTrXSL5/1+XUL6C/BZwChA==",
"dev": true,
"hasInstallScript": true,
"engines": {
@@ -2400,16 +1902,16 @@
"url": "https://opencollective.com/swc"
},
"optionalDependencies": {
- "@swc/core-darwin-arm64": "1.3.67",
- "@swc/core-darwin-x64": "1.3.67",
- "@swc/core-linux-arm-gnueabihf": "1.3.67",
- "@swc/core-linux-arm64-gnu": "1.3.67",
- "@swc/core-linux-arm64-musl": "1.3.67",
- "@swc/core-linux-x64-gnu": "1.3.67",
- "@swc/core-linux-x64-musl": "1.3.67",
- "@swc/core-win32-arm64-msvc": "1.3.67",
- "@swc/core-win32-ia32-msvc": "1.3.67",
- "@swc/core-win32-x64-msvc": "1.3.67"
+ "@swc/core-darwin-arm64": "1.3.70",
+ "@swc/core-darwin-x64": "1.3.70",
+ "@swc/core-linux-arm-gnueabihf": "1.3.70",
+ "@swc/core-linux-arm64-gnu": "1.3.70",
+ "@swc/core-linux-arm64-musl": "1.3.70",
+ "@swc/core-linux-x64-gnu": "1.3.70",
+ "@swc/core-linux-x64-musl": "1.3.70",
+ "@swc/core-win32-arm64-msvc": "1.3.70",
+ "@swc/core-win32-ia32-msvc": "1.3.70",
+ "@swc/core-win32-x64-msvc": "1.3.70"
},
"peerDependencies": {
"@swc/helpers": "^0.5.0"
@@ -2421,9 +1923,9 @@
}
},
"node_modules/@swc/core-darwin-arm64": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.67.tgz",
- "integrity": "sha512-zCT2mCkOBVNf5uJDcQ3A9KDoO1OEaGdfjsRTZTo7sejDd9AXLfJg+xgyCBBrK2jNS/uWcT21IvSv3LqKp4K8pA==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.70.tgz",
+ "integrity": "sha512-31+mcl0dgdRHvZRjhLOK9V6B+qJ7nxDZYINr9pBlqGWxknz37Vld5KK19Kpr79r0dXUZvaaelLjCnJk9dA2PcQ==",
"cpu": [
"arm64"
],
@@ -2437,9 +1939,9 @@
}
},
"node_modules/@swc/core-darwin-x64": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.67.tgz",
- "integrity": "sha512-hXTVsfTatPEec5gFVyjGj3NccKZsYj/OXyHn6XA+l3Q76lZzGm2ISHdku//XNwXu8OmJ0HhS7LPsC4XXwxXQhg==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.70.tgz",
+ "integrity": "sha512-GMFJ65E18zQC80t0os+TZvI+8lbRuitncWVge/RXmXbVLPRcdykP4EJ87cqzcG5Ah0z18/E0T+ixD6jHRisrYQ==",
"cpu": [
"x64"
],
@@ -2453,9 +1955,9 @@
}
},
"node_modules/@swc/core-linux-arm-gnueabihf": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.67.tgz",
- "integrity": "sha512-l8AKL0RkDL5FRTeWMmjoz9zvAc37amxC+0rheaNwE+gZya7ObyNjnIYz5FwN+3y+z6JFU7LS2x/5f6iwruv6pg==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.70.tgz",
+ "integrity": "sha512-wjhCwS8LCiAq2VedF1b4Bryyw68xZnfMED4pLRazAl8BaUlDFANfRBORNunxlfHQj4V3x39IaiLgCZRHMdzXBg==",
"cpu": [
"arm"
],
@@ -2469,9 +1971,9 @@
}
},
"node_modules/@swc/core-linux-arm64-gnu": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.67.tgz",
- "integrity": "sha512-S8zOB1AXEpb7kmtgMaFNeLAj01VOky4B0RNZ+uJWigdrDiFT67FeZzNHUNmNSOU0QM79G+Lie/xD/beqEw0vDg==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.70.tgz",
+ "integrity": "sha512-9D/Rx67cAOnMiexvCqARxvhj7coRajTp5HlJHuf+rfwMqI2hLhpO9/pBMQxBUAWxODO/ksQ/OF+GJRjmtWw/2A==",
"cpu": [
"arm64"
],
@@ -2485,9 +1987,9 @@
}
},
"node_modules/@swc/core-linux-arm64-musl": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.67.tgz",
- "integrity": "sha512-Fex8J8ASrt13pmOr2xWh41tEeKWwXYGk3sV8L/aGHiYtIJEUi2f+RtMx3jp7LIdOD8pQptor7i5WBlfR9jhp8A==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.70.tgz",
+ "integrity": "sha512-gkjxBio7XD+1GlQVVyPP/qeFkLu83VhRHXaUrkNYpr5UZG9zZurBERT9nkS6Y+ouYh+Q9xmw57aIyd2KvD2zqQ==",
"cpu": [
"arm64"
],
@@ -2501,9 +2003,9 @@
}
},
"node_modules/@swc/core-linux-x64-gnu": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.67.tgz",
- "integrity": "sha512-9bz9/bMphrv5vDg0os/d8ve0QgFpDzJgZgHUaHiGwcmfnlgdOSAaYJLIvWdcGTjZuQeV4L0m+iru357D9TXEzA==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.70.tgz",
+ "integrity": "sha512-/nCly+V4xfMVwfEUoLLAukxUSot/RcSzsf6GdsGTjFcrp5sZIntAjokYRytm3VT1c2TK321AfBorsi9R5w8Y7Q==",
"cpu": [
"x64"
],
@@ -2517,9 +2019,9 @@
}
},
"node_modules/@swc/core-linux-x64-musl": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.67.tgz",
- "integrity": "sha512-ED0H6oLvQmhgo9zs8usmEA/lcZPGTu7K9og9K871b7HhHX0h/R+Xg2pb5KD7S/GyUHpfuopxjVROm+h6X1jMUA==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.70.tgz",
+ "integrity": "sha512-HoOsPJbt361KGKaivAK0qIiYARkhzlxeAfvF5NlnKxkIMOZpQ46Lwj3tR0VWohKbrhS+cYKFlVuDi5XnDkx0XA==",
"cpu": [
"x64"
],
@@ -2533,9 +2035,9 @@
}
},
"node_modules/@swc/core-win32-arm64-msvc": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.67.tgz",
- "integrity": "sha512-J1yFDLgPFeRtA8t5E159OXX+ww1gbkFg70yr4OP7EsOkOD1uMkuTf9yK/woHfsaVJlUYjJHzw7MkUIEgQBucqQ==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.70.tgz",
+ "integrity": "sha512-hm4IBK/IaRil+aj1cWU6f0GyAdHpw/Jr5nyFYLM2c/tt7w2t5hgb8NjzM2iM84lOClrig1fG6edj2vCF1dFzNQ==",
"cpu": [
"arm64"
],
@@ -2549,9 +2051,9 @@
}
},
"node_modules/@swc/core-win32-ia32-msvc": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.67.tgz",
- "integrity": "sha512-bK11/KtasewqHxzkjKUBXRE9MSAidbZCxrgJUd49bItG2N/DHxkwMYu8Xkh5VDHdTYWv/2idYtf/VM9Yi+53qw==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.70.tgz",
+ "integrity": "sha512-5cgKUKIT/9Fp5fCA+zIjYCQ4dSvjFYOeWGZR3QiTXGkC4bGa1Ji9SEPyeIAX0iruUnKjYaZB9RvHK2tNn7RLrQ==",
"cpu": [
"ia32"
],
@@ -2565,9 +2067,9 @@
}
},
"node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.3.67",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.67.tgz",
- "integrity": "sha512-GxzUU3+NA3cPcYxCxtfSQIS2ySD7Z8IZmKTVaWA9GOUQbKLyCE8H5js31u39+0op/1gNgxOgYFDoj2lUyvLCqw==",
+ "version": "1.3.70",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.70.tgz",
+ "integrity": "sha512-LE8lW46+TQBzVkn2mHBlk8DIElPIZ2dO5P8AbJiARNBAnlqQWu67l9gWM89UiZ2l33J2cI37pHzON3tKnT8f9g==",
"cpu": [
"x64"
],
@@ -2593,11 +2095,11 @@
}
},
"node_modules/@thream/socketio-jwt": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@thream/socketio-jwt/-/socketio-jwt-3.1.1.tgz",
- "integrity": "sha512-U3Zk6+nyAsr6gv69QkJat5tjE9PiEKCP9fWeY741ml2HNic5aE0omeuTzjOFnPvlLLaMn02DEVNgo2t6QwxOhA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@thream/socketio-jwt/-/socketio-jwt-3.1.2.tgz",
+ "integrity": "sha512-2TZnFrEVcHIpf7nfPyq5c+Pr6Q82ikzuaykXoR9jGQdWcw84aRS/7ZdusL+v3Aq3hasBqkyh21EW+y6HQbGteg==",
"dependencies": {
- "jsonwebtoken": "9.0.0"
+ "jsonwebtoken": "9.0.1"
},
"engines": {
"node": ">=16.0.0",
@@ -2679,12 +2181,6 @@
"@types/responselike": "^1.0.0"
}
},
- "node_modules/@types/component-emitter": {
- "version": "1.2.11",
- "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
- "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==",
- "dev": true
- },
"node_modules/@types/cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
@@ -2732,12 +2228,6 @@
"rxjs": "^7.2.0"
}
},
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
- },
"node_modules/@types/json-schema": {
"version": "7.0.12",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
@@ -2791,9 +2281,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.3.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.3.tgz",
- "integrity": "sha512-wheIYdr4NYML61AjC8MKj/2jrR/kDQri/CIpVoZwldwhnIrD/j9jIU5bJ8yBKuB2VhpFV7Ab6G2XkBjv9r9Zzw=="
+ "version": "20.4.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.3.tgz",
+ "integrity": "sha512-Yu3+r4Mn/iY6Mf0aihncZQ1qOjOUrCiodbHHY1hds5O+7BbKp9t+Li7zLO13zO8j9L2C6euz8xsYQP0rjGvVXw=="
},
"node_modules/@types/nodemailer": {
"version": "6.4.8",
@@ -2839,15 +2329,6 @@
"integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==",
"dev": true
},
- "node_modules/@types/tap": {
- "version": "15.0.8",
- "resolved": "https://registry.npmjs.org/@types/tap/-/tap-15.0.8.tgz",
- "integrity": "sha512-ZfeoiZlLIaFi4t6wccwbTEicrHREkP0bOq8dZVi/nWvG5F8O7LlS2cSUZBiOW/D4cgWS/p2uhM3lJoyzFAl80w==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/through": {
"version": "0.0.30",
"resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz",
@@ -2858,32 +2339,34 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz",
- "integrity": "sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz",
+ "integrity": "sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw==",
"dev": true,
"dependencies": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.60.1",
- "@typescript-eslint/type-utils": "5.60.1",
- "@typescript-eslint/utils": "5.60.1",
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.1.0",
+ "@typescript-eslint/type-utils": "6.1.0",
+ "@typescript-eslint/utils": "6.1.0",
+ "@typescript-eslint/visitor-keys": "6.1.0",
"debug": "^4.3.4",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
"natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -2891,26 +2374,42 @@
}
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.1.tgz",
- "integrity": "sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.60.1",
- "@typescript-eslint/types": "5.60.1",
- "@typescript-eslint/typescript-estree": "5.60.1",
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.1.0.tgz",
+ "integrity": "sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.1.0",
+ "@typescript-eslint/types": "6.1.0",
+ "@typescript-eslint/typescript-estree": "6.1.0",
+ "@typescript-eslint/visitor-keys": "6.1.0",
"debug": "^4.3.4"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -2919,16 +2418,16 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz",
- "integrity": "sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz",
+ "integrity": "sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.60.1",
- "@typescript-eslint/visitor-keys": "5.60.1"
+ "@typescript-eslint/types": "6.1.0",
+ "@typescript-eslint/visitor-keys": "6.1.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
@@ -2936,25 +2435,25 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz",
- "integrity": "sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz",
+ "integrity": "sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.60.1",
- "@typescript-eslint/utils": "5.60.1",
+ "@typescript-eslint/typescript-estree": "6.1.0",
+ "@typescript-eslint/utils": "6.1.0",
"debug": "^4.3.4",
- "tsutils": "^3.21.0"
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "*"
+ "eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -2963,12 +2462,12 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.1.tgz",
- "integrity": "sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.1.0.tgz",
+ "integrity": "sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==",
"dev": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
@@ -2976,21 +2475,21 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz",
- "integrity": "sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz",
+ "integrity": "sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.60.1",
- "@typescript-eslint/visitor-keys": "5.60.1",
+ "@typescript-eslint/types": "6.1.0",
+ "@typescript-eslint/visitor-keys": "6.1.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
@@ -3002,43 +2501,72 @@
}
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.1.tgz",
- "integrity": "sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.60.1",
- "@typescript-eslint/types": "5.60.1",
- "@typescript-eslint/typescript-estree": "5.60.1",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.1.0.tgz",
+ "integrity": "sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.1.0",
+ "@typescript-eslint/types": "6.1.0",
+ "@typescript-eslint/typescript-estree": "6.1.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.60.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz",
- "integrity": "sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz",
+ "integrity": "sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.60.1",
- "eslint-visitor-keys": "^3.3.0"
+ "@typescript-eslint/types": "6.1.0",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
@@ -3080,9 +2608,9 @@
}
},
"node_modules/acorn": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
- "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
+ "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -3262,18 +2790,6 @@
"node": ">= 8"
}
},
- "node_modules/append-transform": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
- "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
- "dev": true,
- "dependencies": {
- "default-require-extensions": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/arch": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
@@ -3424,6 +2940,26 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz",
+ "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==",
+ "dev": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -3447,15 +2983,6 @@
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
- "node_modules/async-hook-domain": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-2.0.4.tgz",
- "integrity": "sha512-14LjCmlK1PK8eDtTezR6WX8TMaYNIzBIsd2D1sGoGjgx0BuNMMoSdk7i/drlbtamy0AWv9yv2tkB+ASdmeqFIw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -3553,6 +3080,15 @@
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
"dev": true
},
+ "node_modules/big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/bin-check": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz",
@@ -3717,9 +3253,9 @@
}
},
"node_modules/bin-version-check/node_modules/semver": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3740,15 +3276,6 @@
"node": ">=8"
}
},
- "node_modules/bind-obj-methods": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-3.0.0.tgz",
- "integrity": "sha512-nLEaaz3/sEzNSyPWRsN9HNsqwk1AUyECtGj+XwGdIi3xABnEqecvXtIJ0wehQXuuER5uZ/5fTs2usONgYjG+iw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/bl": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
@@ -3840,6 +3367,18 @@
"integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
"dev": true
},
+ "node_modules/bplist-parser": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+ "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+ "dev": true,
+ "dependencies": {
+ "big-integer": "^1.6.44"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -3867,38 +3406,6 @@
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
"dev": true
},
- "node_modules/browserslist": {
- "version": "4.21.9",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
- "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
@@ -3927,12 +3434,6 @@
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
},
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
"node_modules/builtin-modules": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
@@ -3945,6 +3446,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/bundle-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
+ "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
+ "dev": true,
+ "dependencies": {
+ "run-applescript": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -3954,114 +3470,6 @@
"node": ">= 0.8"
}
},
- "node_modules/c8": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz",
- "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==",
- "dev": true,
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@istanbuljs/schema": "^0.1.3",
- "find-up": "^5.0.0",
- "foreground-child": "^2.0.0",
- "istanbul-lib-coverage": "^3.2.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-reports": "^3.1.4",
- "rimraf": "^3.0.2",
- "test-exclude": "^6.0.0",
- "v8-to-istanbul": "^9.0.0",
- "yargs": "^16.2.0",
- "yargs-parser": "^20.2.9"
- },
- "bin": {
- "c8": "bin/c8.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/c8/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/c8/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/c8/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/c8/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/c8/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/c8/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
@@ -4104,21 +3512,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/caching-transform": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
- "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
- "dev": true,
- "dependencies": {
- "hasha": "^5.0.0",
- "make-dir": "^3.0.0",
- "package-hash": "^4.0.0",
- "write-file-atomic": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@@ -4186,26 +3579,6 @@
"node": ">=8"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001509",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz",
- "integrity": "sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
"node_modules/capital-case": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
@@ -4449,14 +3822,17 @@
}
},
"node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
"dependencies": {
"string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
+ "strip-ansi": "^6.0.1",
"wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/cliui/node_modules/emoji-regex": {
@@ -4525,15 +3901,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "dev": true,
- "bin": {
- "color-support": "bin.js"
- }
- },
"node_modules/colorette": {
"version": "2.0.20",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
@@ -4560,12 +3927,6 @@
"node": ">= 10"
}
},
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
"node_modules/compare-func": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
@@ -4576,12 +3937,6 @@
"dot-prop": "^5.1.0"
}
},
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
- },
"node_modules/compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
@@ -4749,9 +4104,9 @@
}
},
"node_modules/conventional-changelog-writer": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.0.tgz",
- "integrity": "sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz",
+ "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==",
"dev": true,
"dependencies": {
"conventional-commits-filter": "^3.0.0",
@@ -4759,7 +4114,7 @@
"handlebars": "^4.7.7",
"json-stringify-safe": "^5.0.1",
"meow": "^8.1.2",
- "semver": "^6.3.0",
+ "semver": "^7.0.0",
"split": "^1.0.1"
},
"bin": {
@@ -4769,15 +4124,6 @@
"node": ">=14"
}
},
- "node_modules/conventional-changelog-writer/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/conventional-commits-filter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz",
@@ -4811,12 +4157,6 @@
"node": ">=10"
}
},
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
- },
"node_modules/cookie": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
@@ -5136,28 +4476,148 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
- "node_modules/default-require-extensions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz",
- "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==",
+ "node_modules/default-browser": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
+ "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
"dev": true,
"dependencies": {
- "strip-bom": "^4.0.0"
+ "bundle-name": "^3.0.0",
+ "default-browser-id": "^3.0.0",
+ "execa": "^7.1.1",
+ "titleize": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/default-require-extensions/node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "node_modules/default-browser-id": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
+ "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
+ "dev": true,
+ "dependencies": {
+ "bplist-parser": "^0.2.0",
+ "untildify": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/execa": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/default-browser/node_modules/human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/default-browser/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/defaults": {
@@ -5181,6 +4641,18 @@
"node": ">=10"
}
},
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/define-properties": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
@@ -5341,9 +4813,9 @@
}
},
"node_modules/dompurify": {
- "version": "2.4.5",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.5.tgz",
- "integrity": "sha512-jggCCd+8Iqp4Tsz0nIvpcb22InKEBrGz5dw3EQJMs8HPJDsKbFIO3STYtAvCfDx26Muevn1MHVI0XxjgFfmiSA==",
+ "version": "2.4.7",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz",
+ "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==",
"dev": true
},
"node_modules/dot-case": {
@@ -5388,6 +4860,12 @@
"readable-stream": "^2.0.2"
}
},
+ "node_modules/duplexer2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/duplexer2/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -5469,12 +4947,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/electron-to-chromium": {
- "version": "1.4.447",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.447.tgz",
- "integrity": "sha512-sxX0LXh+uL41hSJsujAN86PjhrV/6c79XmpY0TvjZStV6VxIgarf8SRkUoUTuYmFcZQTemsoqo8qXOGw5npWfw==",
- "dev": true
- },
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -5698,18 +5170,19 @@
}
},
"node_modules/es-abstract": {
- "version": "1.21.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
- "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz",
+ "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==",
"dev": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.1",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.0",
+ "get-intrinsic": "^1.2.1",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
@@ -5729,14 +5202,18 @@
"object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.4.3",
+ "regexp.prototype.flags": "^1.5.0",
+ "safe-array-concat": "^1.0.0",
"safe-regex-test": "^1.0.0",
"string.prototype.trim": "^1.2.7",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
"typed-array-length": "^1.0.4",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.9"
+ "which-typed-array": "^1.1.10"
},
"engines": {
"node": ">= 0.4"
@@ -5785,12 +5262,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
- },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -5838,15 +5309,6 @@
"source-map": "~0.6.1"
}
},
- "node_modules/escodegen/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/escodegen/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -5858,9 +5320,9 @@
}
},
"node_modules/eslint": {
- "version": "8.44.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz",
- "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==",
+ "version": "8.45.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz",
+ "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
@@ -5888,7 +5350,6 @@
"globals": "^13.19.0",
"graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
@@ -5900,7 +5361,6 @@
"natural-compare": "^1.4.0",
"optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"bin": {
@@ -5914,9 +5374,9 @@
}
},
"node_modules/eslint-config-conventions": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-conventions/-/eslint-config-conventions-10.0.0.tgz",
- "integrity": "sha512-X18p1/POZeYHTg05DnJYaLUSKcg/UtSSE2fL3lJfUCs2iice+bTPF6q1eHZZJUn5EQZ6oWh/x5Wx6aoZFahKeg==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-conventions/-/eslint-config-conventions-11.0.1.tgz",
+ "integrity": "sha512-Q64CuntM0w2eh5CjtEG0GuomdzxuGo+UIKlRAZDCQWAxfCteD6LUEIV+DAtfDOl3xTvDySCEh9Q7kOOkYMiuCA==",
"dev": true,
"engines": {
"node": ">=16.0.0",
@@ -5926,7 +5386,7 @@
"eslint": "^8.44.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-promise": "^6.1.1",
- "eslint-plugin-unicorn": "^47.0.0"
+ "eslint-plugin-unicorn": "^48.0.0"
}
},
"node_modules/eslint-config-prettier": {
@@ -6038,30 +5498,38 @@
}
},
"node_modules/eslint-plugin-import/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/eslint-plugin-prettier": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
- "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz",
+ "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==",
"dev": true,
"dependencies": {
- "prettier-linter-helpers": "^1.0.0"
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.5"
},
"engines": {
- "node": ">=12.0.0"
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/prettier"
},
"peerDependencies": {
- "eslint": ">=7.28.0",
- "prettier": ">=2.0.0"
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "prettier": ">=3.0.0"
},
"peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
"eslint-config-prettier": {
"optional": true
}
@@ -6080,12 +5548,12 @@
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "47.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz",
- "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==",
+ "version": "48.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.0.tgz",
+ "integrity": "sha512-8fk/v3p1ro34JSVDBEmtOq6EEQRpMR0iTir79q69KnXFZ6DJyPkT3RAi+ZoTqhQMdDSpGh8BGR68ne1sP5cnAA==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/helper-validator-identifier": "^7.22.5",
"@eslint-community/eslint-utils": "^4.4.0",
"ci-info": "^3.8.0",
"clean-regexp": "^1.0.0",
@@ -6096,10 +5564,9 @@
"lodash": "^4.17.21",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
+ "regexp-tree": "^0.1.27",
"regjsparser": "^0.10.0",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.8",
+ "semver": "^7.5.4",
"strip-indent": "^3.0.0"
},
"engines": {
@@ -6109,20 +5576,38 @@
"url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
"peerDependencies": {
- "eslint": ">=8.38.0"
+ "eslint": ">=8.44.0"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz",
+ "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-visitor-keys": {
@@ -6153,31 +5638,6 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
- "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -6185,9 +5645,9 @@
"dev": true
},
"node_modules/espree": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz",
- "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"dependencies": {
"acorn": "^8.9.0",
@@ -6226,15 +5686,6 @@
"node": ">=0.10"
}
},
- "node_modules/esquery/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/esrecurse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
@@ -6247,7 +5698,7 @@
"node": ">=4.0"
}
},
- "node_modules/esrecurse/node_modules/estraverse": {
+ "node_modules/estraverse": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
@@ -6256,15 +5707,6 @@
"node": ">=4.0"
}
},
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -6299,12 +5741,6 @@
"node": ">=0.8.x"
}
},
- "node_modules/events-to-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz",
- "integrity": "sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==",
- "dev": true
- },
"node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -6488,9 +5924,9 @@
"dev": true
},
"node_modules/fast-glob": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz",
- "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -6562,9 +5998,9 @@
"integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg=="
},
"node_modules/fastify": {
- "version": "4.19.1",
- "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.19.1.tgz",
- "integrity": "sha512-99r7xae02BUWI1H8exJidkFJXi/SUZpO18YIJ6SSWIB1bb5CN659ga0iB85oLD+C4D9LeTOKplOJ1/YcFsK7oQ==",
+ "version": "4.20.0",
+ "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.20.0.tgz",
+ "integrity": "sha512-zWWi5KGAb1YZ6fyrnFnA1CA1EZHkGM6YuELgB3QpS3l4lLRy14W1cc16b4KGPH/zQ98WCSdS+T41JkHY3eq1oA==",
"dependencies": {
"@fastify/ajv-compiler": "^3.5.0",
"@fastify/error": "^3.2.0",
@@ -6585,9 +6021,9 @@
}
},
"node_modules/fastify-plugin": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.0.tgz",
- "integrity": "sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg=="
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz",
+ "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ=="
},
"node_modules/fastq": {
"version": "1.15.0",
@@ -6751,23 +6187,6 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
"node_modules/find-my-way": {
"version": "7.6.2",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.6.2.tgz",
@@ -6812,12 +6231,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/findit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz",
- "integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==",
- "dev": true
- },
"node_modules/findup-sync": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz",
@@ -6962,16 +6375,31 @@
}
},
"node_modules/foreground-child": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
- "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.0",
- "signal-exit": "^3.0.2"
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/foreground-child/node_modules/signal-exit": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
+ "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/form-data": {
@@ -7014,6 +6442,12 @@
"readable-stream": "^2.0.0"
}
},
+ "node_modules/from2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/from2/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -7044,32 +6478,6 @@
"safe-buffer": "~5.1.0"
}
},
- "node_modules/fromentries": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
- "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/fs-exists-cached": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz",
- "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==",
- "dev": true
- },
"node_modules/fs-extra": {
"version": "11.1.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
@@ -7108,12 +6516,6 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
- "node_modules/function-loop": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-2.0.1.tgz",
- "integrity": "sha512-ktIR+O6i/4h+j/ZhZJNdzeI4i9lEPeEK6UPR2EVyTVBqOwcU3Za9xYKLH64ZR9HmcROyRrOkizNyjjtWJzDDkQ==",
- "dev": true
- },
"node_modules/function.prototype.name": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
@@ -7141,15 +6543,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -7174,15 +6567,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/get-stream": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
@@ -7225,6 +6609,12 @@
"traverse": "~0.6.6"
}
},
+ "node_modules/git-log-parser/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/git-log-parser/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -7489,12 +6879,6 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true
- },
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
@@ -7619,31 +7003,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hasha": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
- "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
- "dev": true,
- "dependencies": {
- "is-stream": "^2.0.0",
- "type-fest": "^0.8.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/hasha/node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/header-case": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
@@ -7662,6 +7021,14 @@
"node": ">=16.0.0"
}
},
+ "node_modules/hexoid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
+ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@@ -7710,12 +7077,6 @@
"node": ">=12"
}
},
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
"node_modules/http-cache-semantics": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
@@ -8258,6 +7619,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -8291,6 +7667,24 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-interactive": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz",
@@ -8485,16 +7879,12 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "which-typed-array": "^1.1.11"
},
"engines": {
"node": ">= 0.4"
@@ -8503,12 +7893,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
"node_modules/is-unc-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
@@ -8554,10 +7938,37 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-wsl/node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"dev": true
},
"node_modules/isbinaryfile": {
@@ -8603,175 +8014,22 @@
"node": ">=10.13"
}
},
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-hook": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
- "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
- "dev": true,
- "dependencies": {
- "append-transform": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
- "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.7.5",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-processinfo": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz",
- "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==",
- "dev": true,
- "dependencies": {
- "archy": "^1.0.0",
- "cross-spawn": "^7.0.3",
- "istanbul-lib-coverage": "^3.2.0",
- "p-map": "^3.0.0",
- "rimraf": "^3.0.0",
- "uuid": "^8.3.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-processinfo/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/istanbul-lib-processinfo/node_modules/p-map": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
- "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
- "dev": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-processinfo/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jackspeak": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.2.tgz",
- "integrity": "sha512-GHeGTmnuaHnvS+ZctRB01bfxARuu9wW83ENbuiweu07SFcVlZrJpcshSre/keGT7YGBhLHg/+rXCNSrsEHKU4Q==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz",
+ "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==",
"dev": true,
"dependencies": {
- "cliui": "^7.0.4"
+ "@isaacs/cliui": "^8.0.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/jake": {
@@ -8927,15 +8185,15 @@
"dev": true
},
"node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
"bin": {
"json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
}
},
"node_modules/jsonfile": {
@@ -8976,9 +8234,9 @@
}
},
"node_modules/jsonwebtoken": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
- "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz",
+ "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==",
"dependencies": {
"jws": "^3.2.2",
"lodash": "^4.17.21",
@@ -9016,9 +8274,9 @@
}
},
"node_modules/keyv": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
- "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
+ "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
"dev": true,
"dependencies": {
"json-buffer": "3.0.1"
@@ -9046,42 +8304,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/libtap": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.1.tgz",
- "integrity": "sha512-S9v19shLTigoMn3c02V7LZ4t09zxmVP3r3RbEAwuHFYeKgF+ESFJxoQ0PMFKW4XdgQhcjVBEwDoopG6WROq/gw==",
- "dev": true,
- "dependencies": {
- "async-hook-domain": "^2.0.4",
- "bind-obj-methods": "^3.0.0",
- "diff": "^4.0.2",
- "function-loop": "^2.0.1",
- "minipass": "^3.1.5",
- "own-or": "^1.0.0",
- "own-or-env": "^1.0.2",
- "signal-exit": "^3.0.4",
- "stack-utils": "^2.0.4",
- "tap-parser": "^11.0.0",
- "tap-yaml": "^1.0.0",
- "tcompare": "^5.0.6",
- "trivial-deferred": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/libtap/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
"node_modules/liftoff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz",
@@ -9463,12 +8685,6 @@
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
"dev": true
},
- "node_modules/lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
@@ -9683,9 +8899,9 @@
}
},
"node_modules/maildev": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/maildev/-/maildev-2.0.5.tgz",
- "integrity": "sha512-iwBss8fIQuQ8ycgszp7+T1+SjDobnwzLgjSwMcFoW0uJYNHfwQQeuC4+XL7/BH+uju5PeBtwzODuCJqScbnf6g==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/maildev/-/maildev-2.1.0.tgz",
+ "integrity": "sha512-lCgcUbKENKui3IXo9Jb3ToD0ia23izb0NRWT+Y9Z7534gS2/t2VScbcZwm3i3BGcNSKs0aYXswX7eH2JYEDkVg==",
"dev": true,
"dependencies": {
"addressparser": "1.0.1",
@@ -9701,7 +8917,7 @@
"nodemailer": "^6.7.2",
"rimraf": "^3.0.2",
"smtp-server": "3.11.0",
- "socket.io": "4.4.1",
+ "socket.io": "4.6.0",
"uue": "3.1.2"
},
"bin": {
@@ -9730,9 +8946,9 @@
}
},
"node_modules/maildev/node_modules/engine.io": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz",
- "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==",
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz",
+ "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==",
"dev": true,
"dependencies": {
"@types/cookie": "^0.4.1",
@@ -9744,7 +8960,7 @@
"cors": "~2.8.5",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
- "ws": "~8.2.3"
+ "ws": "~8.11.0"
},
"engines": {
"node": ">=10.0.0"
@@ -9807,46 +9023,26 @@
}
},
"node_modules/maildev/node_modules/socket.io": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz",
- "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.0.tgz",
+ "integrity": "sha512-b65bp6INPk/BMMrIgVvX12x3Q+NqlGqSlTuvKQWt0BUJ3Hyy3JangBl7fEoWZTXbOKlCqNPbQ6MbWgok/km28w==",
"dev": true,
"dependencies": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.3.2",
- "engine.io": "~6.1.0",
- "socket.io-adapter": "~2.3.3",
- "socket.io-parser": "~4.0.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/maildev/node_modules/socket.io-adapter": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz",
- "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==",
- "dev": true
- },
- "node_modules/maildev/node_modules/socket.io-parser": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz",
- "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==",
- "dev": true,
- "dependencies": {
- "@types/component-emitter": "^1.2.10",
- "component-emitter": "~1.3.0",
- "debug": "~4.3.1"
+ "engine.io": "~6.4.0",
+ "socket.io-adapter": "~2.5.2",
+ "socket.io-parser": "~4.2.1"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/maildev/node_modules/ws": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -9864,30 +9060,6 @@
}
}
},
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
@@ -10053,9 +9225,9 @@
}
},
"node_modules/marked": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.0.tgz",
- "integrity": "sha512-z3/nBe7aTI8JDszlYLk7dDVNpngjw0o1ZJtrA9kIfkkHcIF+xH7mO23aISl4WxP83elU+MFROgahqdpd05lMEQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.1.tgz",
+ "integrity": "sha512-bTmmGdEINWmOMDjnPWDxGPQ4qkDLeYorpYbEtFOXzOruTwUE671q4Guiuchn4N8h/v6NGd7916kXsm3Iz4iUSg==",
"dev": true,
"bin": {
"marked": "bin/marked.js"
@@ -10112,9 +9284,9 @@
}
},
"node_modules/marked-terminal/node_modules/type-fest": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.12.0.tgz",
- "integrity": "sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
"engines": {
"node": ">=14.16"
@@ -10309,15 +9481,12 @@
}
},
"node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz",
+ "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==",
"dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
}
},
"node_modules/mkdirp": {
@@ -10448,48 +9617,6 @@
"lodash": "^4.17.21"
}
},
- "node_modules/node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/node-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/node-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
"node_modules/node-plop": {
"version": "0.31.1",
"resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.31.1.tgz",
@@ -10515,14 +9642,14 @@
}
},
"node_modules/node-plop/node_modules/globby": {
- "version": "13.2.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.1.tgz",
- "integrity": "sha512-DPCBxctI7dN4EeIqjW2KGqgdcUMbrhJ9AzON+PlxCtvppWhubTLD4+a0GFxiym14ZvacUydTPjLPc2DlKz7EIg==",
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
+ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
"dev": true,
"dependencies": {
"dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
+ "fast-glob": "^3.3.0",
+ "ignore": "^5.2.4",
"merge2": "^1.4.1",
"slash": "^4.0.0"
},
@@ -10545,28 +9672,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/node-preload": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
- "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
- "dev": true,
- "dependencies": {
- "process-on-spawn": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
- "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
- "dev": true
- },
"node_modules/nodemailer": {
- "version": "6.9.3",
- "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.3.tgz",
- "integrity": "sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==",
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.4.tgz",
+ "integrity": "sha512-CXjQvrQZV4+6X5wP6ZIgdehJamI63MFoYFGGPtHudWym9qaEHDNdPzaj5bfMCvxG1vhAileSWW90q7nL0N36mA==",
"engines": {
"node": ">=6.0.0"
}
@@ -10608,15 +9717,17 @@
}
},
"node_modules/npm": {
- "version": "9.7.2",
- "resolved": "https://registry.npmjs.org/npm/-/npm-9.7.2.tgz",
- "integrity": "sha512-LLoOudiSURxzRxfGj+vsD+hKKv2EfxyshDOznxruIkZMouvbaF5sFm4yAwHqxS8aVaOdRl03pRmGpcrFMqMt3g==",
+ "version": "9.8.1",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-9.8.1.tgz",
+ "integrity": "sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==",
"bundleDependencies": [
"@isaacs/string-locale-compare",
"@npmcli/arborist",
"@npmcli/config",
+ "@npmcli/fs",
"@npmcli/map-workspaces",
"@npmcli/package-json",
+ "@npmcli/promise-spawn",
"@npmcli/run-script",
"abbrev",
"archy",
@@ -10682,15 +9793,17 @@
"dev": true,
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^6.2.10",
+ "@npmcli/arborist": "^6.3.0",
"@npmcli/config": "^6.2.1",
+ "@npmcli/fs": "^3.1.0",
"@npmcli/map-workspaces": "^3.0.4",
- "@npmcli/package-json": "^3.1.1",
+ "@npmcli/package-json": "^4.0.1",
+ "@npmcli/promise-spawn": "^6.0.2",
"@npmcli/run-script": "^6.0.2",
"abbrev": "^2.0.0",
"archy": "~1.0.0",
"cacache": "^17.1.3",
- "chalk": "^5.2.0",
+ "chalk": "^5.3.0",
"ci-info": "^3.8.0",
"cli-columns": "^4.0.0",
"cli-table3": "^0.6.3",
@@ -10705,18 +9818,18 @@
"is-cidr": "^4.0.2",
"json-parse-even-better-errors": "^3.0.0",
"libnpmaccess": "^7.0.2",
- "libnpmdiff": "^5.0.18",
- "libnpmexec": "^6.0.1",
- "libnpmfund": "^4.0.18",
+ "libnpmdiff": "^5.0.19",
+ "libnpmexec": "^6.0.3",
+ "libnpmfund": "^4.0.19",
"libnpmhook": "^9.0.3",
"libnpmorg": "^5.0.4",
- "libnpmpack": "^5.0.18",
- "libnpmpublish": "^7.4.0",
+ "libnpmpack": "^5.0.19",
+ "libnpmpublish": "^7.5.0",
"libnpmsearch": "^6.0.2",
"libnpmteam": "^5.0.3",
"libnpmversion": "^4.0.2",
"make-fetch-happen": "^11.1.1",
- "minimatch": "^9.0.0",
+ "minimatch": "^9.0.3",
"minipass": "^5.0.0",
"minipass-pipeline": "^1.2.4",
"ms": "^2.1.2",
@@ -10736,10 +9849,10 @@
"proc-log": "^3.0.0",
"qrcode-terminal": "^0.12.0",
"read": "^2.1.0",
- "semver": "^7.5.2",
- "sigstore": "^1.6.0",
+ "semver": "^7.5.4",
+ "sigstore": "^1.7.0",
"ssri": "^10.0.4",
- "supports-color": "^9.3.1",
+ "supports-color": "^9.4.0",
"tar": "^6.1.15",
"text-table": "~0.2.0",
"tiny-relative-date": "^1.3.0",
@@ -10852,7 +9965,7 @@
"license": "ISC"
},
"node_modules/npm/node_modules/@npmcli/arborist": {
- "version": "6.2.10",
+ "version": "6.3.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -10864,7 +9977,7 @@
"@npmcli/metavuln-calculator": "^5.0.0",
"@npmcli/name-from-folder": "^2.0.0",
"@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^3.0.0",
+ "@npmcli/package-json": "^4.0.0",
"@npmcli/query": "^3.0.0",
"@npmcli/run-script": "^6.0.0",
"bin-links": "^4.0.1",
@@ -11025,17 +10138,18 @@
}
},
"node_modules/npm/node_modules/@npmcli/package-json": {
- "version": "3.1.1",
+ "version": "4.0.1",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
"@npmcli/git": "^4.1.0",
"glob": "^10.2.2",
+ "hosted-git-info": "^6.1.1",
"json-parse-even-better-errors": "^3.0.0",
"normalize-package-data": "^5.0.0",
- "npm-normalize-package-bin": "^3.0.1",
- "proc-log": "^3.0.0"
+ "proc-log": "^3.0.0",
+ "semver": "^7.5.3"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -11101,14 +10215,13 @@
}
},
"node_modules/npm/node_modules/@sigstore/tuf": {
- "version": "1.0.0",
+ "version": "1.0.2",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
"@sigstore/protobuf-specs": "^0.1.0",
- "make-fetch-happen": "^11.0.1",
- "tuf-js": "^1.1.3"
+ "tuf-js": "^1.1.7"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -11281,7 +10394,7 @@
"license": "MIT"
},
"node_modules/npm/node_modules/bin-links": {
- "version": "4.0.1",
+ "version": "4.0.2",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -11370,7 +10483,7 @@
}
},
"node_modules/npm/node_modules/chalk": {
- "version": "5.2.0",
+ "version": "5.3.0",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -12096,12 +11209,12 @@
}
},
"node_modules/npm/node_modules/libnpmdiff": {
- "version": "5.0.18",
+ "version": "5.0.19",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^6.2.10",
+ "@npmcli/arborist": "^6.3.0",
"@npmcli/disparity-colors": "^3.0.0",
"@npmcli/installed-package-contents": "^2.0.2",
"binary-extensions": "^2.2.0",
@@ -12116,12 +11229,12 @@
}
},
"node_modules/npm/node_modules/libnpmexec": {
- "version": "6.0.1",
+ "version": "6.0.3",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^6.2.10",
+ "@npmcli/arborist": "^6.3.0",
"@npmcli/run-script": "^6.0.0",
"ci-info": "^3.7.1",
"npm-package-arg": "^10.1.0",
@@ -12138,12 +11251,12 @@
}
},
"node_modules/npm/node_modules/libnpmfund": {
- "version": "4.0.18",
+ "version": "4.0.19",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^6.2.10"
+ "@npmcli/arborist": "^6.3.0"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -12176,12 +11289,12 @@
}
},
"node_modules/npm/node_modules/libnpmpack": {
- "version": "5.0.18",
+ "version": "5.0.19",
"dev": true,
"inBundle": true,
"license": "ISC",
"dependencies": {
- "@npmcli/arborist": "^6.2.10",
+ "@npmcli/arborist": "^6.3.0",
"@npmcli/run-script": "^6.0.0",
"npm-package-arg": "^10.1.0",
"pacote": "^15.0.8"
@@ -12191,7 +11304,7 @@
}
},
"node_modules/npm/node_modules/libnpmpublish": {
- "version": "7.4.0",
+ "version": "7.5.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -12286,7 +11399,7 @@
}
},
"node_modules/npm/node_modules/minimatch": {
- "version": "9.0.1",
+ "version": "9.0.3",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -13203,7 +12316,7 @@
"optional": true
},
"node_modules/npm/node_modules/semver": {
- "version": "7.5.2",
+ "version": "7.5.4",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -13269,15 +12382,14 @@
}
},
"node_modules/npm/node_modules/sigstore": {
- "version": "1.6.0",
+ "version": "1.7.0",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"dependencies": {
"@sigstore/protobuf-specs": "^0.1.0",
- "@sigstore/tuf": "^1.0.0",
- "make-fetch-happen": "^11.0.1",
- "tuf-js": "^1.1.3"
+ "@sigstore/tuf": "^1.0.1",
+ "make-fetch-happen": "^11.0.1"
},
"bin": {
"sigstore": "bin/sigstore.js"
@@ -13432,7 +12544,7 @@
}
},
"node_modules/npm/node_modules/supports-color": {
- "version": "9.3.1",
+ "version": "9.4.0",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -13733,246 +12845,11 @@
"license": "ISC"
},
"node_modules/nwsapi": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz",
- "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==",
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",
+ "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
"dev": true
},
- "node_modules/nyc": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
- "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "caching-transform": "^4.0.0",
- "convert-source-map": "^1.7.0",
- "decamelize": "^1.2.0",
- "find-cache-dir": "^3.2.0",
- "find-up": "^4.1.0",
- "foreground-child": "^2.0.0",
- "get-package-type": "^0.1.0",
- "glob": "^7.1.6",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-hook": "^3.0.0",
- "istanbul-lib-instrument": "^4.0.0",
- "istanbul-lib-processinfo": "^2.0.2",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.0.2",
- "make-dir": "^3.0.0",
- "node-preload": "^0.2.1",
- "p-map": "^3.0.0",
- "process-on-spawn": "^1.0.0",
- "resolve-from": "^5.0.0",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^2.0.0",
- "test-exclude": "^6.0.0",
- "yargs": "^15.0.2"
- },
- "bin": {
- "nyc": "bin/nyc.js"
- },
- "engines": {
- "node": ">=8.9"
- }
- },
- "node_modules/nyc/node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "node_modules/nyc/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/nyc/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/nyc/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nyc/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/p-map": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
- "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
- "dev": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/nyc/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "node_modules/nyc/node_modules/yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "dependencies": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nyc/node_modules/yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -14128,20 +13005,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/open": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
+ "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
+ "dev": true,
+ "dependencies": {
+ "default-browser": "^4.0.0",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/openapi-types": {
"version": "12.1.3",
"resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz",
"integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="
},
- "node_modules/opener": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
- "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
- "dev": true,
- "bin": {
- "opener": "bin/opener-bin.js"
- }
- },
"node_modules/optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@@ -14273,21 +13159,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/own-or": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz",
- "integrity": "sha512-NfZr5+Tdf6MB8UI9GLvKRs4cXY8/yB0w3xtt84xFdWy8hkGjn+JFc60VhzS/hFRfbyxFcGYMTjnF4Me+RbbqrA==",
- "dev": true
- },
- "node_modules/own-or-env": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.2.tgz",
- "integrity": "sha512-NQ7v0fliWtK7Lkb+WdFqe6ky9XAzYmlkXthQrBbzlYbmFKoAYbDDcwmOm6q8kOuwSRXW8bdL5ORksploUJmWgw==",
- "dev": true,
- "dependencies": {
- "own-or": "^1.0.0"
- }
- },
"node_modules/p-cancelable": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
@@ -14466,27 +13337,12 @@
}
},
"node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true,
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-hash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
- "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "hasha": "^5.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
"node_modules/param-case": {
@@ -14642,13 +13498,13 @@
}
},
"node_modules/path-scurry": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz",
- "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"dev": true,
"dependencies": {
"lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2"
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -14666,15 +13522,6 @@
"node": "14 || >=16.14"
}
},
- "node_modules/path-scurry/node_modules/minipass": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
- "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
@@ -14847,15 +13694,6 @@
"node": ">=4"
}
},
- "node_modules/pkg-conf/node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/pkg-conf/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@@ -14865,70 +13703,6 @@
"node": ">=4"
}
},
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/plop": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/plop/-/plop-3.1.2.tgz",
@@ -14982,15 +13756,15 @@
}
},
"node_modules/prettier": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
- "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz",
+ "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==",
"dev": true,
"bin": {
- "prettier": "bin-prettier.js"
+ "prettier": "bin/prettier.cjs"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
@@ -15009,20 +13783,19 @@
}
},
"node_modules/prisma": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.16.2.tgz",
- "integrity": "sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.0.0.tgz",
+ "integrity": "sha512-KYWk83Fhi1FH59jSpavAYTt2eoMVW9YKgu8ci0kuUnt6Dup5Qy47pcB4/TLmiPAbhGrxxSz7gsSnJcCmkyPANA==",
"devOptional": true,
"hasInstallScript": true,
"dependencies": {
- "@prisma/engines": "4.16.2"
+ "@prisma/engines": "5.0.0"
},
"bin": {
- "prisma": "build/index.js",
- "prisma2": "build/index.js"
+ "prisma": "build/index.js"
},
"engines": {
- "node": ">=14.17"
+ "node": ">=16.13"
}
},
"node_modules/process": {
@@ -15039,18 +13812,6 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
- "node_modules/process-on-spawn": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
- "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
- "dev": true,
- "dependencies": {
- "fromentries": "^1.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/process-warning": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz",
@@ -15350,6 +14111,15 @@
"node": ">=8"
}
},
+ "node_modules/read-pkg-up/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/read-pkg-up/node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -15375,9 +14145,9 @@
}
},
"node_modules/read-pkg-up/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
"bin": {
"semver": "bin/semver"
@@ -15460,9 +14230,9 @@
}
},
"node_modules/read-pkg/node_modules/type-fest": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.12.0.tgz",
- "integrity": "sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"engines": {
"node": ">=14.16"
},
@@ -15471,14 +14241,15 @@
}
},
"node_modules/readable-stream": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.1.tgz",
- "integrity": "sha512-llAHX9QC25bz5RPIoTeJxPaA/hgryaldValRhVZ2fK9bzbmFiscpz8fw6iBTvJfAk1w4FC1KXQme/nO7fbKyKg==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
+ "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
"dependencies": {
"abort-controller": "^3.0.0",
"buffer": "^6.0.3",
"events": "^3.3.0",
- "process": "^0.11.10"
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -15633,18 +14404,6 @@
"jsesc": "bin/jsesc"
}
},
- "node_modules/release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "dependencies": {
- "es6-error": "^4.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -15662,12 +14421,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@@ -15805,33 +14558,17 @@
"balanced-match": "^1.0.0"
}
},
- "node_modules/rimraf/node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/rimraf/node_modules/glob": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.1.tgz",
- "integrity": "sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==",
+ "version": "10.3.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz",
+ "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^2.0.3",
"minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2",
- "path-scurry": "^1.10.0"
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
},
"bin": {
"glob": "dist/cjs/src/bin.js"
@@ -15843,28 +14580,10 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/rimraf/node_modules/jackspeak": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz",
- "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
"node_modules/rimraf/node_modules/minimatch": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz",
- "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==",
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
@@ -15876,25 +14595,19 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/rimraf/node_modules/minipass": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
- "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
+ "node_modules/run-applescript": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
+ "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
"dev": true,
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
"engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/rimraf/node_modules/signal-exit": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
- "dev": true,
- "engines": {
- "node": ">=14"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/run-async": {
@@ -15938,6 +14651,24 @@
"tslib": "^2.1.0"
}
},
+ "node_modules/safe-array-concat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz",
+ "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -15957,15 +14688,6 @@
}
]
},
- "node_modules/safe-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
- "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
- "dev": true,
- "dependencies": {
- "regexp-tree": "~0.1.1"
- }
- },
"node_modules/safe-regex-test": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
@@ -16020,9 +14742,9 @@
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="
},
"node_modules/semantic-release": {
- "version": "21.0.6",
- "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.6.tgz",
- "integrity": "sha512-NDyosObAwUNzPpdf+mpL49Xy+5iYHjdWM34LBNdbdYv9vBLbw+eCCDihxcqPh+f9m4ZzlBrYCkHUaZv2vPGW9A==",
+ "version": "21.0.7",
+ "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.7.tgz",
+ "integrity": "sha512-peRDSXN+hF8EFSKzze90ff/EnAmgITHQ/a3SZpRV3479ny0BIZWEJ33uX6/GlOSKdaSxo9hVRDyv2/u2MuF+Bw==",
"dev": true,
"dependencies": {
"@semantic-release/commit-analyzer": "^10.0.0",
@@ -16047,7 +14769,7 @@
"micromatch": "^4.0.2",
"p-each-series": "^3.0.0",
"p-reduce": "^3.0.0",
- "read-pkg-up": "^9.1.0",
+ "read-pkg-up": "^10.0.0",
"resolve-from": "^5.0.0",
"semver": "^7.3.2",
"semver-diff": "^4.0.0",
@@ -16342,36 +15064,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/semantic-release/node_modules/read-pkg": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
- "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^2.0.0"
- },
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/semantic-release/node_modules/read-pkg-up": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
- "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.0.0.tgz",
+ "integrity": "sha512-jgmKiS//w2Zs+YbX039CorlkOp8FIVbSAN8r8GJHDsGlmNPXo+VeHkqAwCiQVTTx5/LwLZTcEw59z3DvcLbr0g==",
"dev": true,
"dependencies": {
"find-up": "^6.3.0",
- "read-pkg": "^7.1.0",
- "type-fest": "^2.5.0"
+ "read-pkg": "^8.0.0",
+ "type-fest": "^3.12.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -16390,12 +15094,12 @@
}
},
"node_modules/semantic-release/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
"engines": {
- "node": ">=12.20"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -16546,12 +15250,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
"node_modules/set-cookie-parser": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
@@ -16895,25 +15593,6 @@
"node": ">= 8"
}
},
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/spawn-command": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz",
@@ -16926,58 +15605,6 @@
"integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==",
"dev": true
},
- "node_modules/spawn-wrap": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
- "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^2.0.0",
- "is-windows": "^1.0.2",
- "make-dir": "^3.0.0",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.2",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/spawn-wrap/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/spawn-wrap/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/spdx-correct": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
@@ -17041,33 +15668,6 @@
"node": ">= 6"
}
},
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
@@ -17101,6 +15701,12 @@
"readable-stream": "^2.0.2"
}
},
+ "node_modules/stream-combiner2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/stream-combiner2/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -17143,7 +15749,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
"dependencies": {
"safe-buffer": "~5.2.0"
}
@@ -17423,2117 +16028,39 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true
},
- "node_modules/tap": {
- "version": "16.3.7",
- "resolved": "https://registry.npmjs.org/tap/-/tap-16.3.7.tgz",
- "integrity": "sha512-AaovVsfXVKcIf9eD1NxgwIqSDz5LauvybTpS6bjAKVYqz3+iavHC1abwxTkXmswb2n7eq8qKLt8DvY3D6iWcYA==",
- "bundleDependencies": [
- "ink",
- "treport",
- "@types/react",
- "@isaacs/import-jsx",
- "react"
- ],
+ "node_modules/synckit": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz",
+ "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==",
"dev": true,
"dependencies": {
- "@isaacs/import-jsx": "^4.0.1",
- "@types/react": "^17.0.52",
- "chokidar": "^3.3.0",
- "findit": "^2.0.0",
- "foreground-child": "^2.0.0",
- "fs-exists-cached": "^1.0.0",
- "glob": "^7.2.3",
- "ink": "^3.2.0",
- "isexe": "^2.0.0",
- "istanbul-lib-processinfo": "^2.0.3",
- "jackspeak": "^1.4.2",
- "libtap": "^1.4.0",
- "minipass": "^3.3.4",
- "mkdirp": "^1.0.4",
- "nyc": "^15.1.0",
- "opener": "^1.5.1",
- "react": "^17.0.2",
- "rimraf": "^3.0.0",
- "signal-exit": "^3.0.6",
- "source-map-support": "^0.5.16",
- "tap-mocha-reporter": "^5.0.3",
- "tap-parser": "^11.0.2",
- "tap-yaml": "^1.0.2",
- "tcompare": "^5.0.7",
- "treport": "^3.0.4",
- "which": "^2.0.2"
- },
- "bin": {
- "tap": "bin/run.js"
+ "@pkgr/utils": "^2.3.1",
+ "tslib": "^2.5.0"
},
"engines": {
- "node": ">=12"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "peerDependencies": {
- "coveralls": "^3.1.1",
- "flow-remove-types": ">=2.112.0",
- "ts-node": ">=8.5.2",
- "typescript": ">=3.7.2"
- },
- "peerDependenciesMeta": {
- "coveralls": {
- "optional": true
- },
- "flow-remove-types": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/tap-mocha-reporter": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.3.tgz",
- "integrity": "sha512-6zlGkaV4J+XMRFkN0X+yuw6xHbE9jyCZ3WUKfw4KxMyRGOpYSRuuQTRJyWX88WWuLdVTuFbxzwXhXuS2XE6o0g==",
- "dev": true,
- "dependencies": {
- "color-support": "^1.1.0",
- "debug": "^4.1.1",
- "diff": "^4.0.1",
- "escape-string-regexp": "^2.0.0",
- "glob": "^7.0.5",
- "tap-parser": "^11.0.0",
- "tap-yaml": "^1.0.0",
- "unicode-length": "^2.0.2"
- },
- "bin": {
- "tap-mocha-reporter": "index.js"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tap-mocha-reporter/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/tap-mocha-reporter/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap-mocha-reporter/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tap-parser": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.2.tgz",
- "integrity": "sha512-6qGlC956rcORw+fg7Fv1iCRAY8/bU9UabUAhs3mXRH6eRmVZcNPLheSXCYaVaYeSwx5xa/1HXZb1537YSvwDZg==",
- "dev": true,
- "dependencies": {
- "events-to-array": "^1.0.1",
- "minipass": "^3.1.6",
- "tap-yaml": "^1.0.0"
- },
- "bin": {
- "tap-parser": "bin/cmd.js"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tap-yaml": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.2.tgz",
- "integrity": "sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==",
- "dev": true,
- "dependencies": {
- "yaml": "^1.10.2"
- }
- },
- "node_modules/tap-yaml/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/tap/node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/tap/node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/highlight": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/compat-data": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/core": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helpers": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/tap/node_modules/@babel/generator": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-module-transforms": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/helpers": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/highlight": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/parser": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/tap/node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.20.7",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.20.5",
- "@babel/helper-compilation-targets": "^7.20.7",
- "@babel/helper-plugin-utils": "^7.20.2",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.20.7"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/tap/node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/tap/node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/tap/node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/tap/node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/tap/node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/tap/node_modules/@babel/template": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/traverse": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@babel/types": {
- "version": "7.22.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/@isaacs/import-jsx": {
- "version": "4.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.5.5",
- "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
- "@babel/plugin-transform-destructuring": "^7.5.0",
- "@babel/plugin-transform-react-jsx": "^7.3.0",
- "caller-path": "^3.0.1",
- "find-cache-dir": "^3.2.0",
- "make-dir": "^3.0.2",
- "resolve-from": "^3.0.0",
- "rimraf": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tap/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/tap/node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/tap/node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/tap/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "node_modules/tap/node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@types/prop-types": {
- "version": "15.7.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@types/react": {
- "version": "17.0.62",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/tap/node_modules/@types/scheduler": {
- "version": "0.16.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/@types/yoga-layout": {
- "version": "1.9.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/ansi-escapes": {
- "version": "4.3.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "dev": true,
- "inBundle": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/ansi-styles": {
- "version": "3.2.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/ansicolors": {
- "version": "0.3.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/astral-regex": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/auto-bind": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/balanced-match": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/tap/node_modules/browserslist": {
- "version": "4.21.9",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001503",
- "electron-to-chromium": "^1.4.431",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/tap/node_modules/caller-callsite": {
- "version": "4.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/caller-path": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "caller-callsite": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/callsites": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tap/node_modules/caniuse-lite": {
- "version": "1.0.30001506",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "inBundle": true,
- "license": "CC-BY-4.0"
- },
- "node_modules/tap/node_modules/cardinal": {
- "version": "2.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansicolors": "~0.3.2",
- "redeyed": "~2.1.0"
- },
- "bin": {
- "cdl": "bin/cdl.js"
- }
- },
- "node_modules/tap/node_modules/chalk": {
- "version": "2.4.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/ci-info": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/cli-boxes": {
- "version": "2.2.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/cli-cursor": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/cli-truncate": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "slice-ansi": "^3.0.0",
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/code-excerpt": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "convert-to-spaces": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tap/node_modules/color-convert": {
- "version": "1.9.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/tap/node_modules/color-name": {
- "version": "1.1.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/commondir": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/concat-map": {
- "version": "0.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/convert-source-map": {
- "version": "1.9.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/convert-to-spaces": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/tap/node_modules/csstype": {
- "version": "3.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/debug": {
- "version": "4.3.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/tap/node_modules/electron-to-chromium": {
- "version": "1.4.438",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/emoji-regex": {
- "version": "8.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/escalade": {
- "version": "3.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tap/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/tap/node_modules/esprima": {
- "version": "4.0.1",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/events-to-array": {
- "version": "1.1.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/find-cache-dir": {
- "version": "3.3.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
- "node_modules/tap/node_modules/find-up": {
- "version": "4.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/fs.realpath": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/tap/node_modules/glob": {
- "version": "7.2.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tap/node_modules/globals": {
- "version": "11.12.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/has-flag": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/indent-string": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/inflight": {
- "version": "1.0.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/tap/node_modules/inherits": {
- "version": "2.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/ink": {
- "version": "3.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "auto-bind": "4.0.0",
- "chalk": "^4.1.0",
- "cli-boxes": "^2.2.0",
- "cli-cursor": "^3.1.0",
- "cli-truncate": "^2.1.0",
- "code-excerpt": "^3.0.0",
- "indent-string": "^4.0.0",
- "is-ci": "^2.0.0",
- "lodash": "^4.17.20",
- "patch-console": "^1.0.0",
- "react-devtools-core": "^4.19.1",
- "react-reconciler": "^0.26.2",
- "scheduler": "^0.20.2",
- "signal-exit": "^3.0.2",
- "slice-ansi": "^3.0.0",
- "stack-utils": "^2.0.2",
- "string-width": "^4.2.2",
- "type-fest": "^0.12.0",
- "widest-line": "^3.1.0",
- "wrap-ansi": "^6.2.0",
- "ws": "^7.5.5",
- "yoga-layout-prebuilt": "^1.9.6"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": ">=16.8.0",
- "react": ">=16.8.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/tap/node_modules/ink/node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/tap/node_modules/ink/node_modules/chalk": {
- "version": "4.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/tap/node_modules/ink/node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/tap/node_modules/ink/node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/ink/node_modules/has-flag": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/ink/node_modules/supports-color": {
- "version": "7.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/is-ci": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ci-info": "^2.0.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
- "node_modules/tap/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/js-tokens": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/jsesc": {
- "version": "2.5.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/json5": {
- "version": "2.2.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tap/node_modules/locate-path": {
- "version": "5.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/lodash": {
- "version": "4.17.21",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/loose-envify": {
- "version": "1.4.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/tap/node_modules/lru-cache": {
- "version": "5.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/tap/node_modules/make-dir": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/mimic-fn": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tap/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tap/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/minipass/node_modules/yallist": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/ms": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/node-releases": {
- "version": "2.0.12",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/object-assign": {
- "version": "4.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/tap/node_modules/once": {
- "version": "1.4.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/tap/node_modules/onetime": {
- "version": "5.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/p-limit": {
- "version": "2.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/p-locate": {
- "version": "4.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/p-try": {
- "version": "2.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tap/node_modules/patch-console": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tap/node_modules/path-exists": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/path-is-absolute": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/tap/node_modules/picocolors": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/pkg-dir": {
- "version": "4.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/punycode": {
- "version": "2.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tap/node_modules/react": {
- "version": "17.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/tap/node_modules/react-devtools-core": {
- "version": "4.27.8",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "shell-quote": "^1.6.1",
- "ws": "^7"
- }
- },
- "node_modules/tap/node_modules/react-reconciler": {
- "version": "0.26.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "peerDependencies": {
- "react": "^17.0.2"
- }
- },
- "node_modules/tap/node_modules/redeyed": {
- "version": "2.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "esprima": "~4.0.0"
- }
- },
- "node_modules/tap/node_modules/resolve-from": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/restore-cursor": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/rimraf": {
- "version": "3.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tap/node_modules/scheduler": {
- "version": "0.20.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
- "node_modules/tap/node_modules/semver": {
- "version": "6.3.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/tap/node_modules/shell-quote": {
- "version": "1.8.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tap/node_modules/signal-exit": {
- "version": "3.0.7",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/slice-ansi": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/slice-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/tap/node_modules/slice-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/tap/node_modules/slice-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/stack-utils": {
- "version": "2.0.6",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tap/node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/string-width": {
- "version": "4.2.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/strip-ansi": {
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/supports-color": {
- "version": "5.5.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/tap-parser": {
- "version": "11.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "events-to-array": "^1.0.1",
- "minipass": "^3.1.6",
- "tap-yaml": "^1.0.0"
- },
- "bin": {
- "tap-parser": "bin/cmd.js"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tap/node_modules/tap-yaml": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yaml": "^1.10.2"
- }
- },
- "node_modules/tap/node_modules/to-fast-properties": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tap/node_modules/treport": {
- "version": "3.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@isaacs/import-jsx": "^4.0.1",
- "cardinal": "^2.1.1",
- "chalk": "^3.0.0",
- "ink": "^3.2.0",
- "ms": "^2.1.2",
- "tap-parser": "^11.0.0",
- "tap-yaml": "^1.0.0",
- "unicode-length": "^2.0.2"
- },
- "peerDependencies": {
- "react": "^17.0.2"
- }
- },
- "node_modules/tap/node_modules/treport/node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/tap/node_modules/treport/node_modules/chalk": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/treport/node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/tap/node_modules/treport/node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/treport/node_modules/has-flag": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/treport/node_modules/supports-color": {
- "version": "7.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/type-fest": {
- "version": "0.12.0",
- "dev": true,
- "inBundle": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tap/node_modules/unicode-length": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.0.0"
- }
- },
- "node_modules/tap/node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/tap/node_modules/widest-line": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "string-width": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/wrap-ansi": {
- "version": "6.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tap/node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/tap/node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/tap/node_modules/wrap-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/tap/node_modules/wrappy": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/ws": {
- "version": "7.5.9",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/tap/node_modules/yallist": {
- "version": "3.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/tap/node_modules/yaml": {
- "version": "1.10.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/tap/node_modules/yoga-layout-prebuilt": {
- "version": "1.10.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@types/yoga-layout": "1.9.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tcompare": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.7.tgz",
- "integrity": "sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==",
- "dev": true,
- "dependencies": {
- "diff": "^4.0.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tcompare/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
+ "url": "https://opencollective.com/unts"
}
},
"node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz",
+ "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
}
},
"node_modules/tempy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz",
- "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz",
+ "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==",
"dev": true,
"dependencies": {
"is-stream": "^3.0.0",
- "temp-dir": "^2.0.0",
+ "temp-dir": "^3.0.0",
"type-fest": "^2.12.2",
"unique-string": "^3.0.0"
},
@@ -19568,40 +16095,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/test-exclude/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/text-decoding": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz",
@@ -19676,6 +16169,18 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/titleize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
+ "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -19688,15 +16193,6 @@
"node": ">=0.6.0"
}
},
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -19821,13 +16317,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/trivial-deferred": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.1.2.tgz",
- "integrity": "sha512-vDPiDBC3hyP6O4JrJYMImW3nl3c03Tsj9fEXc7Qc/XKa1O7gf5ZtFfIR/E0dun9SnDHdwjna1Z2rSzYgqpxh/g==",
+ "node_modules/ts-api-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz",
+ "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==",
"dev": true,
"engines": {
- "node": ">= 8"
+ "node": ">=16.13.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
}
},
"node_modules/ts-node": {
@@ -19903,45 +16402,12 @@
"strip-bom": "^3.0.0"
}
},
- "node_modules/tsconfig-paths/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
"node_modules/tslib": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
"integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==",
"dev": true
},
- "node_modules/tsutils": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.8.1"
- },
- "engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
- }
- },
- "node_modules/tsutils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -19987,6 +16453,57 @@
"node": ">= 0.6"
}
},
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/typed-array-length": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
@@ -20001,26 +16518,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
"node_modules/typescript": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
- "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
+ "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=12.20"
+ "node": ">=14.17"
}
},
"node_modules/uc.micro": {
@@ -20066,15 +16574,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/unicode-length": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.1.0.tgz",
- "integrity": "sha512-4bV582zTV9Q02RXBxSUMiuN/KHo5w4aTojuKTNT96DIKps/SIawFp7cS5Mu25VuY1AioGXrmYyzKZUzh8OqoUw==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.0.0"
- }
- },
"node_modules/unique-string": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
@@ -20114,34 +16613,13 @@
"node": ">= 0.8"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/upper-case": {
@@ -20223,35 +16701,12 @@
"node": ">=0.8.0"
}
},
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true
},
- "node_modules/v8-to-istanbul": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
- "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
"node_modules/v8flags": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz",
@@ -20395,24 +16850,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/which-module": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
- "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
- "dev": true
- },
"node_modules/which-typed-array": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
- "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
+ "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
"dev": true,
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -20525,18 +16973,6 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
- "node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
"node_modules/ws": {
"version": "8.13.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
@@ -20631,20 +17067,6 @@
"node": ">=10"
}
},
- "node_modules/yargs/node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/yargs/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
diff --git a/package.json b/package.json
index 9b3049e..560f70e 100644
--- a/package.json
+++ b/package.json
@@ -27,10 +27,10 @@
"lint:commit": "commitlint",
"lint:editorconfig": "editorconfig-checker",
"lint:markdown": "markdownlint-cli2",
- "lint:eslint": "eslint . --ignore-path .gitignore",
- "lint:prettier": "prettier . --check --ignore-path .gitignore",
+ "lint:eslint": "eslint . --max-warnings 0 --report-unused-disable-directives --ignore-path .gitignore",
+ "lint:prettier": "prettier . --check",
"lint:staged": "lint-staged",
- "test": "cross-env NODE_ENV=test c8 tap",
+ "test": "cross-env NODE_ENV=test node --enable-source-maps --test build/",
"prisma:validate": "prisma validate",
"prisma:generate": "prisma generate",
"prisma:studio": "prisma studio --browser=none",
@@ -42,35 +42,35 @@
"dependencies": {
"@fastify/cors": "8.3.0",
"@fastify/helmet": "11.0.0",
- "@fastify/multipart": "7.7.0",
- "@fastify/rate-limit": "8.0.1",
+ "@fastify/multipart": "7.6.0",
+ "@fastify/rate-limit": "8.0.3",
"@fastify/sensible": "5.2.0",
- "@fastify/swagger": "8.6.0",
+ "@fastify/swagger": "8.8.0",
"@fastify/swagger-ui": "1.9.2",
- "@prisma/client": "4.16.2",
- "@sinclair/typebox": "0.29.0",
- "@thream/socketio-jwt": "3.1.1",
+ "@prisma/client": "5.0.0",
+ "@sinclair/typebox": "0.29.6",
+ "@thream/socketio-jwt": "3.1.2",
"axios": "1.4.0",
"bcryptjs": "2.4.3",
"dotenv": "16.3.1",
"ejs": "3.1.9",
- "fastify": "4.19.1",
- "fastify-plugin": "4.5.0",
+ "fastify": "4.20.0",
+ "fastify-plugin": "4.5.1",
"form-data": "4.0.0",
"http-errors": "2.0.0",
- "jsonwebtoken": "9.0.0",
+ "jsonwebtoken": "9.0.1",
"ms": "2.1.3",
- "nodemailer": "6.9.3",
+ "nodemailer": "6.9.4",
"read-pkg": "8.0.0",
"socket.io": "4.7.1"
},
"devDependencies": {
- "@commitlint/cli": "17.6.6",
- "@commitlint/config-conventional": "17.6.6",
+ "@commitlint/cli": "17.6.7",
+ "@commitlint/config-conventional": "17.6.7",
"@saithodev/semantic-release-backmerge": "3.2.0",
"@semantic-release/git": "10.0.1",
"@swc/cli": "0.1.62",
- "@swc/core": "1.3.67",
+ "@swc/core": "1.3.70",
"@tsconfig/strictest": "2.0.1",
"@types/bcryptjs": "2.4.2",
"@types/busboy": "1.5.0",
@@ -78,35 +78,33 @@
"@types/http-errors": "2.0.1",
"@types/jsonwebtoken": "9.0.2",
"@types/ms": "0.7.31",
- "@types/node": "20.3.3",
+ "@types/node": "20.4.3",
"@types/nodemailer": "6.4.8",
"@types/sinon": "10.0.15",
- "@types/tap": "15.0.8",
- "@typescript-eslint/eslint-plugin": "5.60.1",
- "@typescript-eslint/parser": "5.60.1",
- "c8": "8.0.0",
+ "@typescript-eslint/eslint-plugin": "6.1.0",
+ "@typescript-eslint/parser": "6.1.0",
+ "chokidar": "3.5.3",
"concurrently": "8.2.0",
"cross-env": "7.0.3",
"editorconfig-checker": "5.1.1",
- "eslint": "8.44.0",
- "eslint-config-conventions": "10.0.0",
+ "eslint": "8.45.0",
+ "eslint-config-conventions": "11.0.1",
"eslint-config-prettier": "8.8.0",
"eslint-plugin-import": "2.27.5",
- "eslint-plugin-prettier": "4.2.1",
+ "eslint-plugin-prettier": "5.0.0",
"eslint-plugin-promise": "6.1.1",
- "eslint-plugin-unicorn": "47.0.0",
+ "eslint-plugin-unicorn": "48.0.0",
"husky": "8.0.3",
"lint-staged": "13.2.3",
- "maildev": "2.0.5",
+ "maildev": "2.1.0",
"markdownlint-cli2": "0.8.1",
"markdownlint-rule-relative-links": "2.1.0",
"plop": "3.1.2",
- "prettier": "2.8.8",
- "prisma": "4.16.2",
+ "prettier": "3.0.0",
+ "prisma": "5.0.0",
"rimraf": "5.0.1",
- "semantic-release": "21.0.6",
+ "semantic-release": "21.0.7",
"sinon": "15.2.0",
- "tap": "16.3.7",
- "typescript": "5.0.4"
+ "typescript": "5.1.6"
}
}
diff --git a/src/__test__/utils/authenticateUserTest.ts b/src/__test__/utils/authenticateUserTest.ts
index 7715571..cc88da9 100644
--- a/src/__test__/utils/authenticateUserTest.ts
+++ b/src/__test__/utils/authenticateUserTest.ts
@@ -1,45 +1,46 @@
import type { User } from '@prisma/client'
import sinon from 'sinon'
-import { refreshTokenExample } from '../../models/RefreshToken.js'
-import type { UserJWT } from '../../models/User.js'
-import { userExample } from '../../models/User.js'
-import { userSettingsExample } from '../../models/UserSettings.js'
+import { refreshTokenExample } from '#src/models/RefreshToken.js'
+import type { UserJWT } from '#src/models/User.js'
+import { userExample } from '#src/models/User.js'
+import { userSettingsExample } from '#src/models/UserSettings.js'
import {
generateAccessToken,
generateRefreshToken
-} from '../../tools/utils/jwtToken.js'
-import prisma from '../../tools/database/prisma.js'
+} from '#src/tools/utils/jwtToken.js'
+import prisma from '#src/tools/database/prisma.js'
+
+const userStubValue = {
+ findUnique: async () => {
+ return userExample
+ }
+}
+const userSettingStubValue = {
+ findFirst: async () => {
+ return userSettingsExample
+ }
+}
+const oAuthStubValue = {
+ findMany: async () => {
+ return []
+ }
+}
+const refreshTokenStubValue = {
+ create: async () => {
+ return refreshTokenExample
+ }
+}
export const authenticateUserTest = async (): Promise<{
accessToken: string
refreshToken: string
user: User
- userStubValue: any
- userSettingStubValue: any
- oAuthStubValue: any
- refreshTokenStubValue: any
+ userStubValue: typeof userStubValue
+ userSettingStubValue: typeof userSettingStubValue
+ oAuthStubValue: typeof oAuthStubValue
+ refreshTokenStubValue: typeof refreshTokenStubValue
}> => {
- const userStubValue = {
- findUnique: async () => {
- return userExample
- }
- }
- const userSettingStubValue = {
- findFirst: async () => {
- return userSettingsExample
- }
- }
- const oAuthStubValue = {
- findMany: async () => {
- return []
- }
- }
- const refreshTokenStubValue = {
- create: async () => {
- return refreshTokenExample
- }
- }
sinon.stub(prisma, 'user').value(userStubValue)
sinon.stub(prisma, 'userSetting').value(userSettingStubValue)
sinon.stub(prisma, 'oAuth').value(oAuthStubValue)
diff --git a/src/application.ts b/src/application.ts
index d52c21b..5377dfc 100644
--- a/src/application.ts
+++ b/src/application.ts
@@ -8,8 +8,8 @@ import fastifyRateLimit from '@fastify/rate-limit'
import fastifySensible from '@fastify/sensible'
import { readPackage } from 'read-pkg'
-import { services } from './services/index.js'
-import fastifySocketIo from './tools/plugins/socket-io.js'
+import { services } from '#src/services/index.js'
+import fastifySocketIo from '#src/tools/plugins/socket-io.js'
dotenv.config()
const packageJSON = await readPackage()
diff --git a/src/index.ts b/src/index.ts
index a0270e0..7257b86 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,8 +1,8 @@
-import { application } from './application.js'
+import { application } from '#src/application.js'
import { HOST, PORT } from '#src/tools/configurations.js'
const address = await application.listen({
port: PORT,
host: HOST
})
-console.log('\u001B[36m%s\u001B[0m', `🚀 Server listening at ${address}`)
+console.log(`Server listening at ${address}`)
diff --git a/src/models/Channel.ts b/src/models/Channel.ts
index e8ba00a..3f57bb2 100644
--- a/src/models/Channel.ts
+++ b/src/models/Channel.ts
@@ -1,8 +1,8 @@
import { Type } from '@sinclair/typebox'
import type { Channel } from '@prisma/client'
-import { date, id } from './utils.js'
-import { guildExample } from './Guild.js'
+import { date, id } from '#src/models/utils.js'
+import { guildExample } from '#src/models/Guild.js'
export const types = [Type.Literal('text')]
diff --git a/src/models/Guild.ts b/src/models/Guild.ts
index f7b8681..46bff33 100644
--- a/src/models/Guild.ts
+++ b/src/models/Guild.ts
@@ -1,7 +1,7 @@
import type { Guild } from '@prisma/client'
import { Type } from '@sinclair/typebox'
-import { date, id } from './utils.js'
+import { date, id } from '#src/models/utils.js'
export const guildSchema = {
id,
diff --git a/src/models/Member.ts b/src/models/Member.ts
index e0f5531..d780b1f 100644
--- a/src/models/Member.ts
+++ b/src/models/Member.ts
@@ -1,9 +1,9 @@
import { Type } from '@sinclair/typebox'
import type { Member } from '@prisma/client'
-import { date, id } from './utils.js'
-import { guildExample } from './Guild.js'
-import { userExample } from './User.js'
+import { date, id } from '#src/models/utils.js'
+import { guildExample } from '#src/models/Guild.js'
+import { userExample } from '#src/models/User.js'
export const memberSchema = {
id,
diff --git a/src/models/Message.ts b/src/models/Message.ts
index 3a576a6..e43ad24 100644
--- a/src/models/Message.ts
+++ b/src/models/Message.ts
@@ -1,7 +1,7 @@
import type { Message } from '@prisma/client'
import { Type } from '@sinclair/typebox'
-import { date, id } from './utils.js'
+import { date, id } from '#src/models/utils.js'
export const types = [Type.Literal('text'), Type.Literal('file')]
diff --git a/src/models/OAuth.ts b/src/models/OAuth.ts
index e85794f..06c12c8 100644
--- a/src/models/OAuth.ts
+++ b/src/models/OAuth.ts
@@ -1,6 +1,6 @@
import { Type } from '@sinclair/typebox'
-import { date, id } from './utils.js'
+import { date, id } from '#src/models/utils.js'
export const providers = ['Google', 'GitHub', 'Discord'] as const
export const strategies = [...providers, 'Local'] as const
diff --git a/src/models/RefreshToken.ts b/src/models/RefreshToken.ts
index caf6fe0..276290d 100644
--- a/src/models/RefreshToken.ts
+++ b/src/models/RefreshToken.ts
@@ -1,8 +1,8 @@
import type { RefreshToken } from '@prisma/client'
import { Type } from '@sinclair/typebox'
-import { userExample } from './User.js'
-import { date, id } from './utils.js'
+import { userExample } from '#src/models/User.js'
+import { date, id } from '#src/models/utils.js'
export const refreshTokensSchema = {
id,
diff --git a/src/models/User.ts b/src/models/User.ts
index 57b1c60..19b12db 100644
--- a/src/models/User.ts
+++ b/src/models/User.ts
@@ -2,10 +2,10 @@ import type { User } from '@prisma/client'
import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
-import type { AuthenticationStrategy } from './OAuth.js'
-import { strategiesTypebox } from './OAuth.js'
-import { userSettingsSchema } from './UserSettings.js'
-import { date, id } from './utils.js'
+import type { AuthenticationStrategy } from '#src/models/OAuth.js'
+import { strategiesTypebox } from '#src/models/OAuth.js'
+import { userSettingsSchema } from '#src/models/UserSettings.js'
+import { date, id } from '#src/models/utils.js'
export interface UserJWT {
id: number
diff --git a/src/models/UserSettings.ts b/src/models/UserSettings.ts
index 63142b5..f72d9d2 100644
--- a/src/models/UserSettings.ts
+++ b/src/models/UserSettings.ts
@@ -2,7 +2,7 @@ import type { UserSetting } from '@prisma/client'
import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
-import { date, id } from './utils.js'
+import { date, id } from '#src/models/utils.js'
export const languages = [Type.Literal('fr'), Type.Literal('en')]
export const themes = [Type.Literal('light'), Type.Literal('dark')]
diff --git a/src/services/channels/[channelId]/__test__/delete.test.ts b/src/services/channels/[channelId]/__test__/delete.test.ts
index 6b40605..3b65595 100644
--- a/src/services/channels/[channelId]/__test__/delete.test.ts
+++ b/src/services/channels/[channelId]/__test__/delete.test.ts
@@ -1,18 +1,20 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { channelExample } from '../../../../models/Channel.js'
-import { memberExample } from '../../../../models/Member.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { channelExample } from '#src/models/Channel.js'
+import { memberExample } from '#src/models/Member.js'
-await tap.test('DELETE /channels/[channelId]', async (t) => {
+await test('DELETE /channels/[channelId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const defaultChannelId = 5
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
@@ -45,14 +47,14 @@ await tap.test('DELETE /channels/[channelId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.id, channelExample.id)
- t.equal(responseJson.name, channelExample.name)
- t.equal(responseJson.guildId, channelExample.guildId)
- t.equal(responseJson.defaultChannelId, defaultChannelId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.id, channelExample.id)
+ assert.strictEqual(responseJson.name, channelExample.name)
+ assert.strictEqual(responseJson.guildId, channelExample.guildId)
+ assert.strictEqual(responseJson.defaultChannelId, defaultChannelId)
})
- await t.test('fails if there is only one channel', async (t) => {
+ await t.test('fails if there is only one channel', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -74,10 +76,10 @@ await tap.test('DELETE /channels/[channelId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails if the channel is not found', async (t) => {
+ await t.test('fails if the channel is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -91,10 +93,10 @@ await tap.test('DELETE /channels/[channelId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not found', async (t) => {
+ await t.test('fails if the member is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -113,10 +115,10 @@ await tap.test('DELETE /channels/[channelId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not owner', async (t) => {
+ await t.test('fails if the member is not owner', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -138,6 +140,6 @@ await tap.test('DELETE /channels/[channelId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/channels/[channelId]/__test__/get.test.ts b/src/services/channels/[channelId]/__test__/get.test.ts
index 3232f1d..a1b0d39 100644
--- a/src/services/channels/[channelId]/__test__/get.test.ts
+++ b/src/services/channels/[channelId]/__test__/get.test.ts
@@ -1,18 +1,20 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { channelExample } from '../../../../models/Channel.js'
-import { memberExample } from '../../../../models/Member.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { channelExample } from '#src/models/Channel.js'
+import { memberExample } from '#src/models/Member.js'
-await tap.test('GET /channels/[channelId]', async (t) => {
+await test('GET /channels/[channelId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -32,13 +34,13 @@ await tap.test('GET /channels/[channelId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.channel.id, channelExample.id)
- t.equal(responseJson.channel.name, channelExample.name)
- t.equal(responseJson.channel.guildId, channelExample.guildId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.channel.id, channelExample.id)
+ assert.strictEqual(responseJson.channel.name, channelExample.name)
+ assert.strictEqual(responseJson.channel.guildId, channelExample.guildId)
})
- await t.test('fails with not found member', async (t) => {
+ await t.test('fails with not found member', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -58,11 +60,11 @@ await tap.test('GET /channels/[channelId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Channel not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Channel not found')
})
- await t.test('fails with not found channel', async (t) => {
+ await t.test('fails with not found channel', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -82,15 +84,15 @@ await tap.test('GET /channels/[channelId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Channel not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Channel not found')
})
- await t.test('fails with unauthenticated user', async (t) => {
+ await t.test('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: '/channels/1'
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/channels/[channelId]/__test__/put.test.ts b/src/services/channels/[channelId]/__test__/put.test.ts
index 188776f..d551d83 100644
--- a/src/services/channels/[channelId]/__test__/put.test.ts
+++ b/src/services/channels/[channelId]/__test__/put.test.ts
@@ -1,20 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { channelExample } from '../../../../models/Channel.js'
-import { memberExample } from '../../../../models/Member.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { channelExample } from '#src/models/Channel.js'
+import { memberExample } from '#src/models/Member.js'
const newName = 'new channel name'
-await tap.test('PUT /channels/[channelId]', async (t) => {
+await test('PUT /channels/[channelId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const defaultChannelId = 5
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
@@ -48,14 +50,14 @@ await tap.test('PUT /channels/[channelId]', async (t) => {
payload: { name: newName }
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.id, channelExample.id)
- t.equal(responseJson.name, newName)
- t.equal(responseJson.guildId, channelExample.guildId)
- t.equal(responseJson.defaultChannelId, defaultChannelId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.id, channelExample.id)
+ assert.strictEqual(responseJson.name, newName)
+ assert.strictEqual(responseJson.guildId, channelExample.guildId)
+ assert.strictEqual(responseJson.defaultChannelId, defaultChannelId)
})
- await t.test('fails if the channel is not found', async (t) => {
+ await t.test('fails if the channel is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -75,10 +77,10 @@ await tap.test('PUT /channels/[channelId]', async (t) => {
},
payload: { name: newName }
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not found', async (t) => {
+ await t.test('fails if the member is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -98,10 +100,10 @@ await tap.test('PUT /channels/[channelId]', async (t) => {
},
payload: { name: newName }
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not owner', async (t) => {
+ await t.test('fails if the member is not owner', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -124,6 +126,6 @@ await tap.test('PUT /channels/[channelId]', async (t) => {
},
payload: { name: newName }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/channels/[channelId]/delete.ts b/src/services/channels/[channelId]/delete.ts
index 7fbd526..b32688a 100644
--- a/src/services/channels/[channelId]/delete.ts
+++ b/src/services/channels/[channelId]/delete.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { channelSchema } from '../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { channelSchema } from '#src/models/Channel.js'
const parametersSchema = Type.Object({
channelId: channelSchema.id
@@ -48,8 +48,8 @@ export const deleteChannelService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { channelId } = request.params
+ const { user, params } = request
+ const { channelId } = params
const channelCheck = await prisma.channel.findUnique({
where: { id: channelId }
})
diff --git a/src/services/channels/[channelId]/get.ts b/src/services/channels/[channelId]/get.ts
index 5bf4907..ab255e2 100644
--- a/src/services/channels/[channelId]/get.ts
+++ b/src/services/channels/[channelId]/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { channelSchema } from '../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { channelSchema } from '#src/models/Channel.js'
const parametersSchema = Type.Object({
channelId: channelSchema.id
diff --git a/src/services/channels/[channelId]/messages/__test__/get.test.ts b/src/services/channels/[channelId]/messages/__test__/get.test.ts
index 4ed4ea6..829e1eb 100644
--- a/src/services/channels/[channelId]/messages/__test__/get.test.ts
+++ b/src/services/channels/[channelId]/messages/__test__/get.test.ts
@@ -1,20 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../application.js'
-import { authenticateUserTest } from '../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../tools/database/prisma.js'
-import { channelExample } from '../../../../../models/Channel.js'
-import { memberExample } from '../../../../../models/Member.js'
-import { userExample } from '../../../../../models/User.js'
-import { messageExample } from '../../../../../models/Message.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { channelExample } from '#src/models/Channel.js'
+import { memberExample } from '#src/models/Member.js'
+import { userExample } from '#src/models/User.js'
+import { messageExample } from '#src/models/Message.js'
-await tap.test('GET /channels/[channelId]/messages', async (t) => {
+await test('GET /channels/[channelId]/messages', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -42,19 +44,19 @@ await tap.test('GET /channels/[channelId]/messages', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.length, 1)
- t.equal(responseJson[0].id, messageExample.id)
- t.equal(responseJson[0].value, messageExample.value)
- t.equal(responseJson[0].type, messageExample.type)
- t.equal(responseJson[0].mimetype, messageExample.mimetype)
- t.equal(responseJson[0].member.id, memberExample.id)
- t.equal(responseJson[0].member.isOwner, memberExample.isOwner)
- t.equal(responseJson[0].member.user.id, userExample.id)
- t.equal(responseJson[0].member.user.name, userExample.name)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.length, 1)
+ assert.strictEqual(responseJson[0].id, messageExample.id)
+ assert.strictEqual(responseJson[0].value, messageExample.value)
+ assert.strictEqual(responseJson[0].type, messageExample.type)
+ assert.strictEqual(responseJson[0].mimetype, messageExample.mimetype)
+ assert.strictEqual(responseJson[0].member.id, memberExample.id)
+ assert.strictEqual(responseJson[0].member.isOwner, memberExample.isOwner)
+ assert.strictEqual(responseJson[0].member.user.id, userExample.id)
+ assert.strictEqual(responseJson[0].member.user.name, userExample.name)
})
- await t.test('fails with not found channel', async (t) => {
+ await t.test('fails with not found channel', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -77,11 +79,11 @@ await tap.test('GET /channels/[channelId]/messages', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Channel not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Channel not found')
})
- await t.test('fails with not found member', async (t) => {
+ await t.test('fails with not found member', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -101,15 +103,15 @@ await tap.test('GET /channels/[channelId]/messages', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Channel not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Channel not found')
})
- await t.test('fails with unauthenticated user', async (t) => {
+ await t.test('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: `/channels/1/messages`
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/channels/[channelId]/messages/__test__/post.test.ts b/src/services/channels/[channelId]/messages/__test__/post.test.ts
index 4b9cf46..4e2e891 100644
--- a/src/services/channels/[channelId]/messages/__test__/post.test.ts
+++ b/src/services/channels/[channelId]/messages/__test__/post.test.ts
@@ -1,20 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../application.js'
-import { authenticateUserTest } from '../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../tools/database/prisma.js'
-import { channelExample } from '../../../../../models/Channel.js'
-import { memberExample } from '../../../../../models/Member.js'
-import { userExample } from '../../../../../models/User.js'
-import { messageExample } from '../../../../../models/Message.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { channelExample } from '#src/models/Channel.js'
+import { memberExample } from '#src/models/Member.js'
+import { userExample } from '#src/models/User.js'
+import { messageExample } from '#src/models/Message.js'
-await tap.test('POST /channels/[channelId]/messages', async (t) => {
+await test('POST /channels/[channelId]/messages', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -43,18 +45,18 @@ await tap.test('POST /channels/[channelId]/messages', async (t) => {
payload: { value: messageExample.value }
})
const responseJson = response.json()
- t.equal(response.statusCode, 201)
- t.equal(responseJson.id, messageExample.id)
- t.equal(responseJson.value, messageExample.value)
- t.equal(responseJson.type, messageExample.type)
- t.equal(responseJson.mimetype, messageExample.mimetype)
- t.equal(responseJson.member.id, memberExample.id)
- t.equal(responseJson.member.isOwner, memberExample.isOwner)
- t.equal(responseJson.member.user.id, userExample.id)
- t.equal(responseJson.member.user.name, userExample.name)
+ assert.strictEqual(response.statusCode, 201)
+ assert.strictEqual(responseJson.id, messageExample.id)
+ assert.strictEqual(responseJson.value, messageExample.value)
+ assert.strictEqual(responseJson.type, messageExample.type)
+ assert.strictEqual(responseJson.mimetype, messageExample.mimetype)
+ assert.strictEqual(responseJson.member.id, memberExample.id)
+ assert.strictEqual(responseJson.member.isOwner, memberExample.isOwner)
+ assert.strictEqual(responseJson.member.user.id, userExample.id)
+ assert.strictEqual(responseJson.member.user.name, userExample.name)
})
- await t.test('fails with no message value', async (t) => {
+ await t.test('fails with no message value', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -77,10 +79,10 @@ await tap.test('POST /channels/[channelId]/messages', async (t) => {
},
payload: {}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with not found channel', async (t) => {
+ await t.test('fails with not found channel', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -104,11 +106,11 @@ await tap.test('POST /channels/[channelId]/messages', async (t) => {
payload: { value: messageExample.value }
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Channel not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Channel not found')
})
- await t.test('fails with not found member', async (t) => {
+ await t.test('fails with not found member', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'channel').value({
findUnique: async () => {
@@ -129,7 +131,7 @@ await tap.test('POST /channels/[channelId]/messages', async (t) => {
payload: { value: messageExample.value }
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Channel not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Channel not found')
})
})
diff --git a/src/services/channels/[channelId]/messages/get.ts b/src/services/channels/[channelId]/messages/get.ts
index cc9a42d..ac9ee19 100644
--- a/src/services/channels/[channelId]/messages/get.ts
+++ b/src/services/channels/[channelId]/messages/get.ts
@@ -2,17 +2,17 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { messageSchema } from '../../../../models/Message.js'
-import { memberSchema } from '../../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { messageSchema } from '#src/models/Message.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
import {
getPaginationOptions,
queryPaginationObjectSchema
-} from '../../../../tools/database/pagination.js'
-import { channelSchema } from '../../../../models/Channel.js'
+} from '#src/tools/database/pagination.js'
+import { channelSchema } from '#src/models/Channel.js'
type QuerySchemaType = Static
diff --git a/src/services/channels/[channelId]/messages/post.ts b/src/services/channels/[channelId]/messages/post.ts
index 3c1a1e8..d542bdd 100644
--- a/src/services/channels/[channelId]/messages/post.ts
+++ b/src/services/channels/[channelId]/messages/post.ts
@@ -2,13 +2,13 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { messageSchema } from '../../../../models/Message.js'
-import { channelSchema } from '../../../../models/Channel.js'
-import { memberSchema } from '../../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { messageSchema } from '#src/models/Message.js'
+import { channelSchema } from '#src/models/Channel.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
const parametersSchema = Type.Object({
channelId: channelSchema.id
diff --git a/src/services/channels/[channelId]/messages/uploads/post.ts b/src/services/channels/[channelId]/messages/uploads/post.ts
index 2e8faaf..2cdf235 100644
--- a/src/services/channels/[channelId]/messages/uploads/post.ts
+++ b/src/services/channels/[channelId]/messages/uploads/post.ts
@@ -3,14 +3,14 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import fastifyMultipart from '@fastify/multipart'
-import prisma from '../../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
-import authenticateUser from '../../../../../tools/plugins/authenticateUser.js'
-import { messageSchema } from '../../../../../models/Message.js'
-import { memberSchema } from '../../../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../../../models/User.js'
-import { channelSchema } from '../../../../../models/Channel.js'
-import { uploadFile } from '../../../../../tools/utils/uploadFile.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { messageSchema } from '#src/models/Message.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
+import { channelSchema } from '#src/models/Channel.js'
+import { uploadFile } from '#src/tools/utils/uploadFile.js'
const parametersSchema = Type.Object({
channelId: channelSchema.id
diff --git a/src/services/channels/[channelId]/put.ts b/src/services/channels/[channelId]/put.ts
index bada11d..cfb3ed4 100644
--- a/src/services/channels/[channelId]/put.ts
+++ b/src/services/channels/[channelId]/put.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { channelSchema } from '../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { channelSchema } from '#src/models/Channel.js'
const bodyPutServiceSchema = Type.Object({
name: channelSchema.name
@@ -56,9 +56,9 @@ export const putChannelService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { channelId } = request.params
- const { name } = request.body
+ const { user, params, body } = request
+ const { channelId } = params
+ const { name } = body
const channelCheck = await prisma.channel.findUnique({
where: { id: channelId }
})
diff --git a/src/services/guilds/[guildId]/__test__/delete.test.ts b/src/services/guilds/[guildId]/__test__/delete.test.ts
index a4a23c3..45eed09 100644
--- a/src/services/guilds/[guildId]/__test__/delete.test.ts
+++ b/src/services/guilds/[guildId]/__test__/delete.test.ts
@@ -1,18 +1,20 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../models/Member.js'
-import { guildExample } from '../../../../models/Guild.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
-await tap.test('DELETE /guilds/[guildId]', async (t) => {
+await test('DELETE /guilds/[guildId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds and delete the guild', async (t) => {
+ await t.test('succeeds and delete the guild', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -36,13 +38,13 @@ await tap.test('DELETE /guilds/[guildId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.id, guildExample.id)
- t.equal(responseJson.name, guildExample.name)
- t.equal(responseJson.description, guildExample.description)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.id, guildExample.id)
+ assert.strictEqual(responseJson.name, guildExample.name)
+ assert.strictEqual(responseJson.description, guildExample.description)
})
- await t.test("fails if the guild doesn't exist", async (t) => {
+ await t.test("fails if the guild doesn't exist", async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -56,10 +58,10 @@ await tap.test('DELETE /guilds/[guildId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the user is not the owner', async (t) => {
+ await t.test('fails if the user is not the owner', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -78,7 +80,10 @@ await tap.test('DELETE /guilds/[guildId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 400)
- t.equal(responseJson.message, 'You should be an owner of the guild')
+ assert.strictEqual(response.statusCode, 400)
+ assert.strictEqual(
+ responseJson.message,
+ 'You should be an owner of the guild'
+ )
})
})
diff --git a/src/services/guilds/[guildId]/__test__/get.test.ts b/src/services/guilds/[guildId]/__test__/get.test.ts
index 0b725cb..46d0222 100644
--- a/src/services/guilds/[guildId]/__test__/get.test.ts
+++ b/src/services/guilds/[guildId]/__test__/get.test.ts
@@ -1,22 +1,24 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../models/Member.js'
-import { guildExample } from '../../../../models/Guild.js'
-import { userExample } from '../../../../models/User.js'
-import { channelExample } from '../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { userExample } from '#src/models/User.js'
+import { channelExample } from '#src/models/Channel.js'
const defaultChannelId = 5
-await tap.test('GET /guilds/[guildId]', async (t) => {
+await test('GET /guilds/[guildId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken, user } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -43,17 +45,17 @@ await tap.test('GET /guilds/[guildId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.member.id, memberExample.id)
- t.equal(responseJson.member.isOwner, memberExample.isOwner)
- t.equal(responseJson.member.user.name, user.name)
- t.equal(responseJson.member.user.email, null)
- t.equal(responseJson.guild.id, guildExample.id)
- t.equal(responseJson.guild.name, guildExample.name)
- t.equal(responseJson.guild.defaultChannelId, defaultChannelId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.member.id, memberExample.id)
+ assert.strictEqual(responseJson.member.isOwner, memberExample.isOwner)
+ assert.strictEqual(responseJson.member.user.name, user.name)
+ assert.strictEqual(responseJson.member.user.email, null)
+ assert.strictEqual(responseJson.guild.id, guildExample.id)
+ assert.strictEqual(responseJson.guild.name, guildExample.name)
+ assert.strictEqual(responseJson.guild.defaultChannelId, defaultChannelId)
})
- await t.test('fails with not found member/guild', async (t) => {
+ await t.test('fails with not found member/guild', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -68,15 +70,15 @@ await tap.test('GET /guilds/[guildId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Member not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Member not found')
})
- await t.test('fails with unauthenticated user', async (t) => {
+ await t.test('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: '/guilds/1'
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/guilds/[guildId]/__test__/put.test.ts b/src/services/guilds/[guildId]/__test__/put.test.ts
index 0882988..552cdc1 100644
--- a/src/services/guilds/[guildId]/__test__/put.test.ts
+++ b/src/services/guilds/[guildId]/__test__/put.test.ts
@@ -1,23 +1,25 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../models/Member.js'
-import { guildExample } from '../../../../models/Guild.js'
-import { channelExample } from '../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { channelExample } from '#src/models/Channel.js'
const defaultChannelId = 5
const newName = 'New guild name'
const newDescription = 'New guild description'
-await tap.test('PUT /guilds/[guildId]', async (t) => {
+await test('PUT /guilds/[guildId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds and edit the guild', async (t) => {
+ await t.test('succeeds and edit the guild', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -57,13 +59,13 @@ await tap.test('PUT /guilds/[guildId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.name, newName)
- t.equal(responseJson.description, newDescription)
- t.equal(responseJson.defaultChannelId, defaultChannelId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.name, newName)
+ assert.strictEqual(responseJson.description, newDescription)
+ assert.strictEqual(responseJson.defaultChannelId, defaultChannelId)
})
- await t.test("fails if the guild doesn't exist", async (t) => {
+ await t.test("fails if the guild doesn't exist", async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -81,10 +83,10 @@ await tap.test('PUT /guilds/[guildId]', async (t) => {
description: newDescription
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the user is not the owner', async (t) => {
+ await t.test('fails if the user is not the owner', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -107,7 +109,10 @@ await tap.test('PUT /guilds/[guildId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 400)
- t.equal(responseJson.message, 'You should be an owner of the guild')
+ assert.strictEqual(response.statusCode, 400)
+ assert.strictEqual(
+ responseJson.message,
+ 'You should be an owner of the guild'
+ )
})
})
diff --git a/src/services/guilds/[guildId]/channels/__test__/get.test.ts b/src/services/guilds/[guildId]/channels/__test__/get.test.ts
index 030c0a7..7437174 100644
--- a/src/services/guilds/[guildId]/channels/__test__/get.test.ts
+++ b/src/services/guilds/[guildId]/channels/__test__/get.test.ts
@@ -1,19 +1,21 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../application.js'
-import { authenticateUserTest } from '../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../../models/Member.js'
-import { guildExample } from '../../../../../models/Guild.js'
-import { channelExample } from '../../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { channelExample } from '#src/models/Channel.js'
-await tap.test('GET /guilds/[guildId]/channels', async (t) => {
+await test('GET /guilds/[guildId]/channels', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -33,14 +35,14 @@ await tap.test('GET /guilds/[guildId]/channels', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.length, 1)
- t.equal(responseJson[0].id, channelExample.id)
- t.equal(responseJson[0].name, channelExample.name)
- t.equal(responseJson[0].guildId, channelExample.guildId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.length, 1)
+ assert.strictEqual(responseJson[0].id, channelExample.id)
+ assert.strictEqual(responseJson[0].name, channelExample.name)
+ assert.strictEqual(responseJson[0].guildId, channelExample.guildId)
})
- await t.test('fails with not found member/guild', async (t) => {
+ await t.test('fails with not found member/guild', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -55,15 +57,15 @@ await tap.test('GET /guilds/[guildId]/channels', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Member not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Member not found')
})
- await t.test('fails with unauthenticated user', async (t) => {
+ await t.test('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: '/guilds/1/channels'
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/guilds/[guildId]/channels/__test__/post.test.ts b/src/services/guilds/[guildId]/channels/__test__/post.test.ts
index 43543a1..2d3571a 100644
--- a/src/services/guilds/[guildId]/channels/__test__/post.test.ts
+++ b/src/services/guilds/[guildId]/channels/__test__/post.test.ts
@@ -1,21 +1,23 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../application.js'
-import { authenticateUserTest } from '../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../../models/Member.js'
-import { guildExample } from '../../../../../models/Guild.js'
-import { channelExample } from '../../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { channelExample } from '#src/models/Channel.js'
const defaultChannelId = 5
-await tap.test('POST /guilds/[guildId]/channels', async (t) => {
+await test('POST /guilds/[guildId]/channels', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -42,14 +44,14 @@ await tap.test('POST /guilds/[guildId]/channels', async (t) => {
payload: { name: channelExample.name }
})
const responseJson = response.json()
- t.equal(response.statusCode, 201)
- t.equal(responseJson.id, channelExample.id)
- t.equal(responseJson.name, channelExample.name)
- t.equal(responseJson.guildId, channelExample.guildId)
- t.equal(responseJson.defaultChannelId, defaultChannelId)
+ assert.strictEqual(response.statusCode, 201)
+ assert.strictEqual(responseJson.id, channelExample.id)
+ assert.strictEqual(responseJson.name, channelExample.name)
+ assert.strictEqual(responseJson.guildId, channelExample.guildId)
+ assert.strictEqual(responseJson.defaultChannelId, defaultChannelId)
})
- await t.test('fails if the member is not found', async (t) => {
+ await t.test('fails if the member is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -64,10 +66,10 @@ await tap.test('POST /guilds/[guildId]/channels', async (t) => {
},
payload: { name: channelExample.name }
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not owner', async (t) => {
+ await t.test('fails if the member is not owner', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -85,6 +87,6 @@ await tap.test('POST /guilds/[guildId]/channels', async (t) => {
},
payload: { name: channelExample.name }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/guilds/[guildId]/channels/get.ts b/src/services/guilds/[guildId]/channels/get.ts
index 0c0359c..64b4cc7 100644
--- a/src/services/guilds/[guildId]/channels/get.ts
+++ b/src/services/guilds/[guildId]/channels/get.ts
@@ -2,15 +2,15 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../../models/Guild.js'
-import { channelSchema } from '../../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { channelSchema } from '#src/models/Channel.js'
import {
getPaginationOptions,
queryPaginationObjectSchema
-} from '../../../../tools/database/pagination.js'
+} from '#src/tools/database/pagination.js'
type QuerySchemaType = Static
diff --git a/src/services/guilds/[guildId]/channels/post.ts b/src/services/guilds/[guildId]/channels/post.ts
index e87f005..8486e37 100644
--- a/src/services/guilds/[guildId]/channels/post.ts
+++ b/src/services/guilds/[guildId]/channels/post.ts
@@ -2,11 +2,11 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { channelSchema } from '../../../../models/Channel.js'
-import { guildSchema } from '../../../../models/Guild.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { channelSchema } from '#src/models/Channel.js'
+import { guildSchema } from '#src/models/Guild.js'
const bodyPostServiceSchema = Type.Object({
name: channelSchema.name
@@ -57,9 +57,9 @@ export const postChannelService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { guildId } = request.params
- const { name } = request.body
+ const { user, params, body } = request
+ const { guildId } = params
+ const { name } = body
const member = await prisma.member.findFirst({
where: { guildId, userId: user.current.id }
})
diff --git a/src/services/guilds/[guildId]/delete.ts b/src/services/guilds/[guildId]/delete.ts
index a8aa263..905094e 100644
--- a/src/services/guilds/[guildId]/delete.ts
+++ b/src/services/guilds/[guildId]/delete.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../models/Guild.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
const parametersSchema = Type.Object({
guildId: guildSchema.id
diff --git a/src/services/guilds/[guildId]/get.ts b/src/services/guilds/[guildId]/get.ts
index 0deb0b6..9569a2f 100644
--- a/src/services/guilds/[guildId]/get.ts
+++ b/src/services/guilds/[guildId]/get.ts
@@ -2,13 +2,13 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../models/Guild.js'
-import { memberSchema } from '../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../models/User.js'
-import { channelSchema } from '../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
+import { channelSchema } from '#src/models/Channel.js'
const parametersSchema = Type.Object({
guildId: guildSchema.id
diff --git a/src/services/guilds/[guildId]/icon/put.ts b/src/services/guilds/[guildId]/icon/put.ts
index a004d5e..d07659f 100644
--- a/src/services/guilds/[guildId]/icon/put.ts
+++ b/src/services/guilds/[guildId]/icon/put.ts
@@ -3,12 +3,12 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import fastifyMultipart from '@fastify/multipart'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { uploadFile } from '../../../../tools/utils/uploadFile.js'
-import { guildSchema } from '../../../../models/Guild.js'
-import { channelSchema } from '../../../../models/Channel.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import prisma from '#src/tools/database/prisma.js'
+import { uploadFile } from '#src/tools/utils/uploadFile.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { channelSchema } from '#src/models/Channel.js'
const parametersSchema = Type.Object({
guildId: guildSchema.id
diff --git a/src/services/guilds/[guildId]/members/__test__/get.test.ts b/src/services/guilds/[guildId]/members/__test__/get.test.ts
index 0d336ac..c74d5cb 100644
--- a/src/services/guilds/[guildId]/members/__test__/get.test.ts
+++ b/src/services/guilds/[guildId]/members/__test__/get.test.ts
@@ -1,19 +1,21 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../application.js'
-import { authenticateUserTest } from '../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../../models/Member.js'
-import { guildExample } from '../../../../../models/Guild.js'
-import { userExample } from '../../../../../models/User.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { userExample } from '#src/models/User.js'
-await tap.test('GET /guilds/[guildId]/members', async (t) => {
+await test('GET /guilds/[guildId]/members', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -31,16 +33,16 @@ await tap.test('GET /guilds/[guildId]/members', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.length, 1)
- t.equal(responseJson[0].id, memberExample.id)
- t.equal(responseJson[0].isOwner, memberExample.isOwner)
- t.equal(responseJson[0].user.id, userExample.id)
- t.equal(responseJson[0].user.name, userExample.name)
- t.equal(responseJson[0].user.email, null)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.length, 1)
+ assert.strictEqual(responseJson[0].id, memberExample.id)
+ assert.strictEqual(responseJson[0].isOwner, memberExample.isOwner)
+ assert.strictEqual(responseJson[0].user.id, userExample.id)
+ assert.strictEqual(responseJson[0].user.name, userExample.name)
+ assert.strictEqual(responseJson[0].user.email, null)
})
- await t.test('fails with not found member/guild', async (t) => {
+ await t.test('fails with not found member/guild', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -55,15 +57,15 @@ await tap.test('GET /guilds/[guildId]/members', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'Member not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'Member not found')
})
- await t.test('fails with unauthenticated user', async (t) => {
+ await t.test('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: '/guilds/1/members'
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/guilds/[guildId]/members/get.ts b/src/services/guilds/[guildId]/members/get.ts
index ea3767c..cf3f2d8 100644
--- a/src/services/guilds/[guildId]/members/get.ts
+++ b/src/services/guilds/[guildId]/members/get.ts
@@ -2,16 +2,16 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../../models/Guild.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
import {
getPaginationOptions,
queryPaginationObjectSchema
-} from '../../../../tools/database/pagination.js'
-import { memberSchema } from '../../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../../models/User.js'
+} from '#src/tools/database/pagination.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
type QuerySchemaType = Static
diff --git a/src/services/guilds/[guildId]/members/join/__test__/post.test.ts b/src/services/guilds/[guildId]/members/join/__test__/post.test.ts
index 9acb8f7..c5dfe4b 100644
--- a/src/services/guilds/[guildId]/members/join/__test__/post.test.ts
+++ b/src/services/guilds/[guildId]/members/join/__test__/post.test.ts
@@ -1,22 +1,24 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../../application.js'
-import { authenticateUserTest } from '../../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../../../models/Member.js'
-import { guildExample } from '../../../../../../models/Guild.js'
-import { userExample } from '../../../../../../models/User.js'
-import { channelExample } from '../../../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { userExample } from '#src/models/User.js'
+import { channelExample } from '#src/models/Channel.js'
const defaultChannelId = 5
-await tap.test('POST /guilds/[guildId]/members/join', async (t) => {
+await test('POST /guilds/[guildId]/members/join', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -44,17 +46,17 @@ await tap.test('POST /guilds/[guildId]/members/join', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 201)
- t.equal(responseJson.id, memberExample.id)
- t.equal(responseJson.userId, memberExample.userId)
- t.equal(responseJson.user.name, userExample.name)
- t.equal(responseJson.user.email, null)
- t.equal(responseJson.guild.id, guildExample.id)
- t.equal(responseJson.guild.name, guildExample.name)
- t.equal(responseJson.guild.defaultChannelId, channelExample.id)
+ assert.strictEqual(response.statusCode, 201)
+ assert.strictEqual(responseJson.id, memberExample.id)
+ assert.strictEqual(responseJson.userId, memberExample.userId)
+ assert.strictEqual(responseJson.user.name, userExample.name)
+ assert.strictEqual(responseJson.user.email, null)
+ assert.strictEqual(responseJson.guild.id, guildExample.id)
+ assert.strictEqual(responseJson.guild.name, guildExample.name)
+ assert.strictEqual(responseJson.guild.defaultChannelId, channelExample.id)
})
- await t.test('fails if the guild is not found', async (t) => {
+ await t.test('fails if the guild is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -78,10 +80,10 @@ await tap.test('POST /guilds/[guildId]/members/join', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the user is already in the guild', async (t) => {
+ await t.test('fails if the user is already in the guild', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -109,7 +111,7 @@ await tap.test('POST /guilds/[guildId]/members/join', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 400)
- t.equal(responseJson.defaultChannelId, defaultChannelId)
+ assert.strictEqual(response.statusCode, 400)
+ assert.strictEqual(responseJson.defaultChannelId, defaultChannelId)
})
})
diff --git a/src/services/guilds/[guildId]/members/join/post.ts b/src/services/guilds/[guildId]/members/join/post.ts
index 81f80b6..e3045a9 100644
--- a/src/services/guilds/[guildId]/members/join/post.ts
+++ b/src/services/guilds/[guildId]/members/join/post.ts
@@ -2,17 +2,13 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../../tools/database/prisma.js'
-import {
- fastifyErrors,
- fastifyErrorsSchema,
- id
-} from '../../../../../models/utils.js'
-import authenticateUser from '../../../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../../../models/Guild.js'
-import { memberSchema } from '../../../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../../../models/User.js'
-import { channelSchema } from '../../../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors, fastifyErrorsSchema, id } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
+import { channelSchema } from '#src/models/Channel.js'
const parametersSchema = Type.Object({
guildId: guildSchema.id
@@ -62,8 +58,8 @@ export const postMemberService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { guildId } = request.params
+ const { user, params } = request
+ const { guildId } = params
const guild = await prisma.guild.findUnique({
where: {
id: guildId
diff --git a/src/services/guilds/[guildId]/members/leave/__test__/delete.test.ts b/src/services/guilds/[guildId]/members/leave/__test__/delete.test.ts
index 94a9c1d..7f35831 100644
--- a/src/services/guilds/[guildId]/members/leave/__test__/delete.test.ts
+++ b/src/services/guilds/[guildId]/members/leave/__test__/delete.test.ts
@@ -1,18 +1,20 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../../application.js'
-import { authenticateUserTest } from '../../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../../tools/database/prisma.js'
-import { memberExample } from '../../../../../../models/Member.js'
-import { guildExample } from '../../../../../../models/Guild.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
-await tap.test('DELETE /guilds/[guildId]/members/leave', async (t) => {
+await test('DELETE /guilds/[guildId]/members/leave', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
const member = {
...memberExample,
@@ -34,13 +36,13 @@ await tap.test('DELETE /guilds/[guildId]/members/leave', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.id, member.id)
- t.equal(responseJson.isOwner, member.isOwner)
- t.equal(responseJson.userId, member.userId)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.id, member.id)
+ assert.strictEqual(responseJson.isOwner, member.isOwner)
+ assert.strictEqual(responseJson.userId, member.userId)
})
- await t.test('fails if the member is not found', async (t) => {
+ await t.test('fails if the member is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'member').value({
findFirst: async () => {
@@ -54,10 +56,10 @@ await tap.test('DELETE /guilds/[guildId]/members/leave', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is owner', async (t) => {
+ await t.test('fails if the member is owner', async () => {
const { accessToken } = await authenticateUserTest()
const member = {
...memberExample,
@@ -75,6 +77,6 @@ await tap.test('DELETE /guilds/[guildId]/members/leave', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/guilds/[guildId]/members/leave/delete.ts b/src/services/guilds/[guildId]/members/leave/delete.ts
index bb21d8d..f235a84 100644
--- a/src/services/guilds/[guildId]/members/leave/delete.ts
+++ b/src/services/guilds/[guildId]/members/leave/delete.ts
@@ -2,11 +2,11 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
-import authenticateUser from '../../../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../../../models/Guild.js'
-import { memberSchema } from '../../../../../models/Member.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { memberSchema } from '#src/models/Member.js'
const parametersSchema = Type.Object({
guildId: guildSchema.id
@@ -46,8 +46,8 @@ export const deleteMemberService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { guildId } = request.params
+ const { user, params } = request
+ const { guildId } = params
const member = await prisma.member.findFirst({
where: { guildId, userId: user.current.id }
})
diff --git a/src/services/guilds/[guildId]/put.ts b/src/services/guilds/[guildId]/put.ts
index 11b3ddc..b670201 100644
--- a/src/services/guilds/[guildId]/put.ts
+++ b/src/services/guilds/[guildId]/put.ts
@@ -2,12 +2,12 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../models/Guild.js'
-import { parseStringNullish } from '../../../tools/utils/parseStringNullish.js'
-import { channelSchema } from '../../../models/Channel.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { parseStringNullish } from '#src/tools/utils/parseStringNullish.js'
+import { channelSchema } from '#src/models/Channel.js'
const parametersSchema = Type.Object({
guildId: guildSchema.id
diff --git a/src/services/guilds/__test__/get.test.ts b/src/services/guilds/__test__/get.test.ts
index 82d1484..968ce08 100644
--- a/src/services/guilds/__test__/get.test.ts
+++ b/src/services/guilds/__test__/get.test.ts
@@ -1,19 +1,21 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../application.js'
-import { authenticateUserTest } from '../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../tools/database/prisma.js'
-import { memberExample } from '../../../models/Member.js'
-import { guildExample } from '../../../models/Guild.js'
-import { channelExample } from '../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { channelExample } from '#src/models/Channel.js'
-await tap.test('GET /guilds', async (t) => {
+await test('GET /guilds', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'guild').value({
findUnique: async () => {
@@ -38,10 +40,10 @@ await tap.test('GET /guilds', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.length, 1)
- t.equal(responseJson[0].name, guildExample.name)
- t.equal(responseJson[0].description, guildExample.description)
- t.equal(responseJson[0].defaultChannelId, channelExample.id)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.length, 1)
+ assert.strictEqual(responseJson[0].name, guildExample.name)
+ assert.strictEqual(responseJson[0].description, guildExample.description)
+ assert.strictEqual(responseJson[0].defaultChannelId, channelExample.id)
})
})
diff --git a/src/services/guilds/__test__/post.test.ts b/src/services/guilds/__test__/post.test.ts
index f6f5af8..f34f348 100644
--- a/src/services/guilds/__test__/post.test.ts
+++ b/src/services/guilds/__test__/post.test.ts
@@ -1,20 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../application.js'
-import { authenticateUserTest } from '../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../tools/database/prisma.js'
-import { memberExample } from '../../../models/Member.js'
-import { guildExample } from '../../../models/Guild.js'
-import { channelExample } from '../../../models/Channel.js'
-import { userExample } from '../../../models/User.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { memberExample } from '#src/models/Member.js'
+import { guildExample } from '#src/models/Guild.js'
+import { channelExample } from '#src/models/Channel.js'
+import { userExample } from '#src/models/User.js'
-await tap.test('POST /guilds', async (t) => {
+await test('POST /guilds', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken, user } = await authenticateUserTest()
sinon.stub(prisma, 'guild').value({
create: async () => {
@@ -49,21 +51,24 @@ await tap.test('POST /guilds', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 201)
- t.equal(responseJson.guild.id, guildExample.id)
- t.equal(responseJson.guild.name, guildExample.name)
- t.equal(responseJson.guild.description, guildExample.description)
- t.equal(responseJson.guild.members.length, 1)
- t.equal(responseJson.guild.members[0].userId, user.id)
- t.equal(responseJson.guild.members[0].user.name, user.name)
- t.equal(responseJson.guild.members[0].guildId, guildExample.id)
- t.equal(responseJson.guild.members[0].isOwner, memberExample.isOwner)
- t.equal(responseJson.guild.channels.length, 1)
- t.equal(responseJson.guild.channels[0].id, channelExample.id)
- t.equal(responseJson.guild.channels[0].guildId, guildExample.id)
+ assert.strictEqual(response.statusCode, 201)
+ assert.strictEqual(responseJson.guild.id, guildExample.id)
+ assert.strictEqual(responseJson.guild.name, guildExample.name)
+ assert.strictEqual(responseJson.guild.description, guildExample.description)
+ assert.strictEqual(responseJson.guild.members.length, 1)
+ assert.strictEqual(responseJson.guild.members[0].userId, user.id)
+ assert.strictEqual(responseJson.guild.members[0].user.name, user.name)
+ assert.strictEqual(responseJson.guild.members[0].guildId, guildExample.id)
+ assert.strictEqual(
+ responseJson.guild.members[0].isOwner,
+ memberExample.isOwner
+ )
+ assert.strictEqual(responseJson.guild.channels.length, 1)
+ assert.strictEqual(responseJson.guild.channels[0].id, channelExample.id)
+ assert.strictEqual(responseJson.guild.channels[0].guildId, guildExample.id)
})
- await t.test('fails with empty name and description', async (t) => {
+ await t.test('fails with empty name and description', async () => {
const { accessToken } = await authenticateUserTest()
const response = await application.inject({
method: 'POST',
@@ -72,6 +77,6 @@ await tap.test('POST /guilds', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/guilds/get.ts b/src/services/guilds/get.ts
index 94a5912..d1c9e51 100644
--- a/src/services/guilds/get.ts
+++ b/src/services/guilds/get.ts
@@ -2,14 +2,14 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../tools/database/prisma.js'
-import { fastifyErrors, id } from '../../models/utils.js'
-import authenticateUser from '../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../models/Guild.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors, id } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
import {
getPaginationOptions,
queryPaginationObjectSchema
-} from '../../tools/database/pagination.js'
+} from '#src/tools/database/pagination.js'
type QuerySchemaType = Static
diff --git a/src/services/guilds/post.ts b/src/services/guilds/post.ts
index ab68523..0faa943 100644
--- a/src/services/guilds/post.ts
+++ b/src/services/guilds/post.ts
@@ -2,14 +2,14 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../tools/database/prisma.js'
-import { fastifyErrors } from '../../models/utils.js'
-import authenticateUser from '../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../models/Guild.js'
-import { channelSchema } from '../../models/Channel.js'
-import { memberSchema } from '../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../models/User.js'
-import { parseStringNullish } from '../../tools/utils/parseStringNullish.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
+import { channelSchema } from '#src/models/Channel.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
+import { parseStringNullish } from '#src/tools/utils/parseStringNullish.js'
const bodyPostServiceSchema = Type.Object({
name: guildSchema.name,
diff --git a/src/services/guilds/public/__test__/get.test.ts b/src/services/guilds/public/__test__/get.test.ts
index bf260fd..1b971db 100644
--- a/src/services/guilds/public/__test__/get.test.ts
+++ b/src/services/guilds/public/__test__/get.test.ts
@@ -1,17 +1,19 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { guildExample } from '../../../../models/Guild.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { guildExample } from '#src/models/Guild.js'
-await tap.test('GET /guilds/public', async (t) => {
+await test('GET /guilds/public', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'guild').value({
findMany: async () => {
@@ -31,9 +33,9 @@ await tap.test('GET /guilds/public', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.length, 1)
- t.equal(responseJson[0].name, guildExample.name)
- t.equal(responseJson[0].membersCount, 2)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.length, 1)
+ assert.strictEqual(responseJson[0].name, guildExample.name)
+ assert.strictEqual(responseJson[0].membersCount, 2)
})
})
diff --git a/src/services/guilds/public/get.ts b/src/services/guilds/public/get.ts
index 5e8d119..3b705c8 100644
--- a/src/services/guilds/public/get.ts
+++ b/src/services/guilds/public/get.ts
@@ -2,14 +2,14 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { guildSchema } from '../../../models/Guild.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { guildSchema } from '#src/models/Guild.js'
import {
getPaginationOptions,
queryPaginationSchema
-} from '../../../tools/database/pagination.js'
+} from '#src/tools/database/pagination.js'
const querySchema = Type.Object({
search: Type.Optional(Type.String()),
diff --git a/src/services/messages/[messageId]/__test__/delete.test.ts b/src/services/messages/[messageId]/__test__/delete.test.ts
index c4a3939..0af1a15 100644
--- a/src/services/messages/[messageId]/__test__/delete.test.ts
+++ b/src/services/messages/[messageId]/__test__/delete.test.ts
@@ -1,20 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { messageExample } from '../../../../models/Message.js'
-import { memberExample } from '../../../../models/Member.js'
-import { userExample } from '../../../../models/User.js'
-import { channelExample } from '../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { messageExample } from '#src/models/Message.js'
+import { memberExample } from '#src/models/Member.js'
+import { userExample } from '#src/models/User.js'
+import { channelExample } from '#src/models/Channel.js'
-await tap.test('DELETE /messsages/[messageId]', async (t) => {
+await test('DELETE /messsages/[messageId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'message').value({
findFirst: async () => {
@@ -43,18 +45,18 @@ await tap.test('DELETE /messsages/[messageId]', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.id, messageExample.id)
- t.equal(responseJson.value, messageExample.value)
- t.equal(responseJson.type, messageExample.type)
- t.equal(responseJson.mimetype, messageExample.mimetype)
- t.equal(responseJson.member.id, memberExample.id)
- t.equal(responseJson.member.isOwner, memberExample.isOwner)
- t.equal(responseJson.member.user.id, userExample.id)
- t.equal(responseJson.member.user.name, userExample.name)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.id, messageExample.id)
+ assert.strictEqual(responseJson.value, messageExample.value)
+ assert.strictEqual(responseJson.type, messageExample.type)
+ assert.strictEqual(responseJson.mimetype, messageExample.mimetype)
+ assert.strictEqual(responseJson.member.id, memberExample.id)
+ assert.strictEqual(responseJson.member.isOwner, memberExample.isOwner)
+ assert.strictEqual(responseJson.member.user.id, userExample.id)
+ assert.strictEqual(responseJson.member.user.name, userExample.name)
})
- await t.test('fails if the message is not found', async (t) => {
+ await t.test('fails if the message is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'message').value({
findFirst: async () => {
@@ -68,10 +70,10 @@ await tap.test('DELETE /messsages/[messageId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not found', async (t) => {
+ await t.test('fails if the member is not found', async () => {
const { accessToken } = await authenticateUserTest()
sinon.stub(prisma, 'message').value({
findFirst: async () => {
@@ -93,10 +95,10 @@ await tap.test('DELETE /messsages/[messageId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not owner of the message', async (t) => {
+ await t.test('fails if the member is not owner of the message', async () => {
const { accessToken } = await authenticateUserTest()
const randomUserIdOwnerOfMessage = 14
sinon.stub(prisma, 'message').value({
@@ -122,6 +124,6 @@ await tap.test('DELETE /messsages/[messageId]', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/messages/[messageId]/__test__/put.test.ts b/src/services/messages/[messageId]/__test__/put.test.ts
index bdd9642..fe2db7e 100644
--- a/src/services/messages/[messageId]/__test__/put.test.ts
+++ b/src/services/messages/[messageId]/__test__/put.test.ts
@@ -1,20 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { messageExample } from '../../../../models/Message.js'
-import { memberExample } from '../../../../models/Member.js'
-import { userExample } from '../../../../models/User.js'
-import { channelExample } from '../../../../models/Channel.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { messageExample } from '#src/models/Message.js'
+import { memberExample } from '#src/models/Member.js'
+import { userExample } from '#src/models/User.js'
+import { channelExample } from '#src/models/Channel.js'
-await tap.test('PUT /messsages/[messageId]', async (t) => {
+await test('PUT /messsages/[messageId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken } = await authenticateUserTest()
const newValue = 'some message'
sinon.stub(prisma, 'message').value({
@@ -48,18 +50,18 @@ await tap.test('PUT /messsages/[messageId]', async (t) => {
payload: { value: newValue }
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.id, messageExample.id)
- t.equal(responseJson.value, newValue)
- t.equal(responseJson.type, messageExample.type)
- t.equal(responseJson.mimetype, messageExample.mimetype)
- t.equal(responseJson.member.id, memberExample.id)
- t.equal(responseJson.member.isOwner, memberExample.isOwner)
- t.equal(responseJson.member.user.id, userExample.id)
- t.equal(responseJson.member.user.name, userExample.name)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.id, messageExample.id)
+ assert.strictEqual(responseJson.value, newValue)
+ assert.strictEqual(responseJson.type, messageExample.type)
+ assert.strictEqual(responseJson.mimetype, messageExample.mimetype)
+ assert.strictEqual(responseJson.member.id, memberExample.id)
+ assert.strictEqual(responseJson.member.isOwner, memberExample.isOwner)
+ assert.strictEqual(responseJson.member.user.id, userExample.id)
+ assert.strictEqual(responseJson.member.user.name, userExample.name)
})
- await t.test('fails if the message is not found', async (t) => {
+ await t.test('fails if the message is not found', async () => {
const { accessToken } = await authenticateUserTest()
const newValue = 'some message'
sinon.stub(prisma, 'message').value({
@@ -75,10 +77,10 @@ await tap.test('PUT /messsages/[messageId]', async (t) => {
},
payload: { value: newValue }
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
- await t.test('fails if the member is not found', async (t) => {
+ await t.test('fails if the member is not found', async () => {
const { accessToken } = await authenticateUserTest()
const newValue = 'some message'
sinon.stub(prisma, 'message').value({
@@ -102,12 +104,12 @@ await tap.test('PUT /messsages/[messageId]', async (t) => {
},
payload: { value: newValue }
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
await t.test(
'fails if the member is not the owner of the message',
- async (t) => {
+ async () => {
const { accessToken } = await authenticateUserTest()
const newValue = 'some message'
const randomUserIdOwnerOfMessage = 14
@@ -135,7 +137,7 @@ await tap.test('PUT /messsages/[messageId]', async (t) => {
},
payload: { value: newValue }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
}
)
})
diff --git a/src/services/messages/[messageId]/delete.ts b/src/services/messages/[messageId]/delete.ts
index a4fea74..8f13e86 100644
--- a/src/services/messages/[messageId]/delete.ts
+++ b/src/services/messages/[messageId]/delete.ts
@@ -2,12 +2,12 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { messageSchema } from '../../../models/Message.js'
-import { memberSchema } from '../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { messageSchema } from '#src/models/Message.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
const parametersSchema = Type.Object({
messageId: messageSchema.id
@@ -53,8 +53,8 @@ export const deleteMessageService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { messageId } = request.params
+ const { user, params } = request
+ const { messageId } = params
const messageCheck = await prisma.message.findFirst({
where: { id: messageId },
include: {
diff --git a/src/services/messages/[messageId]/put.ts b/src/services/messages/[messageId]/put.ts
index 8c38f54..ee4b890 100644
--- a/src/services/messages/[messageId]/put.ts
+++ b/src/services/messages/[messageId]/put.ts
@@ -2,12 +2,12 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { messageSchema } from '../../../models/Message.js'
-import { memberSchema } from '../../../models/Member.js'
-import { userPublicWithoutSettingsSchema } from '../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { messageSchema } from '#src/models/Message.js'
+import { memberSchema } from '#src/models/Member.js'
+import { userPublicWithoutSettingsSchema } from '#src/models/User.js'
const bodyPutServiceSchema = Type.Object({
value: messageSchema.value
@@ -61,9 +61,9 @@ export const putMessageService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { messageId } = request.params
- const { value } = request.body
+ const { user, params, body } = request
+ const { messageId } = params
+ const { value } = body
const messageCheck = await prisma.message.findFirst({
where: { id: messageId, type: 'text' },
include: {
diff --git a/src/services/users/[userId]/__test__/get.test.ts b/src/services/users/[userId]/__test__/get.test.ts
index 07553b5..49bc3e3 100644
--- a/src/services/users/[userId]/__test__/get.test.ts
+++ b/src/services/users/[userId]/__test__/get.test.ts
@@ -1,17 +1,19 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { userExample } from '../../../../models/User.js'
-import { userSettingsExample } from '../../../../models/UserSettings.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
+import { userSettingsExample } from '#src/models/UserSettings.js'
-await tap.test('GET /users/[userId]', async (t) => {
+await test('GET /users/[userId]', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
sinon.stub(prisma, 'guild').value({
findMany: async () => {
return []
@@ -32,12 +34,12 @@ await tap.test('GET /users/[userId]', async (t) => {
url: `/users/${userExample.id}`
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.user.id, userExample.id)
- t.equal(responseJson.user.name, userExample.name)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.user.id, userExample.id)
+ assert.strictEqual(responseJson.user.name, userExample.name)
})
- await t.test('fails with not found user', async (t) => {
+ await t.test('fails with not found user', async () => {
sinon.stub(prisma, 'userSetting').value({
findFirst: async () => {
return null
@@ -48,7 +50,7 @@ await tap.test('GET /users/[userId]', async (t) => {
url: `/users/1`
})
const responseJson = response.json()
- t.equal(response.statusCode, 404)
- t.equal(responseJson.message, 'User not found')
+ assert.strictEqual(response.statusCode, 404)
+ assert.strictEqual(responseJson.message, 'User not found')
})
})
diff --git a/src/services/users/[userId]/get.ts b/src/services/users/[userId]/get.ts
index 532d07e..84d0df6 100644
--- a/src/services/users/[userId]/get.ts
+++ b/src/services/users/[userId]/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import { userPublicSchema } from '../../../models/User.js'
-import { guildSchema } from '../../../models/Guild.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import { userPublicSchema } from '#src/models/User.js'
+import { guildSchema } from '#src/models/Guild.js'
const parametersGetUserSchema = Type.Object({
userId: userPublicSchema.id
diff --git a/src/services/users/confirm-email/__test__/get.test.ts b/src/services/users/confirm-email/__test__/get.test.ts
index 7335c10..17966d5 100644
--- a/src/services/users/confirm-email/__test__/get.test.ts
+++ b/src/services/users/confirm-email/__test__/get.test.ts
@@ -1,16 +1,18 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { userExample } from '../../../../models/User.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
-await tap.test('GET /users/confirm-email', async (t) => {
+await test('GET /users/confirm-email', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
sinon.stub(prisma, 'user').value({
findFirst: async () => {
return userExample
@@ -26,10 +28,10 @@ await tap.test('GET /users/confirm-email', async (t) => {
temporaryToken: userExample.temporaryToken ?? ''
}
})
- t.equal(response.statusCode, 200)
+ assert.strictEqual(response.statusCode, 200)
})
- await t.test('should fails with invalid `temporaryToken`', async (t) => {
+ await t.test('should fails with invalid `temporaryToken`', async () => {
sinon.stub(prisma, 'user').value({
findFirst: async () => {
return null
@@ -45,6 +47,6 @@ await tap.test('GET /users/confirm-email', async (t) => {
temporaryToken: userExample.temporaryToken ?? ''
}
})
- t.equal(response.statusCode, 403)
+ assert.strictEqual(response.statusCode, 403)
})
})
diff --git a/src/services/users/confirm-email/get.ts b/src/services/users/confirm-email/get.ts
index 82ea005..a1f239e 100644
--- a/src/services/users/confirm-email/get.ts
+++ b/src/services/users/confirm-email/get.ts
@@ -2,9 +2,9 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import { userSchema } from '../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import { userSchema } from '#src/models/User.js'
const queryGetConfirmEmailSchema = Type.Object({
redirectURI: Type.Optional(Type.String({ format: 'uri-reference' })),
diff --git a/src/services/users/current/__test__/get.test.ts b/src/services/users/current/__test__/get.test.ts
index 4e1721f..61b73c4 100644
--- a/src/services/users/current/__test__/get.test.ts
+++ b/src/services/users/current/__test__/get.test.ts
@@ -1,15 +1,17 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
-await tap.test('GET /users/current', async (t) => {
+await test('GET /users/current', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken, user } = await authenticateUserTest()
const response = await application.inject({
method: 'GET',
@@ -19,16 +21,16 @@ await tap.test('GET /users/current', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.user.name, user.name)
- t.strictSame(responseJson.user.strategies, ['Local'])
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.user.name, user.name)
+ assert.deepStrictEqual(responseJson.user.strategies, ['Local'])
})
- await t.test('fails with unauthenticated user', async (t) => {
+ await t.test('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: '/users/current'
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/users/current/__test__/put.test.ts b/src/services/users/current/__test__/put.test.ts
index e718793..6c1f864 100644
--- a/src/services/users/current/__test__/put.test.ts
+++ b/src/services/users/current/__test__/put.test.ts
@@ -1,16 +1,18 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
-await tap.test('PUT /users/current', async (t) => {
+await test('PUT /users/current', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds with valid accessToken and valid name', async (t) => {
+ await t.test('succeeds with valid accessToken and valid name', async () => {
const newName = 'John Doe'
const { accessToken, user, userStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'user').value({
@@ -36,11 +38,11 @@ await tap.test('PUT /users/current', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.user.name, newName)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.user.name, newName)
})
- await t.test('succeeds and only update the status', async (t) => {
+ await t.test('succeeds and only update the status', async () => {
const newStatus = '👀 Working on secret projects...'
const { accessToken, user, userStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'user').value({
@@ -66,12 +68,12 @@ await tap.test('PUT /users/current', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.user.name, user.name)
- t.equal(responseJson.user.status, newStatus)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.user.name, user.name)
+ assert.strictEqual(responseJson.user.status, newStatus)
})
- await t.test('fails with name already used', async (t) => {
+ await t.test('fails with name already used', async () => {
const newName = 'John Doe'
const { accessToken, user, userStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'user').value({
@@ -90,10 +92,10 @@ await tap.test('PUT /users/current', async (t) => {
name: newName
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with invalid website url', async (t) => {
+ await t.test('fails with invalid website url', async () => {
const newWebsite = 'invalid website url'
const { accessToken } = await authenticateUserTest()
const response = await application.inject({
@@ -106,10 +108,10 @@ await tap.test('PUT /users/current', async (t) => {
website: newWebsite
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('succeeds with valid website url', async (t) => {
+ await t.test('succeeds with valid website url', async () => {
const newWebsite = 'https://somerandomwebsite.com'
const { accessToken, user, userStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'user').value({
@@ -135,8 +137,8 @@ await tap.test('PUT /users/current', async (t) => {
}
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.user.name, user.name)
- t.equal(responseJson.user.website, newWebsite)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.user.name, user.name)
+ assert.strictEqual(responseJson.user.website, newWebsite)
})
})
diff --git a/src/services/users/current/get.ts b/src/services/users/current/get.ts
index cdf3df0..d66f5a1 100644
--- a/src/services/users/current/get.ts
+++ b/src/services/users/current/get.ts
@@ -1,9 +1,9 @@
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { userCurrentSchema } from '../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { userCurrentSchema } from '#src/models/User.js'
const getCurrentUserSchema: FastifySchema = {
description: 'GET the current connected user',
diff --git a/src/services/users/current/logo/put.ts b/src/services/users/current/logo/put.ts
index 89c4419..58f744c 100644
--- a/src/services/users/current/logo/put.ts
+++ b/src/services/users/current/logo/put.ts
@@ -2,10 +2,10 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import fastifyMultipart from '@fastify/multipart'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { uploadFile } from '../../../../tools/utils/uploadFile.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import prisma from '#src/tools/database/prisma.js'
+import { uploadFile } from '#src/tools/utils/uploadFile.js'
const putServiceSchema: FastifySchema = {
description: 'Edit the current connected user logo',
diff --git a/src/services/users/current/put.ts b/src/services/users/current/put.ts
index 9afa8d3..b15dfcb 100644
--- a/src/services/users/current/put.ts
+++ b/src/services/users/current/put.ts
@@ -4,14 +4,14 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
-import { userCurrentSchema, userSchema } from '../../../models/User.js'
-import { sendEmail } from '../../../tools/email/sendEmail.js'
-import { API_URL } from '../../../tools/configurations.js'
-import type { Language, Theme } from '../../../models/UserSettings.js'
-import { parseStringNullish } from '../../../tools/utils/parseStringNullish.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { userCurrentSchema, userSchema } from '#src/models/User.js'
+import { sendEmail } from '#src/tools/email/sendEmail.js'
+import { API_URL } from '#src/tools/configurations.js'
+import type { Language, Theme } from '#src/models/UserSettings.js'
+import { parseStringNullish } from '#src/tools/utils/parseStringNullish.js'
const bodyPutServiceSchema = Type.Object({
name: Type.Optional(userSchema.name),
diff --git a/src/services/users/current/settings/__test__/put.test.ts b/src/services/users/current/settings/__test__/put.test.ts
index 2541496..c5d8ff9 100644
--- a/src/services/users/current/settings/__test__/put.test.ts
+++ b/src/services/users/current/settings/__test__/put.test.ts
@@ -1,19 +1,21 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../../application.js'
-import { authenticateUserTest } from '../../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../../tools/database/prisma.js'
-import { userSettingsExample } from '../../../../../models/UserSettings.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userSettingsExample } from '#src/models/UserSettings.js'
-await tap.test('PUT /users/current/settings', async (t) => {
+await test('PUT /users/current/settings', async (t) => {
t.afterEach(() => {
sinon.restore()
})
await t.test(
'succeeds and edit the theme, language, isPublicEmail and isPublicGuilds',
- async (t) => {
+ async () => {
const newSettings = {
theme: 'light',
language: 'fr',
@@ -42,15 +44,21 @@ await tap.test('PUT /users/current/settings', async (t) => {
payload: newSettings
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.settings.theme, newSettings.theme)
- t.equal(responseJson.settings.language, newSettings.language)
- t.equal(responseJson.settings.isPublicEmail, newSettings.isPublicEmail)
- t.equal(responseJson.settings.isPublicGuilds, newSettings.isPublicGuilds)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.settings.theme, newSettings.theme)
+ assert.strictEqual(responseJson.settings.language, newSettings.language)
+ assert.strictEqual(
+ responseJson.settings.isPublicEmail,
+ newSettings.isPublicEmail
+ )
+ assert.strictEqual(
+ responseJson.settings.isPublicGuilds,
+ newSettings.isPublicGuilds
+ )
}
)
- await t.test('fails with invalid language', async (t) => {
+ await t.test('fails with invalid language', async () => {
const newSettings = {
language: 'somerandomlanguage'
}
@@ -75,6 +83,6 @@ await tap.test('PUT /users/current/settings', async (t) => {
},
payload: newSettings
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/users/current/settings/put.ts b/src/services/users/current/settings/put.ts
index fc0ce62..53bce39 100644
--- a/src/services/users/current/settings/put.ts
+++ b/src/services/users/current/settings/put.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { userSettingsSchema } from '../../../../models/UserSettings.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { userSettingsSchema } from '#src/models/UserSettings.js'
const bodyPutServiceSchema = Type.Object({
theme: Type.Optional(userSettingsSchema.theme),
diff --git a/src/services/users/oauth2/[provider]/delete.ts b/src/services/users/oauth2/[provider]/delete.ts
index 6adbde8..516701a 100644
--- a/src/services/users/oauth2/[provider]/delete.ts
+++ b/src/services/users/oauth2/[provider]/delete.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../../models/utils.js'
-import authenticateUser from '../../../../tools/plugins/authenticateUser.js'
-import { oauthSchema } from '../../../../models/OAuth.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
+import { oauthSchema } from '#src/models/OAuth.js'
const parametersSchema = Type.Object({
provider: oauthSchema.provider
@@ -45,8 +45,8 @@ export const deleteProviderService: FastifyPluginAsync = async (fastify) => {
if (request.user == null) {
throw fastify.httpErrors.forbidden()
}
- const { user } = request
- const { provider } = request.params
+ const { user, params } = request
+ const { provider } = params
const OAuths = await prisma.oAuth.findMany({
where: { userId: user.current.id }
})
diff --git a/src/services/users/oauth2/discord/__utils__/utils.ts b/src/services/users/oauth2/discord/__utils__/utils.ts
index 0af0a88..0990da2 100644
--- a/src/services/users/oauth2/discord/__utils__/utils.ts
+++ b/src/services/users/oauth2/discord/__utils__/utils.ts
@@ -2,7 +2,7 @@ import querystring from 'node:querystring'
import axios from 'axios'
-import { OAuthStrategy } from '../../../../../tools/utils/OAuthStrategy.js'
+import { OAuthStrategy } from '#src/tools/utils/OAuthStrategy.js'
export const DISCORD_PROVIDER = 'Discord'
export const DISCORD_BASE_URL = 'https://discord.com/api/v10'
diff --git a/src/services/users/oauth2/discord/add-strategy/get.ts b/src/services/users/oauth2/discord/add-strategy/get.ts
index 92c06c2..9030706 100644
--- a/src/services/users/oauth2/discord/add-strategy/get.ts
+++ b/src/services/users/oauth2/discord/add-strategy/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { DISCORD_BASE_URL, DISCORD_CLIENT_ID } from '../__utils__/utils.js'
-import authenticateUser from '../../../../../tools/plugins/authenticateUser.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
const querySchema = Type.Object({
redirectURI: Type.String({ format: 'uri-reference' })
diff --git a/src/services/users/oauth2/discord/callback-add-strategy/get.ts b/src/services/users/oauth2/discord/callback-add-strategy/get.ts
index 086a959..b5f9a9d 100644
--- a/src/services/users/oauth2/discord/callback-add-strategy/get.ts
+++ b/src/services/users/oauth2/discord/callback-add-strategy/get.ts
@@ -2,11 +2,11 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { discordStrategy, getDiscordUserData } from '../__utils__/utils.js'
-import { buildQueryURL } from '../../../../../tools/utils/buildQueryURL.js'
-import { getUserWithBearerToken } from '../../../../../tools/plugins/authenticateUser.js'
+import { buildQueryURL } from '#src/tools/utils/buildQueryURL.js'
+import { getUserWithBearerToken } from '#src/tools/plugins/authenticateUser.js'
const querySchema = Type.Object({
code: Type.String(),
diff --git a/src/services/users/oauth2/discord/callback/get.ts b/src/services/users/oauth2/discord/callback/get.ts
index 6536a90..39351f2 100644
--- a/src/services/users/oauth2/discord/callback/get.ts
+++ b/src/services/users/oauth2/discord/callback/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { discordStrategy, getDiscordUserData } from '../__utils__/utils.js'
-import { buildQueryURL } from '../../../../../tools/utils/buildQueryURL.js'
+import { buildQueryURL } from '#src/tools/utils/buildQueryURL.js'
const querySchema = Type.Object({
code: Type.String(),
diff --git a/src/services/users/oauth2/discord/signin/get.ts b/src/services/users/oauth2/discord/signin/get.ts
index 6ff47a1..c61ef97 100644
--- a/src/services/users/oauth2/discord/signin/get.ts
+++ b/src/services/users/oauth2/discord/signin/get.ts
@@ -2,8 +2,8 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { DISCORD_BASE_URL, DISCORD_CLIENT_ID } from '../__utils__/utils.js'
const querySchema = Type.Object({
diff --git a/src/services/users/oauth2/github/__utils__/utils.ts b/src/services/users/oauth2/github/__utils__/utils.ts
index 2f3d750..3032676 100644
--- a/src/services/users/oauth2/github/__utils__/utils.ts
+++ b/src/services/users/oauth2/github/__utils__/utils.ts
@@ -2,7 +2,7 @@ import querystring from 'node:querystring'
import axios from 'axios'
-import { OAuthStrategy } from '../../../../../tools/utils/OAuthStrategy.js'
+import { OAuthStrategy } from '#src/tools/utils/OAuthStrategy.js'
export const GITHUB_PROVIDER = 'GitHub'
export const GITHUB_BASE_URL = 'https://github.com'
diff --git a/src/services/users/oauth2/github/add-strategy/get.ts b/src/services/users/oauth2/github/add-strategy/get.ts
index a9c3379..75edc0d 100644
--- a/src/services/users/oauth2/github/add-strategy/get.ts
+++ b/src/services/users/oauth2/github/add-strategy/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { GITHUB_BASE_URL, GITHUB_CLIENT_ID } from '../__utils__/utils.js'
-import authenticateUser from '../../../../../tools/plugins/authenticateUser.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
const querySchema = Type.Object({
redirectURI: Type.String({ format: 'uri-reference' })
diff --git a/src/services/users/oauth2/github/callback-add-strategy/get.ts b/src/services/users/oauth2/github/callback-add-strategy/get.ts
index 3eba3ff..ebd9fb3 100644
--- a/src/services/users/oauth2/github/callback-add-strategy/get.ts
+++ b/src/services/users/oauth2/github/callback-add-strategy/get.ts
@@ -2,11 +2,11 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { githubStrategy, getGitHubUserData } from '../__utils__/utils.js'
-import { buildQueryURL } from '../../../../../tools/utils/buildQueryURL.js'
-import { getUserWithBearerToken } from '../../../../../tools/plugins/authenticateUser.js'
+import { buildQueryURL } from '#src/tools/utils/buildQueryURL.js'
+import { getUserWithBearerToken } from '#src/tools/plugins/authenticateUser.js'
const querySchema = Type.Object({
code: Type.String(),
diff --git a/src/services/users/oauth2/github/callback/get.ts b/src/services/users/oauth2/github/callback/get.ts
index 5b4824a..a14f9d9 100644
--- a/src/services/users/oauth2/github/callback/get.ts
+++ b/src/services/users/oauth2/github/callback/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { githubStrategy, getGitHubUserData } from '../__utils__/utils.js'
-import { buildQueryURL } from '../../../../../tools/utils/buildQueryURL.js'
+import { buildQueryURL } from '#src/tools/utils/buildQueryURL.js'
const querySchema = Type.Object({
code: Type.String(),
diff --git a/src/services/users/oauth2/github/signin/get.ts b/src/services/users/oauth2/github/signin/get.ts
index 5a92781..783a5ef 100644
--- a/src/services/users/oauth2/github/signin/get.ts
+++ b/src/services/users/oauth2/github/signin/get.ts
@@ -2,8 +2,8 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { GITHUB_BASE_URL, GITHUB_CLIENT_ID } from '../__utils__/utils.js'
const querySchema = Type.Object({
diff --git a/src/services/users/oauth2/google/__utils__/utils.ts b/src/services/users/oauth2/google/__utils__/utils.ts
index c6488fe..ba4e78f 100644
--- a/src/services/users/oauth2/google/__utils__/utils.ts
+++ b/src/services/users/oauth2/google/__utils__/utils.ts
@@ -2,7 +2,7 @@ import querystring from 'node:querystring'
import axios from 'axios'
-import { OAuthStrategy } from '../../../../../tools/utils/OAuthStrategy.js'
+import { OAuthStrategy } from '#src/tools/utils/OAuthStrategy.js'
export const GOOGLE_PROVIDER = 'Google'
export const GOOGLE_BASE_URL = 'https://accounts.google.com/o/oauth2/v2/auth'
diff --git a/src/services/users/oauth2/google/add-strategy/get.ts b/src/services/users/oauth2/google/add-strategy/get.ts
index f28f163..c8294b0 100644
--- a/src/services/users/oauth2/google/add-strategy/get.ts
+++ b/src/services/users/oauth2/google/add-strategy/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { GOOGLE_BASE_URL, GOOGLE_CLIENT_ID } from '../__utils__/utils.js'
-import authenticateUser from '../../../../../tools/plugins/authenticateUser.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
const querySchema = Type.Object({
redirectURI: Type.String({ format: 'uri-reference' })
diff --git a/src/services/users/oauth2/google/callback-add-strategy/get.ts b/src/services/users/oauth2/google/callback-add-strategy/get.ts
index 5fa1480..ba87be5 100644
--- a/src/services/users/oauth2/google/callback-add-strategy/get.ts
+++ b/src/services/users/oauth2/google/callback-add-strategy/get.ts
@@ -2,11 +2,11 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { googleStrategy, getGoogleUserData } from '../__utils__/utils.js'
-import { buildQueryURL } from '../../../../../tools/utils/buildQueryURL.js'
-import { getUserWithBearerToken } from '../../../../../tools/plugins/authenticateUser.js'
+import { buildQueryURL } from '#src/tools/utils/buildQueryURL.js'
+import { getUserWithBearerToken } from '#src/tools/plugins/authenticateUser.js'
const querySchema = Type.Object({
code: Type.String(),
diff --git a/src/services/users/oauth2/google/callback/get.ts b/src/services/users/oauth2/google/callback/get.ts
index d496378..188f52a 100644
--- a/src/services/users/oauth2/google/callback/get.ts
+++ b/src/services/users/oauth2/google/callback/get.ts
@@ -2,10 +2,10 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { googleStrategy, getGoogleUserData } from '../__utils__/utils.js'
-import { buildQueryURL } from '../../../../../tools/utils/buildQueryURL.js'
+import { buildQueryURL } from '#src/tools/utils/buildQueryURL.js'
const querySchema = Type.Object({
code: Type.String(),
diff --git a/src/services/users/oauth2/google/signin/get.ts b/src/services/users/oauth2/google/signin/get.ts
index edcf1ec..483f989 100644
--- a/src/services/users/oauth2/google/signin/get.ts
+++ b/src/services/users/oauth2/google/signin/get.ts
@@ -2,8 +2,8 @@ import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import { API_URL } from '../../../../../tools/configurations.js'
-import { fastifyErrors } from '../../../../../models/utils.js'
+import { API_URL } from '#src/tools/configurations.js'
+import { fastifyErrors } from '#src/models/utils.js'
import { GOOGLE_BASE_URL, GOOGLE_CLIENT_ID } from '../__utils__/utils.js'
const querySchema = Type.Object({
diff --git a/src/services/users/refresh-token/__test__/post.test.ts b/src/services/users/refresh-token/__test__/post.test.ts
index eef9c35..7c22795 100644
--- a/src/services/users/refresh-token/__test__/post.test.ts
+++ b/src/services/users/refresh-token/__test__/post.test.ts
@@ -1,19 +1,21 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
import jwt from 'jsonwebtoken'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { refreshTokenExample } from '../../../../models/RefreshToken.js'
-import { expiresIn } from '../../../../tools/utils/jwtToken.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
+import { refreshTokenExample } from '#src/models/RefreshToken.js'
+import { expiresIn } from '#src/tools/utils/jwtToken.js'
-await tap.test('POST /users/refresh-token', async (t) => {
+await test('POST /users/refresh-token', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { refreshToken, refreshTokenStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'refreshToken').value({
...refreshTokenStubValue,
@@ -31,13 +33,13 @@ await tap.test('POST /users/refresh-token', async (t) => {
payload: { refreshToken }
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.type, 'Bearer')
- t.equal(responseJson.expiresIn, expiresIn)
- t.type(responseJson.accessToken, 'string')
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.type, 'Bearer')
+ assert.strictEqual(responseJson.expiresIn, expiresIn)
+ assert.strictEqual(typeof responseJson.accessToken, 'string')
})
- await t.test('fails with refreshToken not saved in database', async (t) => {
+ await t.test('fails with refreshToken not saved in database', async () => {
sinon.stub(prisma, 'refreshToken').value({
findFirst: async () => {
return null
@@ -48,10 +50,10 @@ await tap.test('POST /users/refresh-token', async (t) => {
url: '/users/refresh-token',
payload: { refreshToken: 'somerandomtoken' }
})
- t.equal(response.statusCode, 403)
+ assert.strictEqual(response.statusCode, 403)
})
- await t.test('fails with invalid jwt refreshToken', async (t) => {
+ await t.test('fails with invalid jwt refreshToken', async () => {
const { refreshToken, refreshTokenStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'refreshToken').value({
...refreshTokenStubValue,
@@ -67,6 +69,6 @@ await tap.test('POST /users/refresh-token', async (t) => {
url: '/users/refresh-token',
payload: { refreshToken }
})
- t.equal(response.statusCode, 403)
+ assert.strictEqual(response.statusCode, 403)
})
})
diff --git a/src/services/users/refresh-token/post.ts b/src/services/users/refresh-token/post.ts
index 7e434f5..60ddb9d 100644
--- a/src/services/users/refresh-token/post.ts
+++ b/src/services/users/refresh-token/post.ts
@@ -3,15 +3,15 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import jwt from 'jsonwebtoken'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
import {
generateAccessToken,
jwtSchema,
expiresIn
-} from '../../../tools/utils/jwtToken.js'
-import type { UserRefreshJWT } from '../../../models/User.js'
-import { JWT_REFRESH_SECRET } from '../../../tools/configurations.js'
+} from '#src/tools/utils/jwtToken.js'
+import type { UserRefreshJWT } from '#src/models/User.js'
+import { JWT_REFRESH_SECRET } from '#src/tools/configurations.js'
const bodyPostRefreshTokenSchema = Type.Object({
refreshToken: jwtSchema.refreshToken
diff --git a/src/services/users/reset-password/__test__/post.test.ts b/src/services/users/reset-password/__test__/post.test.ts
index 3d31b53..097a4da 100644
--- a/src/services/users/reset-password/__test__/post.test.ts
+++ b/src/services/users/reset-password/__test__/post.test.ts
@@ -1,19 +1,21 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
import ms from 'ms'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { userExample } from '../../../../models/User.js'
-import { userSettingsExample } from '../../../../models/UserSettings.js'
-import { emailTransporter } from '../../../../tools/email/emailTransporter.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
+import { userSettingsExample } from '#src/models/UserSettings.js'
+import { emailTransporter } from '#src/tools/email/emailTransporter.js'
-await tap.test('POST /users/reset-password', async (t) => {
+await test('POST /users/reset-password', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return userExample
@@ -37,10 +39,10 @@ await tap.test('POST /users/reset-password', async (t) => {
url: '/users/reset-password?redirectURI=https://redirecturi.com',
payload: { email: userExample.email }
})
- t.equal(response.statusCode, 200)
+ assert.strictEqual(response.statusCode, 200)
})
- await t.test("fails with email that doesn't exist", async (t) => {
+ await t.test("fails with email that doesn't exist", async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return null
@@ -51,10 +53,10 @@ await tap.test('POST /users/reset-password', async (t) => {
url: '/users/reset-password?redirectURI=https://redirecturi.com',
payload: { email: userExample.email }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with unconfirmed account', async (t) => {
+ await t.test('fails with unconfirmed account', async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return {
@@ -68,10 +70,10 @@ await tap.test('POST /users/reset-password', async (t) => {
url: '/users/reset-password?redirectURI=https://redirecturi.com',
payload: { email: userExample.email }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test("fails if userSettings doesn't exist", async (t) => {
+ await t.test("fails if userSettings doesn't exist", async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return userExample
@@ -87,10 +89,10 @@ await tap.test('POST /users/reset-password', async (t) => {
url: '/users/reset-password?redirectURI=https://redirecturi.com',
payload: { email: userExample.email }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with a request already in progress', async (t) => {
+ await t.test('fails with a request already in progress', async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return {
@@ -110,6 +112,6 @@ await tap.test('POST /users/reset-password', async (t) => {
url: '/users/reset-password?redirectURI=https://redirecturi.com',
payload: { email: userExample.email }
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/users/reset-password/__test__/put.test.ts b/src/services/users/reset-password/__test__/put.test.ts
index 931c19c..8c7436a 100644
--- a/src/services/users/reset-password/__test__/put.test.ts
+++ b/src/services/users/reset-password/__test__/put.test.ts
@@ -1,17 +1,19 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
import ms from 'ms'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { userExample } from '../../../../models/User.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
-await tap.test('PUT /users/reset-password', async (t) => {
+await test('PUT /users/reset-password', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const temporaryToken = 'random-token'
sinon.stub(prisma, 'user').value({
findFirst: async () => {
@@ -38,10 +40,10 @@ await tap.test('PUT /users/reset-password', async (t) => {
temporaryToken: userExample.temporaryToken
}
})
- t.equal(response.statusCode, 200)
+ assert.strictEqual(response.statusCode, 200)
})
- await t.test('fails with expired temporaryToken', async (t) => {
+ await t.test('fails with expired temporaryToken', async () => {
const temporaryToken = 'random-token'
sinon.stub(prisma, 'user').value({
findFirst: async () => {
@@ -63,6 +65,6 @@ await tap.test('PUT /users/reset-password', async (t) => {
temporaryToken: userExample.temporaryToken
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/users/reset-password/post.ts b/src/services/users/reset-password/post.ts
index 467dfcb..85a1938 100644
--- a/src/services/users/reset-password/post.ts
+++ b/src/services/users/reset-password/post.ts
@@ -5,11 +5,11 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import ms from 'ms'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import { userSchema } from '../../../models/User.js'
-import { sendEmail } from '../../../tools/email/sendEmail.js'
-import type { Language, Theme } from '../../../models/UserSettings.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import { userSchema } from '#src/models/User.js'
+import { sendEmail } from '#src/tools/email/sendEmail.js'
+import type { Language, Theme } from '#src/models/UserSettings.js'
const queryPostResetPasswordSchema = Type.Object({
redirectURI: Type.String({ format: 'uri-reference' })
diff --git a/src/services/users/reset-password/put.ts b/src/services/users/reset-password/put.ts
index 84abf2d..94d756f 100644
--- a/src/services/users/reset-password/put.ts
+++ b/src/services/users/reset-password/put.ts
@@ -3,9 +3,9 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import bcrypt from 'bcryptjs'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import { userSchema } from '../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import { userSchema } from '#src/models/User.js'
const bodyPutResetPasswordSchema = Type.Object({
password: userSchema.password,
diff --git a/src/services/users/signin/__test__/post.test.ts b/src/services/users/signin/__test__/post.test.ts
index b2de702..90a3a5e 100644
--- a/src/services/users/signin/__test__/post.test.ts
+++ b/src/services/users/signin/__test__/post.test.ts
@@ -1,24 +1,26 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
import bcrypt from 'bcryptjs'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { userExample } from '../../../../models/User.js'
-import { refreshTokenExample } from '../../../../models/RefreshToken.js'
-import { expiresIn } from '../../../../tools/utils/jwtToken.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
+import { refreshTokenExample } from '#src/models/RefreshToken.js'
+import { expiresIn } from '#src/tools/utils/jwtToken.js'
const payload = {
email: userExample.email,
password: userExample.password
}
-await tap.test('POST /users/signin', async (t) => {
+await test('POST /users/signin', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return {
@@ -38,12 +40,12 @@ await tap.test('POST /users/signin', async (t) => {
payload
})
const responseJson = response.json()
- t.equal(response.statusCode, 200)
- t.equal(responseJson.type, 'Bearer')
- t.equal(responseJson.expiresIn, expiresIn)
+ assert.strictEqual(response.statusCode, 200)
+ assert.strictEqual(responseJson.type, 'Bearer')
+ assert.strictEqual(responseJson.expiresIn, expiresIn)
})
- await t.test('fails with invalid user', async (t) => {
+ await t.test('fails with invalid user', async () => {
sinon.stub(prisma, 'user').value({
findUnique: () => {
return null
@@ -54,10 +56,10 @@ await tap.test('POST /users/signin', async (t) => {
url: '/users/signin',
payload
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with invalid email', async (t) => {
+ await t.test('fails with invalid email', async () => {
sinon.stub(prisma, 'user').value({
findUnique: () => {
return null
@@ -71,10 +73,10 @@ await tap.test('POST /users/signin', async (t) => {
email: 'incorrect-email'
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test("fails if user hasn't got a password", async (t) => {
+ await t.test("fails if user hasn't got a password", async () => {
sinon.stub(prisma, 'user').value({
findUnique: () => {
return {
@@ -88,10 +90,10 @@ await tap.test('POST /users/signin', async (t) => {
url: '/users/signin',
payload
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with incorrect password', async (t) => {
+ await t.test('fails with incorrect password', async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
return userExample
@@ -105,6 +107,6 @@ await tap.test('POST /users/signin', async (t) => {
password: 'incorrect-password'
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/users/signin/post.ts b/src/services/users/signin/post.ts
index 16f3940..0350c08 100644
--- a/src/services/users/signin/post.ts
+++ b/src/services/users/signin/post.ts
@@ -3,15 +3,15 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import bcrypt from 'bcryptjs'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import { userSchema } from '../../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import { userSchema } from '#src/models/User.js'
import {
generateAccessToken,
generateRefreshToken,
jwtSchema,
expiresIn
-} from '../../../tools/utils/jwtToken.js'
+} from '#src/tools/utils/jwtToken.js'
const bodyPostSigninSchema = Type.Object({
email: userSchema.email,
diff --git a/src/services/users/signout/__test__/delete.test.ts b/src/services/users/signout/__test__/delete.test.ts
index b45e680..9bbe8b6 100644
--- a/src/services/users/signout/__test__/delete.test.ts
+++ b/src/services/users/signout/__test__/delete.test.ts
@@ -1,16 +1,18 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
-import prisma from '../../../../tools/database/prisma.js'
+import { application } from '#src/application.js'
+import { authenticateUserTest } from '#src/__test__/utils/authenticateUserTest.js'
+import prisma from '#src/tools/database/prisma.js'
-await tap.test('DELETE /users/signout', async (t) => {
+await test('DELETE /users/signout', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
const { accessToken, refreshTokenStubValue } = await authenticateUserTest()
sinon.stub(prisma, 'refreshToken').value({
...refreshTokenStubValue,
@@ -25,14 +27,14 @@ await tap.test('DELETE /users/signout', async (t) => {
authorization: `Bearer ${accessToken}`
}
})
- t.equal(response.statusCode, 200)
+ assert.strictEqual(response.statusCode, 200)
})
- await t.test('fails with empty authorized header', async (t) => {
+ await t.test('fails with empty authorized header', async () => {
const response = await application.inject({
method: 'DELETE',
url: '/users/signout'
})
- t.equal(response.statusCode, 401)
+ assert.strictEqual(response.statusCode, 401)
})
})
diff --git a/src/services/users/signout/__test__/post.test.ts b/src/services/users/signout/__test__/post.test.ts
index 6692302..0034c70 100644
--- a/src/services/users/signout/__test__/post.test.ts
+++ b/src/services/users/signout/__test__/post.test.ts
@@ -1,18 +1,20 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
import jwt from 'jsonwebtoken'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { refreshTokenExample } from '../../../../models/RefreshToken.js'
-import type { UserRefreshJWT } from '../../../../models/User.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { refreshTokenExample } from '#src/models/RefreshToken.js'
+import type { UserRefreshJWT } from '#src/models/User.js'
-await tap.test('POST /users/signout', async (t) => {
+await test('POST /users/signout', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
sinon.stub(prisma, 'refreshToken').value({
findFirst: async () => {
return refreshTokenExample
@@ -32,10 +34,10 @@ await tap.test('POST /users/signout', async (t) => {
url: '/users/signout',
payload: { refreshToken: 'jwt token' }
})
- t.equal(response.statusCode, 200)
+ assert.strictEqual(response.statusCode, 200)
})
- await t.test('fails with invalid refreshToken', async (t) => {
+ await t.test('fails with invalid refreshToken', async () => {
sinon.stub(prisma, 'refreshToken').value({
findFirst: async () => {
return null
@@ -46,6 +48,6 @@ await tap.test('POST /users/signout', async (t) => {
url: '/users/signout',
payload: { refreshToken: 'somerandomtoken' }
})
- t.equal(response.statusCode, 404)
+ assert.strictEqual(response.statusCode, 404)
})
})
diff --git a/src/services/users/signout/delete.ts b/src/services/users/signout/delete.ts
index f84077f..b8f0254 100644
--- a/src/services/users/signout/delete.ts
+++ b/src/services/users/signout/delete.ts
@@ -1,9 +1,9 @@
import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import authenticateUser from '../../../tools/plugins/authenticateUser.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import authenticateUser from '#src/tools/plugins/authenticateUser.js'
const deleteSignoutSchema: FastifySchema = {
description: 'Signout the user to every connected devices',
diff --git a/src/services/users/signout/post.ts b/src/services/users/signout/post.ts
index b3cc681..b58f064 100644
--- a/src/services/users/signout/post.ts
+++ b/src/services/users/signout/post.ts
@@ -3,11 +3,11 @@ import { Type } from '@sinclair/typebox'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
import jwt from 'jsonwebtoken'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import { JWT_REFRESH_SECRET } from '../../../tools/configurations.js'
-import type { UserRefreshJWT } from '../../../models/User.js'
-import { jwtSchema } from '../../../tools/utils/jwtToken.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import { JWT_REFRESH_SECRET } from '#src/tools/configurations.js'
+import type { UserRefreshJWT } from '#src/models/User.js'
+import { jwtSchema } from '#src/tools/utils/jwtToken.js'
const bodyPostSignoutSchema = Type.Object({
refreshToken: jwtSchema.refreshToken
diff --git a/src/services/users/signup/__test__/post.test.ts b/src/services/users/signup/__test__/post.test.ts
index 70685aa..b487900 100644
--- a/src/services/users/signup/__test__/post.test.ts
+++ b/src/services/users/signup/__test__/post.test.ts
@@ -1,11 +1,13 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { application } from '../../../../application.js'
-import prisma from '../../../../tools/database/prisma.js'
-import { userExample } from '../../../../models/User.js'
-import { userSettingsExample } from '../../../../models/UserSettings.js'
-import { emailTransporter } from '../../../../tools/email/emailTransporter.js'
+import { application } from '#src/application.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
+import { userSettingsExample } from '#src/models/UserSettings.js'
+import { emailTransporter } from '#src/tools/email/emailTransporter.js'
const payload = {
name: userExample.name,
@@ -15,12 +17,12 @@ const payload = {
language: userSettingsExample.language
}
-await tap.test('POST /users/signup', async (t) => {
+await test('POST /users/signup', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('succeeds', async (t) => {
+ await t.test('succeeds', async () => {
sinon.stub(prisma, 'user').value({
findFirst: async () => {
return null
@@ -41,12 +43,12 @@ await tap.test('POST /users/signup', async (t) => {
payload
})
const responseJson = response.json()
- t.equal(response.statusCode, 201)
- t.equal(responseJson.user.name, userExample.name)
- t.equal(responseJson.user.email, userExample.email)
+ assert.strictEqual(response.statusCode, 201)
+ assert.strictEqual(responseJson.user.name, userExample.name)
+ assert.strictEqual(responseJson.user.email, userExample.email)
})
- await t.test('fails with invalid email', async (t) => {
+ await t.test('fails with invalid email', async () => {
sinon.stub(prisma, 'user').value({
findFirst: async () => {
return null
@@ -61,10 +63,10 @@ await tap.test('POST /users/signup', async (t) => {
email: 'incorrect-email@abc'
}
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
- await t.test('fails with already taken `name` or `email`', async (t) => {
+ await t.test('fails with already taken `name` or `email`', async () => {
sinon.stub(prisma, 'user').value({
findFirst: async () => {
return userExample
@@ -76,6 +78,6 @@ await tap.test('POST /users/signup', async (t) => {
url: '/users/signup',
payload
})
- t.equal(response.statusCode, 400)
+ assert.strictEqual(response.statusCode, 400)
})
})
diff --git a/src/services/users/signup/post.ts b/src/services/users/signup/post.ts
index e4e4150..506d367 100644
--- a/src/services/users/signup/post.ts
+++ b/src/services/users/signup/post.ts
@@ -5,12 +5,12 @@ import { Type } from '@sinclair/typebox'
import bcrypt from 'bcryptjs'
import type { FastifyPluginAsync, FastifySchema } from 'fastify'
-import prisma from '../../../tools/database/prisma.js'
-import { fastifyErrors } from '../../../models/utils.js'
-import type { BodyUserSchemaType } from '../../../models/User.js'
-import { bodyUserSchema, userPublicSchema } from '../../../models/User.js'
-import { sendEmail } from '../../../tools/email/sendEmail.js'
-import { API_URL } from '../../../tools/configurations.js'
+import prisma from '#src/tools/database/prisma.js'
+import { fastifyErrors } from '#src/models/utils.js'
+import type { BodyUserSchemaType } from '#src/models/User.js'
+import { bodyUserSchema, userPublicSchema } from '#src/models/User.js'
+import { sendEmail } from '#src/tools/email/sendEmail.js'
+import { API_URL } from '#src/tools/configurations.js'
const queryPostSignupSchema = Type.Object({
redirectURI: Type.Optional(Type.String({ format: 'uri-reference' }))
diff --git a/src/tools/configurations.ts b/src/tools/configurations.ts
index 28f51db..63439a0 100644
--- a/src/tools/configurations.ts
+++ b/src/tools/configurations.ts
@@ -4,7 +4,7 @@ import dotenv from 'dotenv'
dotenv.config()
-export const PORT = parseInt(process.env['PORT'] ?? '8080', 10)
+export const PORT = Number.parseInt(process.env['PORT'] ?? '8080', 10)
export const HOST = process.env['HOST'] ?? '0.0.0.0'
export const API_URL = process.env['API_URL'] ?? `http://${HOST}:${PORT}`
export const FILE_UPLOADS_API_URL =
diff --git a/src/tools/email/emailTransporter.ts b/src/tools/email/emailTransporter.ts
index 55c3a7b..8d94aa1 100644
--- a/src/tools/email/emailTransporter.ts
+++ b/src/tools/email/emailTransporter.ts
@@ -3,7 +3,7 @@ import nodemailer from 'nodemailer'
import type SMTPTransport from 'nodemailer/lib/smtp-transport/index.js'
dotenv.config()
-const EMAIL_PORT = parseInt(process.env['EMAIL_PORT'] ?? '465', 10)
+const EMAIL_PORT = Number.parseInt(process.env['EMAIL_PORT'] ?? '465', 10)
export const EMAIL_INFO: SMTPTransport.Options = {
host: process.env['EMAIL_HOST'],
diff --git a/src/tools/email/sendEmail.ts b/src/tools/email/sendEmail.ts
index ce7ad01..e3a5f1e 100644
--- a/src/tools/email/sendEmail.ts
+++ b/src/tools/email/sendEmail.ts
@@ -3,9 +3,15 @@ import { URL, fileURLToPath } from 'node:url'
import ejs from 'ejs'
-import type { Language, Theme } from '../../models/UserSettings.js'
-import { EMAIL_LOCALES_URL, EMAIL_TEMPLATE_URL } from '../configurations.js'
-import { emailTransporter, EMAIL_INFO } from './emailTransporter.js'
+import type { Language, Theme } from '#src/models/UserSettings.js'
+import {
+ EMAIL_LOCALES_URL,
+ EMAIL_TEMPLATE_URL
+} from '#src/tools/configurations.js'
+import {
+ emailTransporter,
+ EMAIL_INFO
+} from '#src/tools/email/emailTransporter.js'
interface EmailTranslation {
subject: string
diff --git a/src/tools/plugins/__test__/authenticateUser.test.ts b/src/tools/plugins/__test__/authenticateUser.test.ts
index 83088e9..314383e 100644
--- a/src/tools/plugins/__test__/authenticateUser.test.ts
+++ b/src/tools/plugins/__test__/authenticateUser.test.ts
@@ -1,98 +1,97 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
import httpErrors from 'http-errors'
import jwt from 'jsonwebtoken'
-import { getUserWithBearerToken } from '../authenticateUser.js'
-import prisma from '../../database/prisma.js'
-import { userExample } from '../../../models/User.js'
+import { getUserWithBearerToken } from '#src/tools/plugins/authenticateUser.js'
+import prisma from '#src/tools/database/prisma.js'
+import { userExample } from '#src/models/User.js'
const { Unauthorized, Forbidden, BadRequest } = httpErrors
-await tap.test(
- 'tools/plugins/authenticateUser - getUserWithBearerToken',
- async (t) => {
- t.afterEach(() => {
- sinon.restore()
- })
+await test('tools/plugins/authenticateUser - getUserWithBearerToken', async (t) => {
+ t.afterEach(() => {
+ sinon.restore()
+ })
- await t.test('shoulds succeeds with the right information', async (t) => {
+ await t.test('shoulds succeeds with the right information', async () => {
+ sinon.stub(prisma, 'user').value({
+ findUnique: async () => {
+ return userExample
+ }
+ })
+ const currentStrategy = 'Local'
+ sinon.stub(jwt, 'verify').value(() => {
+ return { id: userExample.id, currentStrategy }
+ })
+ const userWithBearerToken = await getUserWithBearerToken('Bearer token')
+ assert.strictEqual(userWithBearerToken.current.id, userExample.id)
+ assert.strictEqual(userWithBearerToken.current.name, userExample.name)
+ assert.strictEqual(userWithBearerToken.accessToken, 'token')
+ assert.strictEqual(userWithBearerToken.currentStrategy, currentStrategy)
+ })
+
+ await t.test(
+ 'shoulds throws `Unauthorized` if `bearerToken` is not a string',
+ async () => {
+ await assert.rejects(getUserWithBearerToken(undefined), Unauthorized)
+ }
+ )
+
+ await t.test(
+ 'shoulds throws `Unauthorized` if `bearerToken` is not to the right format: `"Bearer token"`',
+ async () => {
+ await assert.rejects(getUserWithBearerToken('Bearer'), Unauthorized)
+ await assert.rejects(getUserWithBearerToken(''), Unauthorized)
+ await assert.rejects(
+ getUserWithBearerToken('Bearer token token2'),
+ Unauthorized
+ )
+ }
+ )
+
+ await t.test(
+ 'shoulds throws `Forbidden` if invalid `bearerToken` by `jwt.verify`',
+ async () => {
+ sinon.stub(jwt, 'verify').value(() => {
+ throw new Error('Invalid token')
+ })
+ await assert.rejects(getUserWithBearerToken('Bearer token'), Forbidden)
+ }
+ )
+
+ await t.test(
+ "shoulds throws `Forbidden` if the user doesn't exist",
+ async () => {
sinon.stub(prisma, 'user').value({
findUnique: async () => {
- return userExample
+ return null
}
})
- const currentStrategy = 'Local'
sinon.stub(jwt, 'verify').value(() => {
- return { id: userExample.id, currentStrategy }
+ return { id: userExample.id }
})
- const userWithBearerToken = await getUserWithBearerToken('Bearer token')
- t.equal(userWithBearerToken.current.id, userExample.id)
- t.equal(userWithBearerToken.current.name, userExample.name)
- t.equal(userWithBearerToken.accessToken, 'token')
- t.equal(userWithBearerToken.currentStrategy, currentStrategy)
- })
+ await assert.rejects(getUserWithBearerToken('Bearer token'), Forbidden)
+ }
+ )
- await t.test(
- 'shoulds throws `Unauthorized` if `bearerToken` is not a string',
- async (t) => {
- await t.rejects(getUserWithBearerToken(undefined), Unauthorized)
- }
- )
-
- await t.test(
- 'shoulds throws `Unauthorized` if `bearerToken` is not to the right format: `"Bearer token"`',
- async (t) => {
- await t.rejects(getUserWithBearerToken('Bearer'), Unauthorized)
- await t.rejects(getUserWithBearerToken(''), Unauthorized)
- await t.rejects(
- getUserWithBearerToken('Bearer token token2'),
- Unauthorized
- )
- }
- )
-
- await t.test(
- 'shoulds throws `Forbidden` if invalid `bearerToken` by `jwt.verify`',
- async (t) => {
- sinon.stub(jwt, 'verify').value(() => {
- throw new Error('Invalid token')
- })
- await t.rejects(getUserWithBearerToken('Bearer token'), Forbidden)
- }
- )
-
- await t.test(
- "shoulds throws `Forbidden` if the user doesn't exist",
- async (t) => {
- sinon.stub(prisma, 'user').value({
- findUnique: async () => {
- return null
+ await t.test(
+ 'shoulds throws `BadRequest` if the user account is not confirmed',
+ async () => {
+ sinon.stub(prisma, 'user').value({
+ findUnique: async () => {
+ return {
+ ...userExample,
+ isConfirmed: false
}
- })
- sinon.stub(jwt, 'verify').value(() => {
- return { id: userExample.id }
- })
- await t.rejects(getUserWithBearerToken('Bearer token'), Forbidden)
- }
- )
-
- await t.test(
- 'shoulds throws `BadRequest` if the user account is not confirmed',
- async (t) => {
- sinon.stub(prisma, 'user').value({
- findUnique: async () => {
- return {
- ...userExample,
- isConfirmed: false
- }
- }
- })
- sinon.stub(jwt, 'verify').value(() => {
- return { id: userExample.id, currentStrategy: 'Local' }
- })
- await t.rejects(getUserWithBearerToken('Bearer token'), BadRequest)
- }
- )
- }
-)
+ }
+ })
+ sinon.stub(jwt, 'verify').value(() => {
+ return { id: userExample.id, currentStrategy: 'Local' }
+ })
+ await assert.rejects(getUserWithBearerToken('Bearer token'), BadRequest)
+ }
+ )
+})
diff --git a/src/tools/plugins/__test__/socket-io.test.ts b/src/tools/plugins/__test__/socket-io.test.ts
index 81fc29a..b39ecf8 100644
--- a/src/tools/plugins/__test__/socket-io.test.ts
+++ b/src/tools/plugins/__test__/socket-io.test.ts
@@ -1,17 +1,19 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import fastify from 'fastify'
-import fastifySocketIo from '../socket-io.js'
+import fastifySocketIo from '#src/tools/plugins/socket-io.js'
-await tap.test('tools/plugins/socket-io', async (t) => {
- await t.test('should close socket server on fastify close', async (t) => {
+await test('tools/plugins/socket-io', async (t) => {
+ await t.test('should close socket server on fastify close', async () => {
const PORT = 3030
const application = fastify()
await application.register(fastifySocketIo)
await application.listen({
port: PORT
})
- t.not(application.io, null)
+ assert.notStrictEqual(application.io, null)
await application.close()
})
})
diff --git a/src/tools/plugins/authenticateUser.ts b/src/tools/plugins/authenticateUser.ts
index b5b7b14..ba2e46c 100644
--- a/src/tools/plugins/authenticateUser.ts
+++ b/src/tools/plugins/authenticateUser.ts
@@ -2,9 +2,9 @@ import fastifyPlugin from 'fastify-plugin'
import httpErrors from 'http-errors'
import jwt from 'jsonwebtoken'
-import prisma from '../database/prisma.js'
-import type { UserJWT, UserRequest } from '../../models/User.js'
-import { JWT_ACCESS_SECRET } from '../configurations.js'
+import prisma from '#src/tools/database/prisma.js'
+import type { UserJWT, UserRequest } from '#src/models/User.js'
+import { JWT_ACCESS_SECRET } from '#src/tools/configurations.js'
const { Unauthorized, Forbidden, BadRequest } = httpErrors
diff --git a/src/tools/plugins/socket-io.ts b/src/tools/plugins/socket-io.ts
index 8aa681e..63c9126 100644
--- a/src/tools/plugins/socket-io.ts
+++ b/src/tools/plugins/socket-io.ts
@@ -3,8 +3,8 @@ import type { ServerOptions } from 'socket.io'
import { Server as SocketIoServer } from 'socket.io'
import { authorize } from '@thream/socketio-jwt'
-import prisma from '../database/prisma.js'
-import { JWT_ACCESS_SECRET } from '../configurations.js'
+import prisma from '#src/tools/database/prisma.js'
+import { JWT_ACCESS_SECRET } from '#src/tools/configurations.js'
interface EmitEventOptions {
event: string
diff --git a/src/tools/utils/OAuthStrategy.ts b/src/tools/utils/OAuthStrategy.ts
index fd62598..f6b87fe 100644
--- a/src/tools/utils/OAuthStrategy.ts
+++ b/src/tools/utils/OAuthStrategy.ts
@@ -3,10 +3,10 @@ import {
expiresIn,
generateAccessToken,
generateRefreshToken
-} from './jwtToken.js'
-import prisma from '../database/prisma.js'
-import type { ProviderOAuth } from '../../models/OAuth.js'
-import type { UserRequest } from '../../models/User.js'
+} from '#src/tools/utils/jwtToken.js'
+import prisma from '#src/tools/database/prisma.js'
+import type { ProviderOAuth } from '#src/models/OAuth.js'
+import type { UserRequest } from '#src/models/User.js'
interface ProviderData {
name: string
diff --git a/src/tools/utils/__test__/OAuthStrategy.test.ts b/src/tools/utils/__test__/OAuthStrategy.test.ts
index 3db68a7..ff5cda1 100644
--- a/src/tools/utils/__test__/OAuthStrategy.test.ts
+++ b/src/tools/utils/__test__/OAuthStrategy.test.ts
@@ -1,21 +1,23 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
+
import sinon from 'sinon'
-import { userExample } from '../../../models/User.js'
-import { userSettingsExample } from '../../../models/UserSettings.js'
-import { OAuthStrategy } from '../OAuthStrategy.js'
-import prisma from '../../database/prisma.js'
-import { refreshTokenExample } from '../../../models/RefreshToken.js'
+import { userExample } from '#src/models/User.js'
+import { userSettingsExample } from '#src/models/UserSettings.js'
+import { OAuthStrategy } from '#src/tools/utils/OAuthStrategy.js'
+import prisma from '#src/tools/database/prisma.js'
+import { refreshTokenExample } from '#src/models/RefreshToken.js'
const oauthStrategy = new OAuthStrategy('Discord')
-await tap.test('tools/utils/OAuthStrategy', async (t) => {
+await test('tools/utils/OAuthStrategy', async (t) => {
await t.test('callbackSignin', async (t) => {
t.afterEach(() => {
sinon.restore()
})
- await t.test('should signup the user', async (t) => {
+ await t.test('should signup the user', async () => {
const name = 'Martin'
const id = '12345'
sinon.stub(prisma, 'user').value({
@@ -60,7 +62,7 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
const userCreateSpy = sinon.spy(prisma.user, 'create')
const userSettingCreateSpy = sinon.spy(prisma.userSetting, 'create')
await oauthStrategy.callbackSignin({ id, name })
- t.equal(
+ assert.strictEqual(
oAuthCreateSpy.calledWith({
data: {
userId: userExample.id,
@@ -70,7 +72,7 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
}),
true
)
- t.equal(
+ assert.strictEqual(
oAuthFindFirstSpy.calledWith({
where: {
provider: 'Discord',
@@ -79,9 +81,9 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
}),
true
)
- t.equal(userCountSpy.calledWith({ where: { name } }), true)
- t.equal(userCreateSpy.calledWith({ data: { name } }), true)
- t.equal(
+ assert.strictEqual(userCountSpy.calledWith({ where: { name } }), true)
+ assert.strictEqual(userCreateSpy.calledWith({ data: { name } }), true)
+ assert.strictEqual(
userSettingCreateSpy.calledWith({
data: {
userId: userExample.id
@@ -97,7 +99,7 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
sinon.restore()
})
- await t.test('should add the strategy to the user', async (t) => {
+ await t.test('should add the strategy to the user', async () => {
const name = userExample.name
const id = '12345'
sinon.stub(prisma, 'oAuth').value({
@@ -121,8 +123,8 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
{ id, name },
{ accessToken: '123', current: userExample, currentStrategy: 'Local' }
)
- t.equal(result, 'success')
- t.equal(
+ assert.strictEqual(result, 'success')
+ assert.strictEqual(
oAuthCreateSpy.calledWith({
data: {
userId: userExample.id,
@@ -132,7 +134,7 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
}),
true
)
- t.equal(
+ assert.strictEqual(
oAuthFindFirstSpy.calledWith({
where: {
provider: 'Discord',
@@ -145,7 +147,7 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
await t.test(
'should not add the strategy if the account of the provider is already used',
- async (t) => {
+ async () => {
const name = userExample.name
const id = '12345'
sinon.stub(prisma, 'oAuth').value({
@@ -165,8 +167,11 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
{ id, name },
{ accessToken: '123', current: userExample, currentStrategy: 'Local' }
)
- t.equal(result, 'This account is already used by someone else')
- t.equal(
+ assert.strictEqual(
+ result,
+ 'This account is already used by someone else'
+ )
+ assert.strictEqual(
oAuthFindFirstSpy.calledWith({
where: {
provider: 'Discord',
@@ -180,7 +185,7 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
await t.test(
'should not add the strategy if the user is already connected with it',
- async (t) => {
+ async () => {
const name = userExample.name
const id = '12345'
sinon.stub(prisma, 'oAuth').value({
@@ -200,8 +205,8 @@ await tap.test('tools/utils/OAuthStrategy', async (t) => {
{ id, name },
{ accessToken: '123', current: userExample, currentStrategy: 'Local' }
)
- t.equal(result, 'You are already using this account')
- t.equal(
+ assert.strictEqual(result, 'You are already using this account')
+ assert.strictEqual(
oAuthFindFirstSpy.calledWith({
where: {
provider: 'Discord',
diff --git a/src/tools/utils/__test__/buildQueryURL.test.ts b/src/tools/utils/__test__/buildQueryURL.test.ts
index 41912f8..78635c1 100644
--- a/src/tools/utils/__test__/buildQueryURL.test.ts
+++ b/src/tools/utils/__test__/buildQueryURL.test.ts
@@ -1,21 +1,22 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
import { buildQueryURL } from '../buildQueryURL.js'
-await tap.test('tools/utils/buildQueryUrl', async (t) => {
- t.equal(
+await test('tools/utils/buildQueryUrl', async () => {
+ assert.strictEqual(
buildQueryURL('http://localhost:8080', {
test: 'query'
}),
'http://localhost:8080/?test=query'
)
- t.equal(
+ assert.strictEqual(
buildQueryURL('http://localhost:8080/', {
test: 'query'
}),
'http://localhost:8080/?test=query'
)
- t.equal(
+ assert.strictEqual(
buildQueryURL('http://localhost:3000', {
test: 'query',
code: 'abc'
diff --git a/src/tools/utils/__test__/parseStringNullish.test.ts b/src/tools/utils/__test__/parseStringNullish.test.ts
index e848612..05aed0b 100644
--- a/src/tools/utils/__test__/parseStringNullish.test.ts
+++ b/src/tools/utils/__test__/parseStringNullish.test.ts
@@ -1,27 +1,31 @@
-import tap from 'tap'
+import test from 'node:test'
+import assert from 'node:assert/strict'
import { parseStringNullish } from '../parseStringNullish.js'
const defaultString = 'defaultString'
-await tap.test('tools/utils/parseStringNullish', async (t) => {
+await test('tools/utils/parseStringNullish', async (t) => {
await t.test(
'returns `defaultString` if `string === undefined`',
- async (t) => {
- t.equal(parseStringNullish(defaultString, undefined), defaultString)
+ async () => {
+ assert.strictEqual(
+ parseStringNullish(defaultString, undefined),
+ defaultString
+ )
}
)
- await t.test('returns `null` if `string === null`', async (t) => {
- t.equal(parseStringNullish(defaultString, null), null)
+ await t.test('returns `null` if `string === null`', async () => {
+ assert.strictEqual(parseStringNullish(defaultString, null), null)
})
- await t.test('returns `null` if `string.length === 0`', async (t) => {
- t.equal(parseStringNullish(defaultString, ''), null)
+ await t.test('returns `null` if `string.length === 0`', async () => {
+ assert.strictEqual(parseStringNullish(defaultString, ''), null)
})
- await t.test('returns `string` if `string.length > 0`', async (t) => {
+ await t.test('returns `string` if `string.length > 0`', async () => {
const string = 'myString'
- t.equal(parseStringNullish(defaultString, string), string)
+ assert.strictEqual(parseStringNullish(defaultString, string), string)
})
})
diff --git a/src/tools/utils/buildQueryURL.ts b/src/tools/utils/buildQueryURL.ts
index 74be040..a413e57 100644
--- a/src/tools/utils/buildQueryURL.ts
+++ b/src/tools/utils/buildQueryURL.ts
@@ -9,8 +9,8 @@ export const buildQueryURL = (
queryObject: ObjectAny
): string => {
const url = new URL(baseURL)
- Object.entries(queryObject).forEach(([query, value]) => {
+ for (const [query, value] of Object.entries(queryObject)) {
url.searchParams.append(query, value)
- })
+ }
return url.href
}
diff --git a/src/tools/utils/jwtToken.ts b/src/tools/utils/jwtToken.ts
index 8074b4a..eb9d9f8 100644
--- a/src/tools/utils/jwtToken.ts
+++ b/src/tools/utils/jwtToken.ts
@@ -4,13 +4,13 @@ import { Type } from '@sinclair/typebox'
import jwt from 'jsonwebtoken'
import ms from 'ms'
-import prisma from '../database/prisma.js'
-import type { UserJWT } from '../../models/User.js'
+import prisma from '#src/tools/database/prisma.js'
+import type { UserJWT } from '#src/models/User.js'
import {
JWT_ACCESS_EXPIRES_IN,
JWT_ACCESS_SECRET,
JWT_REFRESH_SECRET
-} from '../configurations.js'
+} from '#src/tools/configurations.js'
export interface ResponseJWT {
accessToken: string
diff --git a/src/tools/utils/uploadFile.ts b/src/tools/utils/uploadFile.ts
index 5ae0543..99f084e 100644
--- a/src/tools/utils/uploadFile.ts
+++ b/src/tools/utils/uploadFile.ts
@@ -8,7 +8,7 @@ import type { SavedMultipartFile } from '@fastify/multipart'
import {
FILE_UPLOADS_API_KEY,
FILE_UPLOADS_API_URL
-} from '../configurations.js'
+} from '#src/tools/configurations.js'
export const fileUploadAPI = axios.create({
baseURL: FILE_UPLOADS_API_URL,
@@ -44,6 +44,7 @@ export const uploadFile = async (
}
})
} catch (error) {
+ console.error(error)
throw fastify.httpErrors.requestHeaderFieldsTooLarge(
`File should be less than ${MAXIMUM_FILE_SIZE}mb.`
)