From 7f9419f01bfd21f4cf23b9628aec6379956937e9 Mon Sep 17 00:00:00 2001 From: didinele Date: Wed, 1 Feb 2023 16:20:36 +0200 Subject: [PATCH] refactor: monorepo setup --- .dockerignore | 12 + .env.example | 5 + .eslintrc.json | 3 +- .gitignore | 5 +- .husky/pre-commit | 2 +- .prettierignore | 3 +- Dockerfile | 26 + README.md | 2 +- docker-compose.yml | 38 + package.json | 44 +- packages/api/not_importable.js | 1 + packages/api/package.json | 43 + packages/api/src/index.ts | 60 + packages/api/src/routeTypes.ts | 49 + packages/api/src/routes/helloWorld.ts | 25 + packages/api/src/routes/index.ts | 1 + packages/api/src/util/env.ts | 25 + packages/api/src/util/logger.ts | 46 + packages/api/src/util/models.ts | 9 + packages/api/src/util/snowflakeSchema.ts | 3 + packages/api/tsconfig.eslint.json | 18 + packages/api/tsconfig.json | 9 + packages/bot/package.json | 39 + packages/bot/src/deploy.ts | 8 + packages/bot/src/events/interactionCreate.ts | 40 + packages/bot/src/events/ready.ts | 14 + packages/bot/src/index.ts | 33 + packages/bot/src/struct/Command.ts | 46 + packages/bot/src/struct/CommandHandler.ts | 277 ++ packages/bot/src/struct/Component.ts | 21 + packages/bot/src/struct/Env.ts | 23 + packages/bot/src/struct/Event.ts | 21 + packages/bot/src/struct/EventHandler.ts | 32 + packages/bot/src/util/logger.ts | 46 + packages/bot/tsconfig.eslint.json | 18 + packages/bot/tsconfig.json | 8 + prisma/schema.prisma | 12 + src/__tests__/index.test.ts | 6 - src/index.ts | 1 - tsconfig.json | 7 +- turbo.json | 13 + vitest.config.ts | 13 - yarn.lock | 2484 +++++++----------- 43 files changed, 2024 insertions(+), 1567 deletions(-) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 packages/api/not_importable.js create mode 100644 packages/api/package.json create mode 100644 packages/api/src/index.ts create mode 100644 packages/api/src/routeTypes.ts create mode 100644 packages/api/src/routes/helloWorld.ts create mode 100644 packages/api/src/routes/index.ts create mode 100644 packages/api/src/util/env.ts create mode 100644 packages/api/src/util/logger.ts create mode 100644 packages/api/src/util/models.ts create mode 100644 packages/api/src/util/snowflakeSchema.ts create mode 100644 packages/api/tsconfig.eslint.json create mode 100644 packages/api/tsconfig.json create mode 100644 packages/bot/package.json create mode 100644 packages/bot/src/deploy.ts create mode 100644 packages/bot/src/events/interactionCreate.ts create mode 100644 packages/bot/src/events/ready.ts create mode 100644 packages/bot/src/index.ts create mode 100644 packages/bot/src/struct/Command.ts create mode 100644 packages/bot/src/struct/CommandHandler.ts create mode 100644 packages/bot/src/struct/Component.ts create mode 100644 packages/bot/src/struct/Env.ts create mode 100644 packages/bot/src/struct/Event.ts create mode 100644 packages/bot/src/struct/EventHandler.ts create mode 100644 packages/bot/src/util/logger.ts create mode 100644 packages/bot/tsconfig.eslint.json create mode 100644 packages/bot/tsconfig.json create mode 100644 prisma/schema.prisma delete mode 100644 src/__tests__/index.test.ts delete mode 100644 src/index.ts create mode 100644 turbo.json delete mode 100644 vitest.config.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f874ea6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +**/node_modules +.env +.env.*.example + +coverage +**/dist/* +**/Dockerfile +docker-compose.yml + +.pnp.* + +.turbo diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..b4e7551 --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +DATABASE_PORT=5432 # You should only change this if you need 2 instances on the same machine +DATABASE_URL="postgresql://modmail:admin@localhost:${DATABASE_PORT}/modmail" # You should almost never change this, unless you know what you're doing +NODE_ENV=prod # Change to dev if you're trying to work on the project locally +DISCORD_CLIENT_ID= # Copy this from the dev portal +DISCORD_TOKEN= # Copy this from the dev portal diff --git a/.eslintrc.json b/.eslintrc.json index 78b149b..40e81a8 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -13,11 +13,10 @@ "rules": { "@typescript-eslint/ban-types": "off", "@typescript-eslint/no-extraneous-class": "off", + "import/extensions": "error", "curly": ["error", "all"], - "eqeqeq": ["error", "always", { "null": "ignore" }], "no-eq-null": "off", "no-unused-vars": "off", - "import/extensions": "off", "no-useless-constructor": "off", "unicorn/require-post-message-target-origin": "off" } diff --git a/.gitignore b/.gitignore index fd0ac9d..59183e1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ node_modules .env coverage/* -dist/* +**/dist/* .yarn/* !.yarn/patches @@ -11,3 +11,6 @@ dist/* !.yarn/sdks !.yarn/versions .pnp.* +logs + +.turbo diff --git a/.husky/pre-commit b/.husky/pre-commit index 3711055..2e536a9 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -yarn build && yarn lint && yarn test +yarn build && yarn lint diff --git a/.prettierignore b/.prettierignore index aebaa58..f86b3a2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,5 @@ node_modules/* coverage/* -dist/* +**/dist/* .yarn/* +.turbo diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8756523 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM node:16-alpine +LABEL name "somebot" + +WORKDIR /usr/somebot + +RUN apk add --update \ +&& apk add --no-cache ca-certificates \ +&& apk add --no-cache --virtual .build-deps curl git python3 alpine-sdk libc6-compat + +COPY turbo.json package.json tsconfig.json yarn.lock .yarnrc.yml ./ +COPY .yarn ./.yarn + +COPY packages/api/package.json ./packages/api/package.json +COPY packages/bot/package.json ./packages/bot/package.json + +RUN yarn --immutable + +COPY prisma ./prisma +RUN yarn prisma generate + +COPY packages/api ./packages/api +COPY packages/bot ./packages/bot + +RUN yarn build + +RUN yarn workspaces focus --all --production diff --git a/README.md b/README.md index 3dd284a..7eb4bf1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # template -Simple template for monolith ChatSift projects. +Simple template for ChatSift bots. This template repository is licensed under a modified version of the MIT license, allowing you to do whatever you want with the source code and setup here without the need to provide credit/the original LICENSE file. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9109d0d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3.7' + +services: + postgres: + image: postgres:12-alpine + environment: + POSTGRES_USER: 'somebot' + POSTGRES_PASSWORD: 'admin' + POSTGRES_DB: 'somebot' + volumes: + - postgres-data:/var/lib/postgresql/data + restart: unless-stopped + ports: + - 127.0.0.1:${DATABASE_PORT}:5432 + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U somebot'] + interval: 10s + timeout: 5s + + bot: + image: chatsift/somebot + build: + context: ./ + dockerfile: ./Dockerfile + env_file: + - ./.env + environment: + DATABASE_URL: 'postgresql://somebot:admin@postgres:5432/somebot' + restart: unless-stopped + volumes: + - ./logs:/usr/somebot/logs + depends_on: + - postgres + command: ['node', '--enable-source-maps', '--no-warnings', './packages/bot/dist/index.js'] + +volumes: + postgres-data: + name: 'somebot-postgres-data' diff --git a/package.json b/package.json index a45875f..4c295a0 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,28 @@ { - "name": "template", - "description": "owo", + "name": "@chatsift/somebot", + "description": "This does cool stuff", "packageManager": "yarn@3.3.1", - "main": "./dist/index.js", - "version": "0.1.0-dev", - "type": "module", + "private": true, + "version": "0.0.0", + "workspaces": [ + "packages/*" + ], "repository": { "type": "git", - "url": "https://github.com/chatsift/template.git" + "url": "https://github.com/chatsift/bot-template.git" }, "bugs": { - "url": "https://github.com/chatsift/template/issues" + "url": "https://github.com/chatsift/bot-template/issues" }, - "homepage": "https://github.com/chatsift/template", + "homepage": "https://github.com/chatsift/bot-template", "scripts": { - "lint": "eslint src --ext .ts && prettier --check --plugin-search-dir=. .", - "build": "tsc", - "test": "vitest run", + "lint": "turbo run lint && prettier --check --plugin-search-dir=. .", + "build": "turbo run build", "format": "prettier --write --plugin-search-dir=. .", + "prisma": "dotenv -e .env prisma", + "deploy-commands": "rimraf ./packages/bot/dist && turbo run --no-cache build --filter ./packages/bot && dotenv -e .env -v DEPLOY=true -- node --enable-source-maps ./packages/bot/dist/index.js", + "start-bot": "dotenv -e .env -- node --enable-source-maps ./packages/bot/dist/index.js", + "start-api": "dotenv -e .env -- node --enable-source-maps ./packages/api/dist/index.js", "prepare": "is-ci || husky install", "update": "yarn upgrade-interactive" }, @@ -28,9 +33,9 @@ "@commitlint/cli": "^17.4.2", "@commitlint/config-angular": "^17.4.2", "@types/node": "^16.18.11", - "@typescript-eslint/eslint-plugin": "^5.49.0", - "@typescript-eslint/parser": "^5.49.0", - "@vitest/coverage-c8": "^0.28.3", + "@typescript-eslint/eslint-plugin": "^5.50.0", + "@typescript-eslint/parser": "^5.50.0", + "dotenv-cli": "^7.0.0", "eslint": "^8.33.0", "eslint-config-neon": "^0.1.40", "eslint-plugin-typescript-sort-keys": "^2.1.0", @@ -38,12 +43,9 @@ "is-ci": "^3.0.1", "prettier": "^2.8.3", "prettier-eslint": "^15.0.1", - "typescript": "^4.9.4", - "vitest": "^0.28.3" - }, - "dependencies": { - "reflect-metadata": "^0.1.13", - "tslib": "^2.5.0", - "tsyringe": "^4.7.0" + "prisma": "^4.9.0", + "rimraf": "^4.1.2", + "turbo": "~1.6.3", + "typescript": "^4.9.5" } } diff --git a/packages/api/not_importable.js b/packages/api/not_importable.js new file mode 100644 index 0000000..3130bf0 --- /dev/null +++ b/packages/api/not_importable.js @@ -0,0 +1 @@ +throw new Error('This module should only be used for compile-time imports. It should not be imported in runtime.'); diff --git a/packages/api/package.json b/packages/api/package.json new file mode 100644 index 0000000..28fb066 --- /dev/null +++ b/packages/api/package.json @@ -0,0 +1,43 @@ +{ + "name": "@chatsift/somebot-api", + "main": "./not_importable.js", + "types": "./dist/index.d.ts", + "version": "0.1.0", + "type": "module", + "files": [ + "dist" + ], + "scripts": { + "lint": "eslint src --ext .ts", + "build": "tsc" + }, + "engines": { + "node": ">=16.9.0" + }, + "devDependencies": { + "@types/cors": "^2.8.13", + "@types/node": "^16.18.11", + "@types/pino": "^7.0.5", + "prisma": "^4.9.0", + "typescript": "^4.9.5" + }, + "dependencies": { + "@chatsift/pino-rotate-file": "^0.1.2", + "@chatsift/readdir": "^0.2.0", + "@chatsift/rest-utils": "^0.6.2", + "@discordjs/rest": "^1.5.0", + "@hapi/boom": "^10.0.0", + "@prisma/client": "^4.9.0", + "@sapphire/shapeshift": "^3.8.1", + "cors": "^2.8.5", + "discord-api-types": "^0.37.31", + "helmet": "^5.1.1", + "pino": "^8.8.0", + "pino-pretty": "^8.1.0", + "polka": "^1.0.0-next.22", + "prisma-error-enum": "^0.1.3", + "reflect-metadata": "^0.1.13", + "tslib": "^2.5.0", + "tsyringe": "^4.7.0" + } +} diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts new file mode 100644 index 0000000..1cdcaab --- /dev/null +++ b/packages/api/src/index.ts @@ -0,0 +1,60 @@ +import 'reflect-metadata'; +import { dirname, join } from 'node:path'; +import { fileURLToPath, pathToFileURL } from 'node:url'; +import { readdirRecurse } from '@chatsift/readdir'; +import type { Route } from '@chatsift/rest-utils'; +import { attachHttpUtils, sendBoom } from '@chatsift/rest-utils'; +import { REST } from '@discordjs/rest'; +import { Boom, isBoom, notFound } from '@hapi/boom'; +import { PrismaClient } from '@prisma/client'; +import cors from 'cors'; +import helmet from 'helmet'; +import type { Middleware } from 'polka'; +import polka from 'polka'; +import { container } from 'tsyringe'; +import { Env } from './util/env.js'; +import { logger } from './util/logger.js'; + +const env = container.resolve(Env); +container.register(PrismaClient, { useValue: new PrismaClient() }); +container.register(REST, { useValue: new REST().setToken(env.discordToken) }); + +const app = polka({ + onError(err, _, res) { + res.setHeader('content-type', 'application/json'); + const boom = isBoom(err) ? err : new Boom(err); + + if (boom.output.statusCode === 500) { + logger.error(boom, boom.message); + } + + sendBoom(boom, res); + }, + onNoMatch(_, res) { + res.setHeader('content-type', 'application/json'); + sendBoom(notFound(), res); + }, +}).use( + cors({ + origin: env.cors, + credentials: true, + }), + helmet({ contentSecurityPolicy: env.isProd ? undefined : false }) as Middleware, + attachHttpUtils(), +); + +const path = join(dirname(fileURLToPath(import.meta.url)), 'routes'); +const files = readdirRecurse(path, { fileExtensions: ['js'] }); + +for await (const file of files) { + const mod = (await import(pathToFileURL(file).toString())) as { default?: new () => Route }; + if (mod.default) { + const route = container.resolve(mod.default); + logger.info(route.info, 'Registering route'); + route.register(app); + } +} + +app.listen(env.port, () => logger.info(`Listening to requests on port ${env.port}`)); + +export * from './routeTypes.js'; diff --git a/packages/api/src/routeTypes.ts b/packages/api/src/routeTypes.ts new file mode 100644 index 0000000..384d374 --- /dev/null +++ b/packages/api/src/routeTypes.ts @@ -0,0 +1,49 @@ +import type { + InferRoutePath, + InferRouteMethod, + InferRouteBody, + InferRouteResult, + RouteMethod, +} from '@chatsift/rest-utils'; +import type * as routes from './routes/index'; + +type Narrow = T extends U ? T : never; +type ConstructorToType = TConstructor extends new (...args: any[]) => infer T ? T : never; +type RoutesByClassNames = { + [K in keyof typeof routes]: ConstructorToType<(typeof routes)[K]>; +}; +type RoutesByPaths = { + [Path in InferRoutePath]: Narrow< + RoutesByClassNames[keyof RoutesByClassNames], + { info: { path: Path } } + >; +}; + +type RouteMethodMap = { + [RouteMethod.get]: 'get'; + [RouteMethod.post]: 'post'; + [RouteMethod.put]: 'put'; + [RouteMethod.delete]: 'delete'; + [RouteMethod.patch]: 'patch'; +}; + +export type ModmailRoutes = { + [Path in keyof RoutesByPaths]: { + [Method in RouteMethodMap[InferRouteMethod]]: Narrow< + RoutesByPaths[Path], + { info: { method: Method } } + >; + }; +}; + +export type InferModmailRouteBody< + TPath extends keyof ModmailRoutes, + TMethod extends keyof ModmailRoutes[TPath], +> = InferRouteBody; + +export type InferModmailRouteResult< + TPath extends keyof ModmailRoutes, + TMethod extends keyof ModmailRoutes[TPath], +> = InferRouteResult; + +export * from './util/models.js'; diff --git a/packages/api/src/routes/helloWorld.ts b/packages/api/src/routes/helloWorld.ts new file mode 100644 index 0000000..e25fab2 --- /dev/null +++ b/packages/api/src/routes/helloWorld.ts @@ -0,0 +1,25 @@ +import { Route, RouteMethod } from '@chatsift/rest-utils'; +import { PrismaClient } from '@prisma/client'; +import type { Middleware, Request, Response } from 'polka'; +import { singleton } from 'tsyringe'; +import type { GuildSettings } from '../util/models.js'; + +@singleton() +export default class extends Route { + public info = { + method: RouteMethod.get, + path: '/somebot/v1/hello/', + } as const; + + public override middleware: Middleware[] = []; + + public constructor(private readonly prisma: PrismaClient) { + super(); + } + + public handle(req: Request, res: Response) { + res.statusCode = 200; + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify({ hello: 'world' })); + } +} diff --git a/packages/api/src/routes/index.ts b/packages/api/src/routes/index.ts new file mode 100644 index 0000000..541311b --- /dev/null +++ b/packages/api/src/routes/index.ts @@ -0,0 +1 @@ +export { default as GetHelloRoute } from './helloWorld.js'; diff --git a/packages/api/src/util/env.ts b/packages/api/src/util/env.ts new file mode 100644 index 0000000..a5ccdd8 --- /dev/null +++ b/packages/api/src/util/env.ts @@ -0,0 +1,25 @@ +import process from 'node:process'; +import { singleton } from 'tsyringe'; + +@singleton() +export class Env { + public readonly port: number = Number.parseInt(process.env.PORT ?? '8080', 10); + + public readonly discordToken: string = process.env.DISCORD_TOKEN!; + + public readonly discordClientId: string = process.env.DISCORD_CLIENT_ID!; + + public readonly isProd = process.env.NODE_ENV === 'prod'; + + public readonly cors = process.env.CORS?.split(',') ?? []; + + private readonly KEYS: string[] = ['DISCORD_TOKEN', 'DISCORD_CLIENT_ID']; + + public constructor() { + for (const key of this.KEYS) { + if (!(key in process.env)) { + throw new Error(`Missing required environment variable: ${key}`); + } + } + } +} diff --git a/packages/api/src/util/logger.ts b/packages/api/src/util/logger.ts new file mode 100644 index 0000000..b225fc8 --- /dev/null +++ b/packages/api/src/util/logger.ts @@ -0,0 +1,46 @@ +import { join } from 'node:path'; +import process from 'node:process'; +import type { PinoRotateFileOptions } from '@chatsift/pino-rotate-file'; +import createLogger, { multistream, transport } from 'pino'; +import type { PrettyOptions } from 'pino-pretty'; + +const pinoPrettyOptions: PrettyOptions = { + colorize: true, + levelFirst: true, + translateTime: true, +}; + +const pinoRotateFileOptions: PinoRotateFileOptions = { + dir: join(process.cwd(), 'logs', 'bot'), + mkdir: true, + maxAgeDays: 14, + prettyOptions: { + ...pinoPrettyOptions, + colorize: false, + }, +}; + +export const logger = createLogger( + { + name: 'API', + level: 'trace', + }, + multistream([ + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + stream: transport({ + target: 'pino-pretty', + options: pinoPrettyOptions, + }), + level: 'trace', + }, + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + stream: transport({ + target: '@chatsift/pino-rotate-file', + options: pinoRotateFileOptions, + }), + level: 'trace', + }, + ]), +); diff --git a/packages/api/src/util/models.ts b/packages/api/src/util/models.ts new file mode 100644 index 0000000..7189261 --- /dev/null +++ b/packages/api/src/util/models.ts @@ -0,0 +1,9 @@ +// !!! PLEASE READ !!! +// This file's content is snatched straight out of our generated @prisma/client +// It's here because we need it for Routes to use types that DON'T rely on prisma +// Because otherwise we would need to somehow share our prisma.schema (and 2 others) with the frontend +// Which would NOT work. Absolutely make sure to use the types below and to cast away any types from @prsisma/client + +export type GuildSettings = { + guildId: string; +}; diff --git a/packages/api/src/util/snowflakeSchema.ts b/packages/api/src/util/snowflakeSchema.ts new file mode 100644 index 0000000..43e6350 --- /dev/null +++ b/packages/api/src/util/snowflakeSchema.ts @@ -0,0 +1,3 @@ +import { s } from '@sapphire/shapeshift'; + +export const snowflakeSchema = s.string.regex(/\d{17,19}/); diff --git a/packages/api/tsconfig.eslint.json b/packages/api/tsconfig.eslint.json new file mode 100644 index 0000000..e911c37 --- /dev/null +++ b/packages/api/tsconfig.eslint.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "allowJs": true + }, + "include": [ + "**/*.ts", + "**/*.tsx", + "**/*.js", + "**/*.cjs", + "**/*.jsx", + "**/*.test.ts", + "**/*.test.js", + "**/*.spec.ts", + "**/*.spec.js" + ], + "exclude": [] +} diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json new file mode 100644 index 0000000..685315d --- /dev/null +++ b/packages/api/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "declaration": true + }, + "include": ["./src/**/*.ts"], + "exclude": ["./**/__tests__"] +} diff --git a/packages/bot/package.json b/packages/bot/package.json new file mode 100644 index 0000000..92c1466 --- /dev/null +++ b/packages/bot/package.json @@ -0,0 +1,39 @@ +{ + "name": "@chatsift/somebot-bot", + "main": "./dist/index.js", + "private": true, + "version": "1.0.0-dev", + "type": "module", + "scripts": { + "lint": "eslint src --ext .ts", + "build": "tsc" + }, + "engines": { + "node": ">=16.9.0" + }, + "devDependencies": { + "@types/common-tags": "^1.8.1", + "@types/node": "^16.18.11", + "@types/pino": "^7.0.5", + "prisma": "^4.9.0", + "typescript": "^4.9.5" + }, + "dependencies": { + "@chatsift/pino-rotate-file": "^0.1.2", + "@chatsift/readdir": "^0.2.0", + "@discordjs/builders": "^1.4.0", + "@discordjs/rest": "^1.5.0", + "@naval-base/ms": "^3.1.0", + "@prisma/client": "^4.9.0", + "@sapphire/async-queue": "^1.5.0", + "common-tags": "^1.8.2", + "discord.js": "^14.7.1", + "nanoid": "^4.0.0", + "pino": "^8.8.0", + "pino-pretty": "^8.1.0", + "prisma-error-enum": "^0.1.3", + "reflect-metadata": "^0.1.13", + "tslib": "^2.5.0", + "tsyringe": "^4.7.0" + } +} diff --git a/packages/bot/src/deploy.ts b/packages/bot/src/deploy.ts new file mode 100644 index 0000000..607f73b --- /dev/null +++ b/packages/bot/src/deploy.ts @@ -0,0 +1,8 @@ +import { container } from 'tsyringe'; +import { CommandHandler } from './struct/CommandHandler.js'; + +export async function deploySlashCommands(): Promise { + const commandHandler = container.resolve(CommandHandler); + await commandHandler.init(); + await commandHandler.registerInteractions(); +} diff --git a/packages/bot/src/events/interactionCreate.ts b/packages/bot/src/events/interactionCreate.ts new file mode 100644 index 0000000..2cf22ab --- /dev/null +++ b/packages/bot/src/events/interactionCreate.ts @@ -0,0 +1,40 @@ +import type { Interaction } from 'discord.js'; +import { Events, InteractionType } from 'discord.js'; +import { singleton } from 'tsyringe'; +import { CommandHandler } from '../struct/CommandHandler.js'; +import type { Event } from '../struct/Event.js'; +import { logger } from '../util/logger.js'; + +@singleton() +export default class implements Event { + public readonly name = Events.InteractionCreate; + + public constructor(private readonly commandHandler: CommandHandler) {} + + public async handle(interaction: Interaction) { + switch (interaction.type) { + case InteractionType.ApplicationCommandAutocomplete: { + await this.commandHandler.handleAutocomplete(interaction); + break; + } + + case InteractionType.MessageComponent: { + if (interaction.inCachedGuild()) { + await this.commandHandler.handleMessageComponent(interaction); + } + + logger.warn(interaction, 'Message component interaction in non-cached guild'); + break; + } + + case InteractionType.ApplicationCommand: { + await this.commandHandler.handleCommand(interaction); + break; + } + + default: { + logger.warn(`Unknown interaction type: ${interaction.type}`); + } + } + } +} diff --git a/packages/bot/src/events/ready.ts b/packages/bot/src/events/ready.ts new file mode 100644 index 0000000..f291bb3 --- /dev/null +++ b/packages/bot/src/events/ready.ts @@ -0,0 +1,14 @@ +import type { Client } from 'discord.js'; +import { Events } from 'discord.js'; +import { singleton } from 'tsyringe'; +import type { Event } from '../struct/Event.js'; +import { logger } from '../util/logger.js'; + +@singleton() +export default class implements Event { + public readonly name = Events.ClientReady; + + public async handle(client: Client) { + logger.info(`Ready as ${client.user.tag} (${client.user.id})`); + } +} diff --git a/packages/bot/src/index.ts b/packages/bot/src/index.ts new file mode 100644 index 0000000..caf4e1c --- /dev/null +++ b/packages/bot/src/index.ts @@ -0,0 +1,33 @@ +import 'reflect-metadata'; +import process from 'node:process'; +import { PrismaClient } from '@prisma/client'; +import { Client, IntentsBitField, Options, Partials } from 'discord.js'; +import { container } from 'tsyringe'; +import { deploySlashCommands } from './deploy.js'; +import { CommandHandler } from './struct/CommandHandler.js'; +import { Env } from './struct/Env.js'; +import { EventHandler } from './struct/EventHandler.js'; + +const env = container.resolve(Env); + +const client = new Client({ + intents: [ + IntentsBitField.Flags.Guilds, + IntentsBitField.Flags.DirectMessages, + IntentsBitField.Flags.DirectMessageTyping, + ], + partials: [Partials.Channel, Partials.Message], + makeCache: Options.cacheWithLimits({ MessageManager: 100 }), +}).setMaxListeners(20); +container.register(Client, { useValue: client }); +container.register(PrismaClient, { useValue: new PrismaClient() }); + +if (env.deploySlashCommands) { + await deploySlashCommands(); + process.exit(0); +} + +await container.resolve(CommandHandler).init(); +await container.resolve(EventHandler).init(); + +await client.login(env.discordToken); diff --git a/packages/bot/src/struct/Command.ts b/packages/bot/src/struct/Command.ts new file mode 100644 index 0000000..5179f93 --- /dev/null +++ b/packages/bot/src/struct/Command.ts @@ -0,0 +1,46 @@ +import type { + PermissionResolvable, + ApplicationCommandOptionChoiceData, + ApplicationCommandType, + AutocompleteInteraction, + Awaitable, + ChatInputCommandInteraction, + MessageContextMenuCommandInteraction, + RESTPostAPIApplicationCommandsJSONBody, + UserContextMenuCommandInteraction, + APIApplicationCommandSubcommandOption, +} from 'discord.js'; + +type InteractionTypeMapping = { + [ApplicationCommandType.ChatInput]: ChatInputCommandInteraction<'cached'>; + [ApplicationCommandType.User]: UserContextMenuCommandInteraction<'cached'>; + [ApplicationCommandType.Message]: MessageContextMenuCommandInteraction<'cached'>; +}; + +export type CommandBody = RESTPostAPIApplicationCommandsJSONBody & { + type: Type; +}; + +export type Command = { + readonly containsSubcommands?: false; + handle(interaction: InteractionTypeMapping[Type]): Awaitable; + handleAutocomplete?(interaction: AutocompleteInteraction): Awaitable; + readonly interactionOptions: CommandBody; + readonly requiredClientPermissions?: PermissionResolvable; +}; + +export type CommandWithSubcommands = { + readonly containsSubcommands: true; + handleAutocomplete?(interaction: AutocompleteInteraction): Awaitable; + readonly interactionOptions: Omit, 'options' | 'type'>; + readonly requiredClientPermissions?: PermissionResolvable; +}; + +export type Subcommand = Omit< + Command, + 'containsSubcommands' | 'interactionOptions' +> & { + readonly interactionOptions: Omit; +}; + +export type CommandConstructor = new (...args: any[]) => Command | CommandWithSubcommands | Subcommand; diff --git a/packages/bot/src/struct/CommandHandler.ts b/packages/bot/src/struct/CommandHandler.ts new file mode 100644 index 0000000..fc6d22e --- /dev/null +++ b/packages/bot/src/struct/CommandHandler.ts @@ -0,0 +1,277 @@ +/* eslint-disable consistent-return */ +import { dirname, join, sep as pathSep } from 'node:path'; +import { fileURLToPath, pathToFileURL } from 'node:url'; +import { readdirRecurse } from '@chatsift/readdir'; +import { REST } from '@discordjs/rest'; +import type { PermissionResolvable } from 'discord.js'; +import { + ApplicationCommandOptionType, + ApplicationCommandType, + type AutocompleteInteraction, + type ChatInputCommandInteraction, + type CommandInteraction, + inlineCode, + type MessageComponentInteraction, + type RESTPutAPIApplicationCommandsJSONBody, + Routes, + type ThreadChannel, + PermissionsBitField, +} from 'discord.js'; +import { container, singleton } from 'tsyringe'; +import { logger } from '../util/logger.js'; +import type { Command, CommandConstructor, CommandWithSubcommands, Subcommand } from './Command.js'; +import { type Component, type ComponentConstructor, getComponentInfo } from './Component.js'; +import { Env } from './Env.js'; + +@singleton() +export class CommandHandler { + public readonly commands = new Map(); + + public readonly components = new Map(); + + public constructor(private readonly env: Env) {} + + public async handleAutocomplete(interaction: AutocompleteInteraction) { + const command = this.commands.get(interaction.commandName) as Command | CommandWithSubcommands | undefined; + + if (!command?.handleAutocomplete && !command?.containsSubcommands) { + return interaction.respond([]); + } + + if (command.interactionOptions.dm_permission && interaction.inCachedGuild()) { + return; + } + + try { + const subcommandName = interaction.options.getSubcommand(false); + const subcommand = this.commands.get(`${command.interactionOptions.name}-${subcommandName!}`); + + const autocompleteHandler = subcommand?.handleAutocomplete ? subcommand : command; + const options = await autocompleteHandler.handleAutocomplete?.(interaction); + if (!options) { + await interaction.respond([]); + return; + } + + await interaction.respond(options.slice(0, 25)); + return; + } catch (error) { + logger.error( + { + err: error, + command: interaction.commandName, + }, + 'Error handling autocomplete', + ); + return interaction.respond([ + { + name: 'Something went wrong fetching auto complete options. Please report this bug.', + value: 'noop', + }, + ]); + } + } + + public async handleMessageComponent(interaction: MessageComponentInteraction<'cached'>) { + const [name, ...args] = interaction.customId.split('|') as [string, ...string[]]; + const component = this.components.get(name); + + try { + // eslint-disable-next-line @typescript-eslint/return-await + return await component?.handle(interaction, ...args); + } catch (error) { + logger.error( + { + err: error, + component: name, + }, + 'Error handling message component', + ); + const content = `Something went wrong running component. Please report this bug.\n\n${inlineCode( + error as Error['message'], + )}`; + + // Try to display something to the user. We don't actually know what our component has done response wise, though + await interaction.reply({ content }).catch(() => null); + await interaction.update({ content }).catch(() => null); + } + } + + public async handleCommand(interaction: CommandInteraction) { + const command = this.commands.get(interaction.commandName) as Command | CommandWithSubcommands | undefined; + if (!command) { + logger.warn(interaction, 'Command interaction not registered locally was not chatInput'); + return; + } + + if (!command.interactionOptions.dm_permission && !interaction.inCachedGuild()) { + logger.warn( + { + interaction, + command, + }, + 'Command interaction had dm_permission off and was not in cached guild', + ); + return; + } + + try { + if (!command.containsSubcommands) { + if (!command.interactionOptions.dm_permission && command.requiredClientPermissions) { + const missingRequiredClientPermissions = this.checkForMissingClientPermissions( + interaction.appPermissions!, + command.requiredClientPermissions, + ); + if (missingRequiredClientPermissions.length) { + return await interaction.reply({ + content: `The bot is missing the following permissions to run this command: ${inlineCode( + missingRequiredClientPermissions.join(', '), + )}`, + ephemeral: true, + }); + } + } + + // eslint-disable-next-line @typescript-eslint/return-await + return await command.handle(interaction as ChatInputCommandInteraction<'cached'>); + } + + if (!interaction.isChatInputCommand()) { + logger.warn(interaction, 'Command interaction with subcommand call was not chatInput'); + return; + } + + const subcommand = this.commands.get(`${interaction.commandName}-${interaction.options.getSubcommand()}`) as + | Subcommand + | undefined; + + if (!subcommand) { + logger.warn(interaction, 'Command interaction with subcommands map had no subcommand'); + return; + } + + if (!command.interactionOptions.dm_permission && subcommand.requiredClientPermissions) { + const missingRequiredClientPermissions = this.checkForMissingClientPermissions( + interaction.appPermissions!, + subcommand.requiredClientPermissions, + ); + if (missingRequiredClientPermissions.length) { + return await interaction.reply({ + content: `The bot is missing the following permissions to run this command: ${inlineCode( + missingRequiredClientPermissions.join(', '), + )}`, + ephemeral: true, + }); + } + } + + // eslint-disable-next-line @typescript-eslint/return-await + return await subcommand.handle(interaction as ChatInputCommandInteraction<'cached'>); + } catch (error) { + // TODO(DD): Consider dealing with specific error + logger.error( + { + err: error, + command: interaction.commandName, + }, + 'Error handling command', + ); + const content = `Something went wrong running command. This could be a bug, or it could be related to your permissions.\n\n${inlineCode( + error as Error['message'], + )}`; + + // Try to display something to the user. + if (interaction.replied) { + await interaction.followUp({ content, ephemeral: true }); + return; + } + + await interaction.reply({ content, ephemeral: true }); + } + } + + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + public async init(): Promise { + return Promise.all([this.registerCommands(), this.registerComponents()]); + } + + public checkForMissingClientPermissions( + clientPermissions: PermissionsBitField, + requiredClientPermissions: PermissionResolvable, + ) { + const requiredClientPermissionsBitField = new PermissionsBitField(clientPermissions); + if (requiredClientPermissionsBitField.bitfield) { + const missingClientPermissions = clientPermissions.missing(requiredClientPermissions); + if (missingClientPermissions.length) { + return missingClientPermissions; + } + } + + return []; + } + + public async registerInteractions(): Promise { + const api = new REST().setToken(this.env.discordToken); + const commands = [...this.commands.values()]; + + const commandsWithSubcommands = commands.filter( + (cmd) => 'containsSubcommands' in cmd && cmd.containsSubcommands, + ) as CommandWithSubcommands[]; + + const normalCommands = commands + .filter((cmd) => 'type' in cmd.interactionOptions) + .map((cmd) => cmd.interactionOptions) as RESTPutAPIApplicationCommandsJSONBody; + + const subcommands = commandsWithSubcommands.map((cmd) => ({ + ...cmd.interactionOptions, + type: ApplicationCommandType.ChatInput, + options: [...this.commands.entries()] + .filter(([key]) => key.startsWith(cmd.interactionOptions.name) && key !== cmd.interactionOptions.name) + .map(([, subcmd]) => ({ + ...subcmd.interactionOptions, + type: ApplicationCommandOptionType.Subcommand, + })), + })) as RESTPutAPIApplicationCommandsJSONBody; + + const options: RESTPutAPIApplicationCommandsJSONBody = normalCommands.concat(subcommands); + await api.put(Routes.applicationCommands(this.env.discordClientId), { body: options }); + } + + private async registerCommands(): Promise { + const path = join(dirname(fileURLToPath(import.meta.url)), '..', 'commands'); + const files = readdirRecurse(path, { fileExtensions: ['js'] }); + + for await (const file of files) { + const mod = (await import(pathToFileURL(file).toString())) as { default: CommandConstructor }; + const command = container.resolve(mod.default); + + const directory = dirname(file).split(pathSep).pop()!; + const isSubcommand = (cmd: Command | CommandWithSubcommands | Subcommand): cmd is Subcommand => + !['commands', 'context-menus'].includes(directory) && !file.endsWith('index.js'); + + if (isSubcommand(command)) { + this.commands.set(`${directory}-${command.interactionOptions.name}`, command); + } else { + this.commands.set(command.interactionOptions.name, command); + } + } + } + + private async registerComponents(): Promise { + const path = join(dirname(fileURLToPath(import.meta.url)), '..', 'components'); + const files = readdirRecurse(path, { fileExtensions: ['js'] }); + + for await (const file of files) { + const info = getComponentInfo(file); + if (!info) { + continue; + } + + const mod = (await import(pathToFileURL(file).toString())) as { default: ComponentConstructor }; + const component = container.resolve(mod.default); + const name = component.name ?? info.name; + + this.components.set(name, component); + } + } +} diff --git a/packages/bot/src/struct/Component.ts b/packages/bot/src/struct/Component.ts new file mode 100644 index 0000000..aa7813a --- /dev/null +++ b/packages/bot/src/struct/Component.ts @@ -0,0 +1,21 @@ +import { basename, extname } from 'node:path'; +import type { Awaitable, MessageComponentInteraction } from 'discord.js'; + +export type ComponentInfo = { + name: string; +}; + +export type Component = MessageComponentInteraction<'cached'>> = { + handle(interaction: Type, ...args: any[]): Awaitable; + readonly name?: string; +}; + +export type ComponentConstructor = new (...args: any[]) => Component; + +export function getComponentInfo(path: string): ComponentInfo | null { + if (extname(path) !== '.js') { + return null; + } + + return { name: basename(path, '.js') }; +} diff --git a/packages/bot/src/struct/Env.ts b/packages/bot/src/struct/Env.ts new file mode 100644 index 0000000..9341c58 --- /dev/null +++ b/packages/bot/src/struct/Env.ts @@ -0,0 +1,23 @@ +import process from 'node:process'; +import { singleton } from 'tsyringe'; + +@singleton() +export class Env { + public readonly discordToken = process.env.DISCORD_TOKEN!; + + public readonly discordClientId = process.env.DISCORD_CLIENT_ID!; + + public readonly isProd = process.env.NODE_ENV === 'prod'; + + public readonly deploySlashCommands = Boolean(process.env.DEPLOY); + + private readonly KEYS = ['DISCORD_TOKEN', 'DISCORD_CLIENT_ID', 'NODE_ENV'] as const; + + public constructor() { + for (const key of this.KEYS) { + if (!(key in process.env)) { + throw new Error(`Missing required environment variable: ${key}`); + } + } + } +} diff --git a/packages/bot/src/struct/Event.ts b/packages/bot/src/struct/Event.ts new file mode 100644 index 0000000..509b59f --- /dev/null +++ b/packages/bot/src/struct/Event.ts @@ -0,0 +1,21 @@ +import { basename, extname } from 'node:path'; +import type { ClientEvents } from 'discord.js'; + +export type Event = { + handle(...args: ClientEvents[Name]): unknown; + readonly name?: Name; +}; + +export type EventConstructor = new (...args: any[]) => Event; + +export type EventInfo = { + name: string; +}; + +export function getEventInfo(path: string): EventInfo | null { + if (extname(path) !== '.js') { + return null; + } + + return { name: basename(path, '.js') }; +} diff --git a/packages/bot/src/struct/EventHandler.ts b/packages/bot/src/struct/EventHandler.ts new file mode 100644 index 0000000..31f4326 --- /dev/null +++ b/packages/bot/src/struct/EventHandler.ts @@ -0,0 +1,32 @@ +import { dirname, join } from 'node:path'; +import { fileURLToPath, pathToFileURL } from 'node:url'; +import { readdirRecurse } from '@chatsift/readdir'; +import type { ClientEvents } from 'discord.js'; +import { Client } from 'discord.js'; +import { container, singleton } from 'tsyringe'; +import type { EventConstructor } from './Event.js'; +import { getEventInfo } from './Event.js'; + +@singleton() +export class EventHandler { + public constructor(private readonly client: Client) {} + + public async init(): Promise { + const path = join(dirname(fileURLToPath(import.meta.url)), '..', 'events'); + const files = readdirRecurse(path, { fileExtensions: ['js'] }); + + for await (const file of files) { + const info = getEventInfo(file); + if (!info) { + continue; + } + + const mod = (await import(pathToFileURL(file).toString())) as { default: EventConstructor }; + const event = container.resolve(mod.default); + const name = event.name ?? (info.name as keyof ClientEvents); + + // @ts-expect-error - TS doesn't deal with unions here as I'd expect it to + this.client.on(name, (...data) => event.handle(...data)); + } + } +} diff --git a/packages/bot/src/util/logger.ts b/packages/bot/src/util/logger.ts new file mode 100644 index 0000000..b225fc8 --- /dev/null +++ b/packages/bot/src/util/logger.ts @@ -0,0 +1,46 @@ +import { join } from 'node:path'; +import process from 'node:process'; +import type { PinoRotateFileOptions } from '@chatsift/pino-rotate-file'; +import createLogger, { multistream, transport } from 'pino'; +import type { PrettyOptions } from 'pino-pretty'; + +const pinoPrettyOptions: PrettyOptions = { + colorize: true, + levelFirst: true, + translateTime: true, +}; + +const pinoRotateFileOptions: PinoRotateFileOptions = { + dir: join(process.cwd(), 'logs', 'bot'), + mkdir: true, + maxAgeDays: 14, + prettyOptions: { + ...pinoPrettyOptions, + colorize: false, + }, +}; + +export const logger = createLogger( + { + name: 'API', + level: 'trace', + }, + multistream([ + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + stream: transport({ + target: 'pino-pretty', + options: pinoPrettyOptions, + }), + level: 'trace', + }, + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + stream: transport({ + target: '@chatsift/pino-rotate-file', + options: pinoRotateFileOptions, + }), + level: 'trace', + }, + ]), +); diff --git a/packages/bot/tsconfig.eslint.json b/packages/bot/tsconfig.eslint.json new file mode 100644 index 0000000..e911c37 --- /dev/null +++ b/packages/bot/tsconfig.eslint.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "allowJs": true + }, + "include": [ + "**/*.ts", + "**/*.tsx", + "**/*.js", + "**/*.cjs", + "**/*.jsx", + "**/*.test.ts", + "**/*.test.js", + "**/*.spec.ts", + "**/*.spec.js" + ], + "exclude": [] +} diff --git a/packages/bot/tsconfig.json b/packages/bot/tsconfig.json new file mode 100644 index 0000000..f07d53c --- /dev/null +++ b/packages/bot/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist" + }, + "include": ["./src/**/*.ts"], + "exclude": ["./**/__tests__"] +} diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..cc19368 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,12 @@ +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +model GuildSettings { + guildId String @id +} diff --git a/src/__tests__/index.test.ts b/src/__tests__/index.test.ts deleted file mode 100644 index 729b351..0000000 --- a/src/__tests__/index.test.ts +++ /dev/null @@ -1,6 +0,0 @@ -import '../index.js'; -import { expect, test } from 'vitest'; - -test('something!', () => { - expect('something').toBe('something'); -}); diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index b9d3e23..0000000 --- a/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -console.log('Hello world!'); diff --git a/tsconfig.json b/tsconfig.json index c83b953..2d4e34f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,9 +18,6 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "noImplicitOverride": true, - "importsNotUsedAsValues": "error", - "outDir": "./dist" - }, - "include": ["./src/**/*.ts"], - "exclude": ["./**/__tests__"] + "importsNotUsedAsValues": "error" + } } diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..e125c50 --- /dev/null +++ b/turbo.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "lint": { + "dependsOn": ["^build"], + "outputs": [] + } + } +} diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index 12fe6c5..0000000 --- a/vitest.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - test: { - exclude: ['**/node_modules', '**/dist', '.idea', '.git', '.cache'], - passWithNoTests: true, - coverage: { - enabled: true, - reporter: ['text', 'lcov', 'clover'], - exclude: ['**/dist', '**/__tests__'], - }, - }, -}); diff --git a/yarn.lock b/yarn.lock index c0f4dd8..a51a80d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -230,13 +230,122 @@ __metadata: languageName: node linkType: hard -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 +"@chatsift/pino-rotate-file@npm:^0.1.2": + version: 0.1.2 + resolution: "@chatsift/pino-rotate-file@npm:0.1.2" + dependencies: + pino: ^8.4.0 + pino-abstract-transport: ^1.0.0 + tslib: ^2.4.0 + checksum: 3e01d5c44ffe6029694e48d8f0721701f6c8d2b95911565d33c74b18fec3fc51a24c743cac1a21ec09f3393295cfaf4cf8214dd2b91600e5da8396383ffa6b01 languageName: node linkType: hard +"@chatsift/readdir@npm:^0.2.0": + version: 0.2.0 + resolution: "@chatsift/readdir@npm:0.2.0" + dependencies: + tiny-typed-emitter: ^2.1.0 + tslib: ^2.4.0 + checksum: bb13baf4fc5e29945bceef4fc60c917336f2c6a1117044f970b956514cbe0b24c00a4e093ba4f1780bffd591e9b339448e9464035edf3d742e3b9c3880849dde + languageName: node + linkType: hard + +"@chatsift/rest-utils@npm:^0.6.2": + version: 0.6.2 + resolution: "@chatsift/rest-utils@npm:0.6.2" + dependencies: + "@hapi/boom": ^10.0.0 + "@sapphire/shapeshift": ^3.4.1 + cookie: ^0.5.0 + tslib: ^2.4.0 + tsyringe: ^4.7.0 + undici: ^5.6.0 + checksum: 20802f2374826e9db98da1ad727c990c08eaf3b8dc2fa4e6cfa7f17c9f3a0adc1bac8d2448294d634bb8cc020fda76daadc835482ae04db0b7ed31ed95f8a3be + languageName: node + linkType: hard + +"@chatsift/somebot-api@workspace:packages/api": + version: 0.0.0-use.local + resolution: "@chatsift/somebot-api@workspace:packages/api" + dependencies: + "@chatsift/pino-rotate-file": ^0.1.2 + "@chatsift/readdir": ^0.2.0 + "@chatsift/rest-utils": ^0.6.2 + "@discordjs/rest": ^1.5.0 + "@hapi/boom": ^10.0.0 + "@prisma/client": ^4.9.0 + "@sapphire/shapeshift": ^3.8.1 + "@types/cors": ^2.8.13 + "@types/node": ^16.18.11 + "@types/pino": ^7.0.5 + cors: ^2.8.5 + discord-api-types: ^0.37.31 + helmet: ^5.1.1 + pino: ^8.8.0 + pino-pretty: ^8.1.0 + polka: ^1.0.0-next.22 + prisma: ^4.9.0 + prisma-error-enum: ^0.1.3 + reflect-metadata: ^0.1.13 + tslib: ^2.5.0 + tsyringe: ^4.7.0 + typescript: ^4.9.5 + languageName: unknown + linkType: soft + +"@chatsift/somebot-bot@workspace:packages/bot": + version: 0.0.0-use.local + resolution: "@chatsift/somebot-bot@workspace:packages/bot" + dependencies: + "@chatsift/pino-rotate-file": ^0.1.2 + "@chatsift/readdir": ^0.2.0 + "@discordjs/builders": ^1.4.0 + "@discordjs/rest": ^1.5.0 + "@naval-base/ms": ^3.1.0 + "@prisma/client": ^4.9.0 + "@sapphire/async-queue": ^1.5.0 + "@types/common-tags": ^1.8.1 + "@types/node": ^16.18.11 + "@types/pino": ^7.0.5 + common-tags: ^1.8.2 + discord.js: ^14.7.1 + nanoid: ^4.0.0 + pino: ^8.8.0 + pino-pretty: ^8.1.0 + prisma: ^4.9.0 + prisma-error-enum: ^0.1.3 + reflect-metadata: ^0.1.13 + tslib: ^2.5.0 + tsyringe: ^4.7.0 + typescript: ^4.9.5 + languageName: unknown + linkType: soft + +"@chatsift/somebot@workspace:.": + version: 0.0.0-use.local + resolution: "@chatsift/somebot@workspace:." + dependencies: + "@commitlint/cli": ^17.4.2 + "@commitlint/config-angular": ^17.4.2 + "@types/node": ^16.18.11 + "@typescript-eslint/eslint-plugin": ^5.50.0 + "@typescript-eslint/parser": ^5.50.0 + dotenv-cli: ^7.0.0 + eslint: ^8.33.0 + eslint-config-neon: ^0.1.40 + eslint-plugin-typescript-sort-keys: ^2.1.0 + husky: ^8.0.3 + is-ci: ^3.0.1 + prettier: ^2.8.3 + prettier-eslint: ^15.0.1 + prisma: ^4.9.0 + rimraf: ^4.1.2 + turbo: ~1.6.3 + typescript: ^4.9.5 + languageName: unknown + linkType: soft + "@commitlint/cli@npm:^17.4.2": version: 17.4.2 resolution: "@commitlint/cli@npm:17.4.2" @@ -450,168 +559,58 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.36.1": - version: 0.36.1 - resolution: "@es-joy/jsdoccomment@npm:0.36.1" +"@discordjs/builders@npm:^1.4.0": + version: 1.4.0 + resolution: "@discordjs/builders@npm:1.4.0" dependencies: - comment-parser: 1.3.1 - esquery: ^1.4.0 - jsdoc-type-pratt-parser: ~3.1.0 - checksum: 28e697779230dc6a95b1f233a8c2a72b64fbea686e407106e5d4292083421a997452731c414de26c10bee86e8e0397c5fb84d6ecfd4b472a29735e1af103ddb6 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm64@npm:0.16.17" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm@npm:0.16.17" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-x64@npm:0.16.17" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-arm64@npm:0.16.17" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-x64@npm:0.16.17" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-arm64@npm:0.16.17" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-x64@npm:0.16.17" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm64@npm:0.16.17" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm@npm:0.16.17" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ia32@npm:0.16.17" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-loong64@npm:0.16.17" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-mips64el@npm:0.16.17" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ppc64@npm:0.16.17" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-riscv64@npm:0.16.17" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-s390x@npm:0.16.17" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-x64@npm:0.16.17" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/netbsd-x64@npm:0.16.17" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/openbsd-x64@npm:0.16.17" - conditions: os=openbsd & cpu=x64 + "@discordjs/util": ^0.1.0 + "@sapphire/shapeshift": ^3.7.1 + discord-api-types: ^0.37.20 + fast-deep-equal: ^3.1.3 + ts-mixer: ^6.0.2 + tslib: ^2.4.1 + checksum: 3089ea5dc58e62c0314fd5fd995281d183d1a938d14a71b89c47b71b6cdf4cdf9f8c2ee1d04ca59e6bdde583b8bb785f3b53d917fb155cade8d27ac0dedbc942 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/sunos-x64@npm:0.16.17" - conditions: os=sunos & cpu=x64 +"@discordjs/collection@npm:^1.3.0": + version: 1.3.0 + resolution: "@discordjs/collection@npm:1.3.0" + checksum: 5ca6e9757f4c1e19564a0ac96ebfcabd1a83bf3ac0270034a0ea887f418f196caea4b54ebac5aaf0fc28d98f58f12794a6242d07acf08c946f23aa2e0047e87d languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-arm64@npm:0.16.17" - conditions: os=win32 & cpu=arm64 +"@discordjs/rest@npm:^1.4.0, @discordjs/rest@npm:^1.5.0": + version: 1.5.0 + resolution: "@discordjs/rest@npm:1.5.0" + dependencies: + "@discordjs/collection": ^1.3.0 + "@discordjs/util": ^0.1.0 + "@sapphire/async-queue": ^1.5.0 + "@sapphire/snowflake": ^3.2.2 + discord-api-types: ^0.37.23 + file-type: ^18.0.0 + tslib: ^2.4.1 + undici: ^5.13.0 + checksum: 98b3a97fa3dbecd406cefca5e5245d51a1ab9eb748001f9d128065cc6dd6f61cc23efbdfa11e84e5147131fe40239d23c37b503d8c4c1a40b10d67b4c5b255ef languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-ia32@npm:0.16.17" - conditions: os=win32 & cpu=ia32 +"@discordjs/util@npm:^0.1.0": + version: 0.1.0 + resolution: "@discordjs/util@npm:0.1.0" + checksum: 880e15cd761437a21cf17b8a9dab50e7e5418fcc77dc34037c31a52b871fab1b958218ab6218aafd20af8b7a4e658a705d3f257268324773a285d9a06368c1b9 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-x64@npm:0.16.17" - conditions: os=win32 & cpu=x64 +"@es-joy/jsdoccomment@npm:~0.36.1": + version: 0.36.1 + resolution: "@es-joy/jsdoccomment@npm:0.36.1" + dependencies: + comment-parser: 1.3.1 + esquery: ^1.4.0 + jsdoc-type-pratt-parser: ~3.1.0 + checksum: 28e697779230dc6a95b1f233a8c2a72b64fbea686e407106e5d4292083421a997452731c414de26c10bee86e8e0397c5fb84d6ecfd4b472a29735e1af103ddb6 languageName: node linkType: hard @@ -660,10 +659,19 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 +"@hapi/boom@npm:^10.0.0": + version: 10.0.0 + resolution: "@hapi/boom@npm:10.0.0" + dependencies: + "@hapi/hoek": 10.x.x + checksum: ea2b234fa1c76667b73a541f51e83251233a6f1db2a3f6ade9beb5174ce0ed2b55eea4d8a2a9fd0329bba31e1969c41bdb3af9218bef3abac58a30ea28e3d43e + languageName: node + linkType: hard + +"@hapi/hoek@npm:10.x.x": + version: 10.0.1 + resolution: "@hapi/hoek@npm:10.0.1" + checksum: 6dbcd7ae138fc751b2d81169516668bc6e4b878bb2bfdfab5eb3d51fdfd361544cc791ff12375587bf71dbeb801810cd62105f5d744dfa457140fb1709bbea6f languageName: node linkType: hard @@ -703,13 +711,6 @@ __metadata: languageName: node linkType: hard -"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 - languageName: node - linkType: hard - "@jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.2 resolution: "@jridgewell/gen-mapping@npm:0.3.2" @@ -752,16 +753,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12": - version: 0.3.14 - resolution: "@jridgewell/trace-mapping@npm:0.3.14" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: b9537b9630ffb631aef9651a085fe361881cde1772cd482c257fe3c78c8fd5388d681f504a9c9fe1081b1c05e8f75edf55ee10fdb58d92bbaa8dbf6a7bd6b18c - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.15 resolution: "@jridgewell/trace-mapping@npm:0.3.15" @@ -791,6 +782,13 @@ __metadata: languageName: node linkType: hard +"@naval-base/ms@npm:^3.1.0": + version: 3.1.0 + resolution: "@naval-base/ms@npm:3.1.0" + checksum: 418eb94d44abfc6bab002809a5e1371ad48c882e7b3fa9bb84fbe9c2657675f83a25594eacbe247b71d640906b5ab3221754a5edb9a238595ff2135490a6aa19 + languageName: node + linkType: hard + "@next/eslint-plugin-next@npm:^13.0.4": version: 13.1.6 resolution: "@next/eslint-plugin-next@npm:13.1.6" @@ -827,26 +825,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.0 - resolution: "@npmcli/fs@npm:2.1.0" - dependencies: - "@gar/promisify": ^1.1.3 - semver: ^7.3.5 - checksum: 6ec6d678af6da49f9dac50cd882d7f661934dd278972ffbaacde40d9eaa2871292d634000a0cca9510f6fc29855fbd4af433e1adbff90a524ec3eaf140f1219b - languageName: node - linkType: hard - -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/move-file@npm:2.0.0" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 1388777b507b0c592d53f41b9d182e1a8de7763bc625fc07999b8edbc22325f074e5b3ec90af79c89d6987fdb2325bc66d59f483258543c14a43661621f841b0 - languageName: node - linkType: hard - "@pkgr/utils@npm:^2.3.1": version: 2.3.1 resolution: "@pkgr/utils@npm:2.3.1" @@ -861,6 +839,41 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.21": + version: 1.0.0-next.21 + resolution: "@polka/url@npm:1.0.0-next.21" + checksum: c7654046d38984257dd639eab3dc770d1b0340916097b2fac03ce5d23506ada684e05574a69b255c32ea6a144a957c8cd84264159b545fca031c772289d88788 + languageName: node + linkType: hard + +"@prisma/client@npm:^4.9.0": + version: 4.9.0 + resolution: "@prisma/client@npm:4.9.0" + dependencies: + "@prisma/engines-version": 4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5 + peerDependencies: + prisma: "*" + peerDependenciesMeta: + prisma: + optional: true + checksum: 54c4fc3fde67d21567ead0e22e66d3258c2045f274b465781b89e4f258f1a6431c4c83e3371e71661f2c7ccdf4cf24169002e40e378c7384f99aefe8dfb81be1 + languageName: node + linkType: hard + +"@prisma/engines-version@npm:4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5": + version: 4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5 + resolution: "@prisma/engines-version@npm:4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5" + checksum: b7b1a41acd8c761ea8111e0d9562623d0735c58546594626de1bd4b35e09122f210e0c4727aa0775b53e5222d8ed1c0fa822e0a8c4ba72271e854532f52a2416 + languageName: node + linkType: hard + +"@prisma/engines@npm:4.9.0": + version: 4.9.0 + resolution: "@prisma/engines@npm:4.9.0" + checksum: b73306b3e34ebb544f797342cb594f4a73602c6e63961e31e9158f02afdfc209f2cc1d59ae87cbb0165b3dff58eaa145c601ac2a1cfc460e8e439cea8425a3ed + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.2.0": version: 1.2.0 resolution: "@rushstack/eslint-patch@npm:1.2.0" @@ -868,10 +881,34 @@ __metadata: languageName: node linkType: hard -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 +"@sapphire/async-queue@npm:^1.5.0": + version: 1.5.0 + resolution: "@sapphire/async-queue@npm:1.5.0" + checksum: 983dbd1fd1b1798496e5edb6a0db7e4d90015160e1028f20475eab0a92625513f1e8d938bc0305811a9cec461c94e01b1e4191615ff03ba49356f568f3255250 + languageName: node + linkType: hard + +"@sapphire/shapeshift@npm:^3.4.1, @sapphire/shapeshift@npm:^3.7.1, @sapphire/shapeshift@npm:^3.8.1": + version: 3.8.1 + resolution: "@sapphire/shapeshift@npm:3.8.1" + dependencies: + fast-deep-equal: ^3.1.3 + lodash: ^4.17.21 + checksum: 2a5954c76ee9a91506ae269141ffd2d71e05891c7f1618d0acbf3670312f0b473e356f9c3dafe484d8dc89282d7554f1fd7d720a2a3b0e921fb4e969d09513ee + languageName: node + linkType: hard + +"@sapphire/snowflake@npm:^3.2.2": + version: 3.4.0 + resolution: "@sapphire/snowflake@npm:3.4.0" + checksum: 556b7001f33d6edbbbcbca46f6abfa56c732a29e78b693161e358688e688edcb012d2c1bc944e7ffb41bd6c9950d261bc73f95656dc01643361a218b4f5ab985 + languageName: node + linkType: hard + +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 1d575d02d2a9f0c5a4ca5180635ebd2ad59e0f18b42a65f3d04844148b49b3db35cf00b6012a1af2d59c2ab3caca59451c5689f747ba8667ee586ad717ee58e1 languageName: node linkType: hard @@ -903,26 +940,19 @@ __metadata: languageName: node linkType: hard -"@types/chai-subset@npm:^1.3.3": - version: 1.3.3 - resolution: "@types/chai-subset@npm:1.3.3" - dependencies: - "@types/chai": "*" - checksum: 4481da7345022995f5a105e6683744f7203d2c3d19cfe88d8e17274d045722948abf55e0adfd97709e0f043dade37a4d4e98cd4c660e2e8a14f23e6ecf79418f - languageName: node - linkType: hard - -"@types/chai@npm:*": - version: 4.3.1 - resolution: "@types/chai@npm:4.3.1" - checksum: 2ee246b76c469cd620a7a1876a73bc597074361b67d547b4bd96a0c1adb43597ede2d8589ab626192e14349d83cbb646cc11e2c179eeeb43ff11596de94d82c4 +"@types/common-tags@npm:^1.8.1": + version: 1.8.1 + resolution: "@types/common-tags@npm:1.8.1" + checksum: bec6f68c8c434834380abd1dc057aa6ba26661bb0c65c700b65049e9b104d7be96a987d93dbe8726be68554a23a52514a6967d8903fdb51fb8c78cf909d1e4c1 languageName: node linkType: hard -"@types/chai@npm:^4.3.4": - version: 4.3.4 - resolution: "@types/chai@npm:4.3.4" - checksum: 571184967beb03bf64c4392a13a7d44e72da9af5a1e83077ff81c39cf59c0fda2a5c78d2005084601cf8f3d11726608574d8b5b4a0e3e9736792807afd926cd0 +"@types/cors@npm:^2.8.13": + version: 2.8.13 + resolution: "@types/cors@npm:2.8.13" + dependencies: + "@types/node": "*" + checksum: 7ef197ea19d2e5bf1313b8416baa6f3fd6dd887fd70191da1f804f557395357dafd8bc8bed0ac60686923406489262a7c8a525b55748f7b2b8afa686700de907 languageName: node linkType: hard @@ -943,13 +973,6 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 - languageName: node - linkType: hard - "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -985,6 +1008,15 @@ __metadata: languageName: node linkType: hard +"@types/pino@npm:^7.0.5": + version: 7.0.5 + resolution: "@types/pino@npm:7.0.5" + dependencies: + pino: "*" + checksum: f1c59f7d9a7b717e014e93a6e3f235cf824c93696f6530d41316a6188eb6e3846ce44941d2641665c6a4d0dc64a63ea24e277b2acff52e766ad7169e1a20f973 + languageName: node + linkType: hard + "@types/prettier@npm:^2.6.0": version: 2.6.3 resolution: "@types/prettier@npm:2.6.3" @@ -999,6 +1031,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:^8.5.3": + version: 8.5.4 + resolution: "@types/ws@npm:8.5.4" + dependencies: + "@types/node": "*" + checksum: fefbad20d211929bb996285c4e6f699b12192548afedbe4930ab4384f8a94577c9cd421acaad163cacd36b88649509970a05a0b8f20615b30c501ed5269038d1 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -1015,7 +1056,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.44.0, @typescript-eslint/eslint-plugin@npm:^5.49.0": +"@typescript-eslint/eslint-plugin@npm:^5.44.0": version: 5.49.0 resolution: "@typescript-eslint/eslint-plugin@npm:5.49.0" dependencies: @@ -1038,6 +1079,30 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:^5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.50.0" + dependencies: + "@typescript-eslint/scope-manager": 5.50.0 + "@typescript-eslint/type-utils": 5.50.0 + "@typescript-eslint/utils": 5.50.0 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + regexpp: ^3.2.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 351c4a157a7d717cc3835bdc09324b20d649463738a029c5701e5a38cdb162305ff7d56adff196a0c3245c24ea3167bbdac7f1c30399b8c1d495abbdbc1c53d6 + languageName: node + linkType: hard + "@typescript-eslint/experimental-utils@npm:^5.0.0": version: 5.37.0 resolution: "@typescript-eslint/experimental-utils@npm:5.37.0" @@ -1066,7 +1131,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.44.0, @typescript-eslint/parser@npm:^5.49.0": +"@typescript-eslint/parser@npm:^5.44.0": version: 5.49.0 resolution: "@typescript-eslint/parser@npm:5.49.0" dependencies: @@ -1083,6 +1148,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/parser@npm:5.50.0" + dependencies: + "@typescript-eslint/scope-manager": 5.50.0 + "@typescript-eslint/types": 5.50.0 + "@typescript-eslint/typescript-estree": 5.50.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 816a421ce9a5c61a2e92499d6d400aed4211ca5b685e0212844b6659f7acfeba1cca0418b462236c44eea6e8a2574cd51ccb7abc2bf4a8cad5b7a275d71ae9bf + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:5.30.0": version: 5.30.0 resolution: "@typescript-eslint/scope-manager@npm:5.30.0" @@ -1123,6 +1205,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/scope-manager@npm:5.50.0" + dependencies: + "@typescript-eslint/types": 5.50.0 + "@typescript-eslint/visitor-keys": 5.50.0 + checksum: bd49447a834c82cb130e6900644042c3a84195bf7a63483385e90b6454c65856d6f276c997cad6bf9c36c9d0cb168fdde625ce4c78c3b8bcce42da782270794b + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:5.43.0": version: 5.43.0 resolution: "@typescript-eslint/type-utils@npm:5.43.0" @@ -1157,6 +1249,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/type-utils@npm:5.50.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.50.0 + "@typescript-eslint/utils": 5.50.0 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: d2fc2fd10ef300865fd6a902ae92aef6c45cddc4359445f1e5c6dc9511063b52d2170cc6b525763395d4171c177b3d0fffd77cf9a2ab7e01fcd7109bd1a5a585 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:5.30.0": version: 5.30.0 resolution: "@typescript-eslint/types@npm:5.30.0" @@ -1185,6 +1294,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/types@npm:5.50.0" + checksum: 1189c63d35abeec685dd519fd923926b884e63d5e10e4a9fe995aebfde59b8a2e10773090ec3ba32a0ec408746b18f6a454d9bedb0b6c7ce8b6066547144fb4d + languageName: node + linkType: hard + "@typescript-eslint/types@npm:^5.25.0": version: 5.41.0 resolution: "@typescript-eslint/types@npm:5.41.0" @@ -1264,6 +1380,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.50.0" + dependencies: + "@typescript-eslint/types": 5.50.0 + "@typescript-eslint/visitor-keys": 5.50.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: cb1ac8d39647da6d52750c713d9635750ed41245ec82f937a159a71ad3bf490ebabfad3b43eeca07bca39d60df30d3a2f31f8bed0061381731d92a62e284b867 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:5.37.0, @typescript-eslint/utils@npm:^5.10.0": version: 5.37.0 resolution: "@typescript-eslint/utils@npm:5.37.0" @@ -1316,6 +1450,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/utils@npm:5.50.0" + dependencies: + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.50.0 + "@typescript-eslint/types": 5.50.0 + "@typescript-eslint/typescript-estree": 5.50.0 + eslint-scope: ^5.1.1 + eslint-utils: ^3.0.0 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 4471ae8b24449300e009f1cc09ee0d38cce20ae9171e8fbf4ef752ce4eb87104cc0d813d8f7051b619fa05e1e7c12b748dad49832911685297b1bbfef3c01f0b + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.30.0": version: 5.30.0 resolution: "@typescript-eslint/visitor-keys@npm:5.30.0" @@ -1356,59 +1508,13 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-c8@npm:^0.28.3": - version: 0.28.3 - resolution: "@vitest/coverage-c8@npm:0.28.3" - dependencies: - c8: ^7.12.0 - picocolors: ^1.0.0 - std-env: ^3.3.1 - vitest: 0.28.3 - checksum: 1b652467f8bc202bc12e76826aafe8dcb611db46fe85bd921742bbef70f7d37b90d8dbed2fd877552de7bbc37e4c496dbeaf6c793fa03337c3f4eaa521431f94 - languageName: node - linkType: hard - -"@vitest/expect@npm:0.28.3": - version: 0.28.3 - resolution: "@vitest/expect@npm:0.28.3" - dependencies: - "@vitest/spy": 0.28.3 - "@vitest/utils": 0.28.3 - chai: ^4.3.7 - checksum: 8c16543818c4482721185ff307d0ee541167a75f35fe34cdc9bfdf6e394374f1b37cf5624f9c3b6478ecdaa72970545953fb8a3bf1b59c32dcbbc52b6b7e09c8 - languageName: node - linkType: hard - -"@vitest/runner@npm:0.28.3": - version: 0.28.3 - resolution: "@vitest/runner@npm:0.28.3" +"@typescript-eslint/visitor-keys@npm:5.50.0": + version: 5.50.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.50.0" dependencies: - "@vitest/utils": 0.28.3 - p-limit: ^4.0.0 - pathe: ^1.1.0 - checksum: 45ab3cf2621182160575e8e9af50170251118afbaee10f9f72d60db9a279a01da46a8d72a8628a905995ab65abe3b974baeacadc792c137ac3be25e5e9f6c72d - languageName: node - linkType: hard - -"@vitest/spy@npm:0.28.3": - version: 0.28.3 - resolution: "@vitest/spy@npm:0.28.3" - dependencies: - tinyspy: ^1.0.2 - checksum: 34d960d9867b027507d51acaf471c4e6640fdd59ec7b23c3190e7a2f842437bccc3f88f395edf302f96906d41de1d5801e7a1739a5e3778d34d8d064c77ad3a9 - languageName: node - linkType: hard - -"@vitest/utils@npm:0.28.3": - version: 0.28.3 - resolution: "@vitest/utils@npm:0.28.3" - dependencies: - cli-truncate: ^3.1.0 - diff: ^5.1.0 - loupe: ^2.3.6 - picocolors: ^1.0.0 - pretty-format: ^27.5.1 - checksum: 10375b0d0c95c3e57cfcac83189261eab3512884d6caecc68e378c221cce473f2694fdd8cde217f6fae384d29c03bd399aae8aa6aa581872b7429020a05e111e + "@typescript-eslint/types": 5.50.0 + eslint-visitor-keys: ^3.3.0 + checksum: 55319cb7ee7b78d07d9dc67a388d69fe0b7f11cbc79190e17e7f87a39c9992d08dab3b5872d5a7f01094dda28ad6ac61d3573e59015ef70bf138d4c4f8c45b88 languageName: node linkType: hard @@ -1424,10 +1530,12 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: ^5.0.0 + checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 languageName: node linkType: hard @@ -1440,7 +1548,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.2.0": +"acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 @@ -1456,51 +1564,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.8.0": - version: 8.8.0 - resolution: "acorn@npm:8.8.0" - bin: - acorn: bin/acorn - checksum: 7270ca82b242eafe5687a11fea6e088c960af712683756abf0791b68855ea9cace3057bd5e998ffcef50c944810c1e0ca1da526d02b32110e13c722aa959afdc - languageName: node - linkType: hard - -"acorn@npm:^8.8.1": - version: 8.8.2 - resolution: "acorn@npm:8.8.2" - bin: - acorn: bin/acorn - checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 - languageName: node - linkType: hard - -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" - dependencies: - debug: ^4.1.0 - depd: ^1.1.2 - humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 +"acorn@npm:^8.8.0": + version: 8.8.0 + resolution: "acorn@npm:8.8.0" + bin: + acorn: bin/acorn + checksum: 7270ca82b242eafe5687a11fea6e088c960af712683756abf0791b68855ea9cace3057bd5e998ffcef50c944810c1e0ca1da526d02b32110e13c722aa959afdc languageName: node linkType: hard @@ -1549,13 +1618,6 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - "ansi-styles@npm:^2.2.1": version: 2.2.1 resolution: "ansi-styles@npm:2.2.1" @@ -1581,37 +1643,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.0.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 - languageName: node - linkType: hard - -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.0 - resolution: "are-we-there-yet@npm:3.0.0" - dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 348edfdd931b0b50868b55402c01c3f64df1d4c229ab6f063539a5025fd6c5f5bb8a0cab409bbed8d75d34762d22aa91b7c20b4204eb8177063158d9ba792981 - languageName: node - linkType: hard - "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -1742,13 +1773,6 @@ __metadata: languageName: node linkType: hard -"assertion-error@npm:^1.1.0": - version: 1.1.0 - resolution: "assertion-error@npm:1.1.0" - checksum: fd9429d3a3d4fd61782eb3962ae76b6d08aa7383123fca0596020013b3ebd6647891a85b05ce821c47d1471ed1271f00b0545cf6a4326cf2fc91efcc3b0fbecf - languageName: node - linkType: hard - "ast-types-flow@npm:^0.0.7": version: 0.0.7 resolution: "ast-types-flow@npm:0.0.7" @@ -1782,6 +1806,13 @@ __metadata: languageName: node linkType: hard +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: b95275afb2f80732f22f43a60178430c468906a415a7ff18bcd0feeebc8eec3930b51250aeda91a476062a90e07132b43a1794e8d8ffcf9b650e8139be75fa36 + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" @@ -1819,6 +1850,13 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + "bent@npm:~7.3.6": version: 7.3.12 resolution: "bent@npm:7.3.12" @@ -1865,10 +1903,13 @@ __metadata: languageName: node linkType: hard -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.2.1 + checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 languageName: node linkType: hard @@ -1888,65 +1929,19 @@ __metadata: languageName: node linkType: hard -"bytesish@npm:^0.4.1": - version: 0.4.4 - resolution: "bytesish@npm:0.4.4" - checksum: 50a6c9423f66fff984676ee1d3c5f12d2a23830cb5de81abc597415aa2f51cc617b251d660eede10b8e45bf3a3a5c31d4be467ec69888f31ccc66e90cb586ad5 - languageName: node - linkType: hard - -"c8@npm:^7.12.0": - version: 7.12.0 - resolution: "c8@npm:7.12.0" +"busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" 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 - checksum: 3b7fa9ad7cff2cb0bb579467e6b544498fbd46e9353a809ad3b8cf749df4beadd074cde277356b0552f3c8055b1b3ec3ebaf2209e9ad4bdefed92dbf64d283ab + streamsearch: ^1.1.0 + checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e languageName: node linkType: hard -"cac@npm:^6.7.14": - version: 6.7.14 - resolution: "cac@npm:6.7.14" - checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a - languageName: node - linkType: hard - -"cacache@npm:^16.1.0": - version: 16.1.1 - resolution: "cacache@npm:16.1.1" - dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - unique-filename: ^1.1.1 - checksum: 488524617008b793f0249b0c4ea2c330c710ca997921376e15650cc2415a8054491ae2dee9f01382c2015602c0641f3f977faf2fa7361aa33d2637dcfb03907a +"bytesish@npm:^0.4.1": + version: 0.4.4 + resolution: "bytesish@npm:0.4.4" + checksum: 50a6c9423f66fff984676ee1d3c5f12d2a23830cb5de81abc597415aa2f51cc617b251d660eede10b8e45bf3a3a5c31d4be467ec69888f31ccc66e90cb586ad5 languageName: node linkType: hard @@ -1992,21 +1987,6 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.3.7": - version: 4.3.7 - resolution: "chai@npm:4.3.7" - dependencies: - assertion-error: ^1.1.0 - check-error: ^1.0.2 - deep-eql: ^4.1.2 - get-func-name: ^2.0.0 - loupe: ^2.3.1 - pathval: ^1.1.1 - type-detect: ^4.0.5 - checksum: 0bba7d267848015246a66995f044ce3f0ebc35e530da3cbdf171db744e14cbe301ab913a8d07caf7952b430257ccbb1a4a983c570a7c5748dc537897e5131f7c - languageName: node - linkType: hard - "chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" @@ -2041,20 +2021,6 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^1.0.2": - version: 1.0.2 - resolution: "check-error@npm:1.0.2" - checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - "ci-info@npm:^3.2.0": version: 3.3.2 resolution: "ci-info@npm:3.3.2" @@ -2078,23 +2044,6 @@ __metadata: languageName: node linkType: hard -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cli-truncate@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-truncate@npm:3.1.0" - dependencies: - slice-ansi: ^5.0.0 - string-width: ^5.0.0 - checksum: c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a - languageName: node - linkType: hard - "cliui@npm:^7.0.2": version: 7.0.4 resolution: "cliui@npm:7.0.4" @@ -2138,12 +2087,10 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b +"colorette@npm:^2.0.7": + version: 2.0.19 + resolution: "colorette@npm:2.0.19" + checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 languageName: node linkType: hard @@ -2154,7 +2101,7 @@ __metadata: languageName: node linkType: hard -"common-tags@npm:^1.4.0, common-tags@npm:^1.8.0": +"common-tags@npm:^1.4.0, common-tags@npm:^1.8.0, common-tags@npm:^1.8.2": version: 1.8.2 resolution: "common-tags@npm:1.8.2" checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff @@ -2178,13 +2125,6 @@ __metadata: languageName: node linkType: hard -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - "conventional-changelog-angular@npm:^5.0.11": version: 5.0.13 resolution: "conventional-changelog-angular@npm:5.0.13" @@ -2211,12 +2151,10 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.6.0": - version: 1.8.0 - resolution: "convert-source-map@npm:1.8.0" - dependencies: - safe-buffer: ~5.1.1 - checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed +"cookie@npm:^0.5.0": + version: 0.5.0 + resolution: "cookie@npm:0.5.0" + checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180 languageName: node linkType: hard @@ -2227,6 +2165,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:^2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: ^4 + vary: ^1 + checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006 + languageName: node + linkType: hard + "cosmiconfig-typescript-loader@npm:^4.0.0": version: 4.1.1 resolution: "cosmiconfig-typescript-loader@npm:4.1.1" @@ -2258,7 +2206,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -2292,15 +2240,10 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 +"dateformat@npm:^4.6.3": + version: 4.6.3 + resolution: "dateformat@npm:4.6.3" + checksum: c3aa0617c0a5b30595122bc8d1bee6276a9221e4d392087b41cbbdf175d9662ae0e50d0d6dcdf45caeac5153c4b5b0844265f8cd2b2245451e3da19e39e3b65d languageName: node linkType: hard @@ -2322,6 +2265,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + "decamelize-keys@npm:^1.1.0": version: 1.1.0 resolution: "decamelize-keys@npm:1.1.0" @@ -2346,15 +2301,6 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.1.2": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" - dependencies: - type-detect: ^4.0.0 - checksum: 7f6d30cb41c713973dc07eaadded848b2ab0b835e518a88b91bea72f34e08c4c71d167a722a6f302d3a6108f05afd8e6d7650689a84d5d29ec7fe6220420397f - languageName: node - linkType: hard - "deep-equal@npm:^2.0.5": version: 2.2.0 resolution: "deep-equal@npm:2.2.0" @@ -2404,20 +2350,6 @@ __metadata: languageName: node linkType: hard -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd - languageName: node - linkType: hard - -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 - languageName: node - linkType: hard - "diff@npm:^4.0.1": version: 4.0.2 resolution: "diff@npm:4.0.2" @@ -2425,13 +2357,6 @@ __metadata: languageName: node linkType: hard -"diff@npm:^5.1.0": - version: 5.1.0 - resolution: "diff@npm:5.1.0" - checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90 - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -2441,6 +2366,40 @@ __metadata: languageName: node linkType: hard +"discord-api-types@npm:^0.37.20, discord-api-types@npm:^0.37.23": + version: 0.37.30 + resolution: "discord-api-types@npm:0.37.30" + checksum: 0e257dd0df6a56d44e8f7b71cfae99b5b5d6c9841a08b477eb6bd69f6dd3bbdb3cefb2b82c899d726db2b2f11b90e2ea99ec94441cb074d07651a8e169be3244 + languageName: node + linkType: hard + +"discord-api-types@npm:^0.37.31": + version: 0.37.31 + resolution: "discord-api-types@npm:0.37.31" + checksum: 8886a4c320b2abd1fd32cb573d688a9b677b6d82107efe9ea70c6d571dc5eb04d27741320d5e2ae46b316282248176a82c2212de2d11fc32d1f5a869b6519f03 + languageName: node + linkType: hard + +"discord.js@npm:^14.7.1": + version: 14.7.1 + resolution: "discord.js@npm:14.7.1" + dependencies: + "@discordjs/builders": ^1.4.0 + "@discordjs/collection": ^1.3.0 + "@discordjs/rest": ^1.4.0 + "@discordjs/util": ^0.1.0 + "@sapphire/snowflake": ^3.2.2 + "@types/ws": ^8.5.3 + discord-api-types: ^0.37.20 + fast-deep-equal: ^3.1.3 + lodash.snakecase: ^4.1.1 + tslib: ^2.4.1 + undici: ^5.13.0 + ws: ^8.11.0 + checksum: fa861275b1f5360ef1b06cd514014ebd4e3f384655834dd1f73fd9f715bee643500f9d837c52f496d306825bc9c3d6c94e67463d91326e3750a28db765926ad6 + languageName: node + linkType: hard + "dlv@npm:^1.1.0": version: 1.1.3 resolution: "dlv@npm:1.1.3" @@ -2475,10 +2434,31 @@ __metadata: languageName: node linkType: hard -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed +"dotenv-cli@npm:^7.0.0": + version: 7.0.0 + resolution: "dotenv-cli@npm:7.0.0" + dependencies: + cross-spawn: ^7.0.3 + dotenv: ^16.0.0 + dotenv-expand: ^10.0.0 + minimist: ^1.2.6 + bin: + dotenv: cli.js + checksum: de4ed19bc08cef509e6bee8bf26df0523e502556abbc732a86f8eee50fc3b3b0b3824803100e39f2d09ef1335b558b9e10d1ba51a4a2338c0ebbae6b5c520b19 + languageName: node + linkType: hard + +"dotenv-expand@npm:^10.0.0": + version: 10.0.0 + resolution: "dotenv-expand@npm:10.0.0" + checksum: 2a38b470efe0abcb1ac8490421a55e1d764dc9440fd220942bce40965074f3fb00b585f4346020cb0f0f219966ee6b4ee5023458b3e2953fe5b3214de1b314ee + languageName: node + linkType: hard + +"dotenv@npm:^16.0.0": + version: 16.0.3 + resolution: "dotenv@npm:16.0.3" + checksum: afcf03f373d7a6d62c7e9afea6328e62851d627a4e73f2e12d0a8deae1cd375892004f3021883f8aec85932cd2834b091f568ced92b4774625b321db83b827f8 languageName: node linkType: hard @@ -2496,26 +2476,12 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + once: ^1.4.0 + checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b languageName: node linkType: hard @@ -2686,83 +2652,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.16.3": - version: 0.16.17 - resolution: "esbuild@npm:0.16.17" - dependencies: - "@esbuild/android-arm": 0.16.17 - "@esbuild/android-arm64": 0.16.17 - "@esbuild/android-x64": 0.16.17 - "@esbuild/darwin-arm64": 0.16.17 - "@esbuild/darwin-x64": 0.16.17 - "@esbuild/freebsd-arm64": 0.16.17 - "@esbuild/freebsd-x64": 0.16.17 - "@esbuild/linux-arm": 0.16.17 - "@esbuild/linux-arm64": 0.16.17 - "@esbuild/linux-ia32": 0.16.17 - "@esbuild/linux-loong64": 0.16.17 - "@esbuild/linux-mips64el": 0.16.17 - "@esbuild/linux-ppc64": 0.16.17 - "@esbuild/linux-riscv64": 0.16.17 - "@esbuild/linux-s390x": 0.16.17 - "@esbuild/linux-x64": 0.16.17 - "@esbuild/netbsd-x64": 0.16.17 - "@esbuild/openbsd-x64": 0.16.17 - "@esbuild/sunos-x64": 0.16.17 - "@esbuild/win32-arm64": 0.16.17 - "@esbuild/win32-ia32": 0.16.17 - "@esbuild/win32-x64": 0.16.17 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c - languageName: node - linkType: hard - "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -3398,6 +3287,20 @@ __metadata: languageName: node linkType: hard +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 + languageName: node + linkType: hard + +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -3415,6 +3318,13 @@ __metadata: languageName: node linkType: hard +"fast-copy@npm:^2.1.1": + version: 2.1.7 + resolution: "fast-copy@npm:2.1.7" + checksum: af8016c174b02bd4f706ffdf9f138511b17b748665b291fec6c5ca1922cb55da35cf86ded46b31890930bcf9b1c2481c03c793a47110ab81ec385e14972b9d7e + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -3449,6 +3359,20 @@ __metadata: languageName: node linkType: hard +"fast-redact@npm:^3.1.1": + version: 3.1.2 + resolution: "fast-redact@npm:3.1.2" + checksum: a30eb6b6830333ab213e0def55f46453ca777544dbd3a883016cb590a0eeb95e6fdf546553c1a13d509896bfba889b789991160a6d0996ceb19fce0a02e8b753 + languageName: node + linkType: hard + +"fast-safe-stringify@npm:^2.1.1": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.13.0 resolution: "fastq@npm:1.13.0" @@ -3467,6 +3391,17 @@ __metadata: languageName: node linkType: hard +"file-type@npm:^18.0.0": + version: 18.2.0 + resolution: "file-type@npm:18.2.0" + dependencies: + readable-web-to-node-stream: ^3.0.2 + strtok3: ^7.0.0 + token-types: ^5.0.1 + checksum: 6bbb072fb03eee8c3a8ad6bbaa97a81051abaf31f372e42a634dffaec319ae57de06ea632ee47d80c34a501bb1068892a8f8dc2cbcc5efd127784d38f0377712 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -3531,16 +3466,6 @@ __metadata: languageName: node linkType: hard -"foreground-child@npm:^2.0.0": - version: 2.0.0 - resolution: "foreground-child@npm:2.0.0" - dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^3.0.2 - checksum: f77ec9aff621abd6b754cb59e690743e7639328301fbea6ff09df27d2befaf7dd5b77cec51c32323d73a81a7d91caaf9413990d305cbe3d873eec4fe58960956 - languageName: node - linkType: hard - "fs-extra@npm:^11.0.0": version: 11.1.0 resolution: "fs-extra@npm:11.1.0" @@ -3552,15 +3477,6 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -3568,25 +3484,6 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" - dependencies: - node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -3620,22 +3517,6 @@ __metadata: languageName: node linkType: hard -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d - languageName: node - linkType: hard - "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -3643,13 +3524,6 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.0": - version: 2.0.0 - resolution: "get-func-name@npm:2.0.0" - checksum: 8d82e69f3e7fab9e27c547945dfe5cc0c57fc0adf08ce135dddb01081d75684a03e7a0487466f478872b341d52ac763ae49e660d01ab83741f74932085f693c3 - languageName: node - linkType: hard - "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": version: 1.1.2 resolution: "get-intrinsic@npm:1.1.2" @@ -3761,7 +3635,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:~7.2.0": +"glob@npm:^7.1.3, glob@npm:~7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -3775,16 +3649,16 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1": - version: 8.0.3 - resolution: "glob@npm:8.0.3" +"glob@npm:^8.0.0": + version: 8.1.0 + resolution: "glob@npm:8.1.0" dependencies: fs.realpath: ^1.0.0 inflight: ^1.0.4 inherits: 2 minimatch: ^5.0.1 once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 languageName: node linkType: hard @@ -3868,7 +3742,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da @@ -3951,19 +3825,29 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - "has@npm:^1.0.3": version: 1.0.3 resolution: "has@npm:1.0.3" dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"helmet@npm:^5.1.1": + version: 5.1.1 + resolution: "helmet@npm:5.1.1" + checksum: b72ba26cc431804ad3b8ecdc18db95409a492cbb7a7e825efc27fc502b9433fec39fc083f2aad4fe7ed1a89a4287560b59f4435f9689eebbae6a2b61a1ec1b7d + languageName: node + linkType: hard + +"help-me@npm:^4.0.1": + version: 4.2.0 + resolution: "help-me@npm:4.2.0" + dependencies: + glob: ^8.0.0 + readable-stream: ^3.6.0 + checksum: 6548acba10dd79ebfc93f0d739c4cb2f32f7932c8d87b091992f3a0f844706263415eab81be015aed4ab874154232beb666920d7e280502c6bba29a40cde343e languageName: node linkType: hard @@ -3983,41 +3867,6 @@ __metadata: languageName: node linkType: hard -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 - languageName: node - linkType: hard - "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -4025,15 +3874,6 @@ __metadata: languageName: node linkType: hard -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 - languageName: node - linkType: hard - "husky@npm:^8.0.3": version: 8.0.3 resolution: "husky@npm:8.0.3" @@ -4043,12 +3883,10 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf +"ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e languageName: node linkType: hard @@ -4083,13 +3921,6 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -4136,13 +3967,6 @@ __metadata: languageName: node linkType: hard -"ip@npm:^1.1.5": - version: 1.1.8 - resolution: "ip@npm:1.1.8" - checksum: a2ade53eb339fb0cbe9e69a44caab10d6e3784662285eb5d2677117ee4facc33a64679051c35e0dfdb1a3983a51ce2f5d2cb36446d52e10d01881789b76e28fb - languageName: node - linkType: hard - "is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -4283,13 +4107,6 @@ __metadata: languageName: node linkType: hard -"is-fullwidth-code-point@npm:^4.0.0": - version: 4.0.0 - resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d - languageName: node - linkType: hard - "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -4299,13 +4116,6 @@ __metadata: languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - "is-map@npm:^2.0.1, is-map@npm:^2.0.2": version: 2.0.2 resolution: "is-map@npm:2.0.2" @@ -4479,34 +4289,6 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.0 - resolution: "istanbul-lib-coverage@npm:3.2.0" - checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 - supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.4": - version: 3.1.4 - resolution: "istanbul-reports@npm:3.1.4" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 2132983355710c522f6b26808015cab9a0ee8b9f5ae0db0d3edeff40b886dd83cb670fb123cb7b32dbe59473d7c00cdde2ba6136bc0acdb20a865fccea64dfe1 - languageName: node - linkType: hard - "jju@npm:~1.4.0": version: 1.4.0 resolution: "jju@npm:1.4.0" @@ -4514,6 +4296,13 @@ __metadata: languageName: node linkType: hard +"joycon@npm:^3.1.1": + version: 3.1.1 + resolution: "joycon@npm:3.1.1" + checksum: 8003c9c3fc79c5c7602b1c7e9f7a2df2e9916f046b0dbad862aa589be78c15734d11beb9fe846f5e06138df22cb2ad29961b6a986ba81c4920ce2b15a7f11067 + languageName: node + linkType: hard + "js-sdsl@npm:^4.1.4": version: 4.1.5 resolution: "js-sdsl@npm:4.1.5" @@ -4608,13 +4397,6 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:^3.2.0": - version: 3.2.0 - resolution: "jsonc-parser@npm:3.2.0" - checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7 - languageName: node - linkType: hard - "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -4692,13 +4474,6 @@ __metadata: languageName: node linkType: hard -"local-pkg@npm:^0.4.2": - version: 0.4.2 - resolution: "local-pkg@npm:0.4.2" - checksum: 22be451353c25c4411b552bf01880ebc9e995b93574b2facc7757968d888356df59199cacada14162ab53bbc9da055bb692c907b4171f008dbce45a2afc777c1 - languageName: node - linkType: hard - "locate-path@npm:^2.0.0": version: 2.0.0 resolution: "locate-path@npm:2.0.0" @@ -4832,24 +4607,6 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^2.3.1": - version: 2.3.4 - resolution: "loupe@npm:2.3.4" - dependencies: - get-func-name: ^2.0.0 - checksum: 5af91db61aa18530f1749a64735ee194ac263e65e9f4d1562bf3036c591f1baa948289c193e0e34c7b5e2c1b75d3c1dc4fce87f5edb3cee10b0c0df46bc9ffb3 - languageName: node - linkType: hard - -"loupe@npm:^2.3.6": - version: 2.3.6 - resolution: "loupe@npm:2.3.6" - dependencies: - get-func-name: ^2.0.0 - checksum: cc83f1b124a1df7384601d72d8d1f5fe95fd7a8185469fec48bb2e4027e45243949e7a013e8d91051a138451ff0552310c32aa9786e60b6a30d1e801bdc2163f - languageName: node - linkType: hard - "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -4859,22 +4616,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": - version: 7.12.0 - resolution: "lru-cache@npm:7.12.0" - checksum: fdb62262978393df7a4bd46a072bc5c3808c50ca5a347a82bb9459410efd841b7bae50655c3cf9004c70d12c756cf6d018f6bff155a16cdde9eba9a82899b5eb - languageName: node - linkType: hard - -"make-dir@npm:^3.0.0": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: ^6.0.0 - checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 - languageName: node - linkType: hard - "make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" @@ -4882,30 +4623,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.1.8 - resolution: "make-fetch-happen@npm:10.1.8" - dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 5fe9fd9da5368a8a4fe9a3ea5b9aa15f1e91c9ab703cd9027a6b33840ecc8a57c182fbe1c767c139330a88c46a448b1f00da5e32065cec373aff2450b3da54ee - languageName: node - linkType: hard - "map-obj@npm:^1.0.0": version: 1.0.1 resolution: "map-obj@npm:1.0.1" @@ -4987,11 +4704,11 @@ __metadata: linkType: hard "minimatch@npm:^5.0.1": - version: 5.1.0 - resolution: "minimatch@npm:5.1.0" + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" dependencies: brace-expansion: ^2.0.1 - checksum: 15ce53d31a06361e8b7a629501b5c75491bc2b59712d53e802b1987121d91b433d73fcc5be92974fde66b2b51d8fb28d75a9ae900d249feb792bb1ba2a4f0a90 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 languageName: node linkType: hard @@ -5013,97 +4730,6 @@ __metadata: languageName: node linkType: hard -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" - dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 - languageName: node - linkType: hard - -"minipass-fetch@npm:^2.0.3": - version: 2.1.0 - resolution: "minipass-fetch@npm:2.1.0" - dependencies: - encoding: ^0.1.13 - minipass: ^3.1.6 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: 1334732859a3f7959ed22589bafd9c40384b885aebb5932328071c33f86b3eb181d54c86919675d1825ab5f1c8e4f328878c863873258d113c29d79a4b0c9c9f - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": - version: 3.3.4 - resolution: "minipass@npm:3.3.4" - dependencies: - yallist: ^4.0.0 - checksum: 5d95a7738c54852ba78d484141e850c792e062666a2d0c681a5ac1021275beb7e1acb077e59f9523ff1defb80901aea4e30fac10ded9a20a25d819a42916ef1b - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mlly@npm:^1.0.0, mlly@npm:^1.1.0": - version: 1.1.0 - resolution: "mlly@npm:1.1.0" - dependencies: - acorn: ^8.8.1 - pathe: ^1.0.0 - pkg-types: ^1.0.1 - ufo: ^1.0.1 - checksum: d53147a2f5f83499589c47a00e00df30cbae2e630dfcfdfdeee2b70b49aff6612f2fa13195a1c6268b8f8ecd6064cb9a35febbdf895b2cbfeacdf9a9b3e31493 - languageName: node - linkType: hard - "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -5118,7 +4744,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -5134,6 +4760,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^4.0.0": + version: 4.0.0 + resolution: "nanoid@npm:4.0.0" + bin: + nanoid: bin/nanoid.js + checksum: 7d5946df5c6d383694195b781ae7b5067c149d164ec71e910d6b06676309c3459b68af570b944fb5ecd5065d19df464f05700d141d70bb712ff8ca06642fd8df + languageName: node + linkType: hard + "natural-compare-lite@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare-lite@npm:1.4.0" @@ -5148,44 +4783,6 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 9.0.0 - resolution: "node-gyp@npm:9.0.0" - dependencies: - env-paths: ^2.2.0 - glob: ^7.1.4 - graceful-fs: ^4.2.6 - make-fetch-happen: ^10.0.3 - nopt: ^5.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 - bin: - node-gyp: bin/node-gyp.js - checksum: 4d8ef8860f7e4f4d86c91db3f519d26ed5cc23b48fe54543e2afd86162b4acbd14f21de42a5db344525efb69a991e021b96a68c70c6e2d5f4a5cb770793da6d3 - languageName: node - linkType: hard - -"nopt@npm:^5.0.0": - version: 5.0.0 - resolution: "nopt@npm:5.0.0" - dependencies: - abbrev: 1 - bin: - nopt: bin/nopt.js - checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f - languageName: node - linkType: hard - "normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" @@ -5219,18 +4816,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^6.0.0": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a - languageName: node - linkType: hard - "nth-check@npm:^2.0.1": version: 2.1.1 resolution: "nth-check@npm:2.1.1" @@ -5240,7 +4825,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.1": +"object-assign@npm:^4, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f @@ -5361,7 +4946,21 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0": +"on-exit-leak-free@npm:^1.0.0": + version: 1.0.0 + resolution: "on-exit-leak-free@npm:1.0.0" + checksum: 813adf176cf95500c0e5cfef2c82f8c92969692c3837b7b939519c31aab3866e856a30254184a347c5da0c885b2a840e37ee44cc72f6432a2284525db6a8ce7f + languageName: node + linkType: hard + +"on-exit-leak-free@npm:^2.1.0": + version: 2.1.0 + resolution: "on-exit-leak-free@npm:2.1.0" + checksum: 7334d98b87b0c89c9b69c747760b21196ff35afdedc4eaf1a0a3a02964463d7f6802481b120e4c8298967c74773ca7b914ab2eb3d9b279010eb7f67ac4960eed + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -5431,15 +5030,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^4.0.0": - version: 4.0.0 - resolution: "p-limit@npm:4.0.0" - dependencies: - yocto-queue: ^1.0.0 - checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b - languageName: node - linkType: hard - "p-locate@npm:^2.0.0": version: 2.0.0 resolution: "p-locate@npm:2.0.0" @@ -5467,15 +5057,6 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - "p-try@npm:^1.0.0": version: 1.0.0 resolution: "p-try@npm:1.0.0" @@ -5553,17 +5134,10 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.0.0, pathe@npm:^1.1.0": - version: 1.1.0 - resolution: "pathe@npm:1.1.0" - checksum: 6b9be9968ea08a90c0824934799707a1c6a1ad22ac1f22080f377e3f75856d5e53a331b01d327329bfce538a14590587cfb250e8e7947f64408797c84c252056 - languageName: node - linkType: hard - -"pathval@npm:^1.1.1": - version: 1.1.1 - resolution: "pathval@npm:1.1.1" - checksum: 090e3147716647fb7fb5b4b8c8e5b55e5d0a6086d085b6cd23f3d3c01fcf0ff56fd3cc22f2f4a033bd2e46ed55d61ed8379e123b42afe7d531a2a5fc8bb556d6 +"peek-readable@npm:^5.0.0": + version: 5.0.0 + resolution: "peek-readable@npm:5.0.0" + checksum: bef5ceb50586eb42e14efba274ac57ffe97f0ed272df9239ce029f688f495d9bf74b2886fa27847c706a9db33acda4b7d23bbd09a2d21eb4c2a54da915117414 languageName: node linkType: hard @@ -5581,14 +5155,65 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.1": - version: 1.0.1 - resolution: "pkg-types@npm:1.0.1" +"pino-abstract-transport@npm:^1.0.0, pino-abstract-transport@npm:v1.0.0": + version: 1.0.0 + resolution: "pino-abstract-transport@npm:1.0.0" + dependencies: + readable-stream: ^4.0.0 + split2: ^4.0.0 + checksum: 05dd0eda52dd99fd204b39fe7b62656744b63e863bc052cdd5105d25f226a236966d0a46e39a1ace4838f6e988c608837ff946d2d0bc92835ca7baa0a3bff8d8 + languageName: node + linkType: hard + +"pino-pretty@npm:^8.1.0": + version: 8.1.0 + resolution: "pino-pretty@npm:8.1.0" dependencies: - jsonc-parser: ^3.2.0 - mlly: ^1.0.0 - pathe: ^1.0.0 - checksum: fe73cc22fb72ddb09227e2837a7b2ed1e0706a18e69a58a6ce13cde2b7eab122cb98de44d5c54fca5715d203ef3d2eb004b3ec84a3c05decb11e7c49a80fe2f9 + colorette: ^2.0.7 + dateformat: ^4.6.3 + fast-copy: ^2.1.1 + fast-safe-stringify: ^2.1.1 + help-me: ^4.0.1 + joycon: ^3.1.1 + minimist: ^1.2.6 + on-exit-leak-free: ^1.0.0 + pino-abstract-transport: ^1.0.0 + pump: ^3.0.0 + readable-stream: ^4.0.0 + secure-json-parse: ^2.4.0 + sonic-boom: ^3.0.0 + strip-json-comments: ^3.1.1 + bin: + pino-pretty: bin.js + checksum: 6e8656cdecfd5cf23a328bbb50c5b9d3f27dee838ed797a41037845612dbe610e1083fa896128f7323cf45c862e3954441527ab315be3bab63d14095c7b4cd73 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^6.0.0": + version: 6.1.0 + resolution: "pino-std-serializers@npm:6.1.0" + checksum: 5e42327c242b67c1a38fe7be1b64c5f655aa7116b159899f09f3ef057302055a23c99c54590e18da4b6b76557487e3b9478a89889cea8cbd3e0cc16c3dc154a5 + languageName: node + linkType: hard + +"pino@npm:*, pino@npm:^8.4.0, pino@npm:^8.8.0": + version: 8.8.0 + resolution: "pino@npm:8.8.0" + dependencies: + atomic-sleep: ^1.0.0 + fast-redact: ^3.1.1 + on-exit-leak-free: ^2.1.0 + pino-abstract-transport: v1.0.0 + pino-std-serializers: ^6.0.0 + process-warning: ^2.0.0 + quick-format-unescaped: ^4.0.3 + real-require: ^0.2.0 + safe-stable-stringify: ^2.3.1 + sonic-boom: ^3.1.0 + thread-stream: ^2.0.0 + bin: + pino: bin.js + checksum: 69256469221b332776333069d637100053eb15dc7baa3f95897d7864bf2e6fd99f15cfd9cfc94b56e7b00da2e6b349c49affcff1abaca9a3d4b7ba63ff86b4f0 languageName: node linkType: hard @@ -5599,6 +5224,16 @@ __metadata: languageName: node linkType: hard +"polka@npm:^1.0.0-next.22": + version: 1.0.0-next.22 + resolution: "polka@npm:1.0.0-next.22" + dependencies: + "@polka/url": ^1.0.0-next.21 + trouter: ^3.1.0 + checksum: 31e8b1eba9bbf4451f78cb60f212d685558f15f002c72b7820e2547873a686d0382b1d5ba037aa3b3b904d2da2e47df0946087895eac4d8f5582eb5d6b77c735 + languageName: node + linkType: hard + "postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.9": version: 6.0.10 resolution: "postcss-selector-parser@npm:6.0.10" @@ -5620,17 +5255,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.20": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" - dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 - languageName: node - linkType: hard - "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -5688,31 +5312,36 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.5.1": - version: 27.5.1 - resolution: "pretty-format@npm:27.5.1" +"prisma-error-enum@npm:^0.1.3": + version: 0.1.3 + resolution: "prisma-error-enum@npm:0.1.3" + checksum: aacf7dbd91052ce74254cf11f82f0b7bc0b0436f68d49ba4908131bbeb288b3c3f41f2ffed04040988fb1ffef62d7438bc696989a68d75ae793d855711ffc32a + languageName: node + linkType: hard + +"prisma@npm:^4.9.0": + version: 4.9.0 + resolution: "prisma@npm:4.9.0" dependencies: - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + "@prisma/engines": 4.9.0 + bin: + prisma: build/index.js + prisma2: build/index.js + checksum: 82f680008a61824a40f3daae9e0e5766f33d28c6641d04e0ee0918c2cb42110579187f3fce2d08ec8baa1124b3115229e9d83d7f64987bf46f6403f56b07e711 languageName: node linkType: hard -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 +"process-warning@npm:^2.0.0": + version: 2.1.0 + resolution: "process-warning@npm:2.1.0" + checksum: 2f22a3b8ec0de018c3a35e5945a2261c006aa3dfecf3d4f7aa323bc57e4fcdedfd566003283708547fde666d3ab7097d70f8d9765cd831d300723e4008adb7ab languageName: node linkType: hard -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 languageName: node linkType: hard @@ -5737,6 +5366,16 @@ __metadata: languageName: node linkType: hard +"pump@npm:^3.0.0": + version: 3.0.0 + resolution: "pump@npm:3.0.0" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.1.1 resolution: "punycode@npm:2.1.1" @@ -5758,6 +5397,13 @@ __metadata: languageName: node linkType: hard +"quick-format-unescaped@npm:^4.0.3": + version: 4.0.4 + resolution: "quick-format-unescaped@npm:4.0.4" + checksum: 7bc32b99354a1aa46c089d2a82b63489961002bb1d654cee3e6d2d8778197b68c2d854fd23d8422436ee1fdfd0abaddc4d4da120afe700ade68bd357815b26fd + languageName: node + linkType: hard + "quick-lru@npm:^4.0.1": version: 4.0.1 resolution: "quick-lru@npm:4.0.1" @@ -5772,13 +5418,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 - languageName: node - linkType: hard - "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -5813,6 +5452,34 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^4.0.0": + version: 4.3.0 + resolution: "readable-stream@npm:4.3.0" + dependencies: + abort-controller: ^3.0.0 + buffer: ^6.0.3 + events: ^3.3.0 + process: ^0.11.10 + checksum: 5f8d5fc1eb0c6eb47771ad4537881126d6280666e1f10ba1e2262a670a0352c36f59e6a04d17c9a6f7c888218984836dc67f55e95a77de8bfdf06fb75f00f670 + languageName: node + linkType: hard + +"readable-web-to-node-stream@npm:^3.0.2": + version: 3.0.2 + resolution: "readable-web-to-node-stream@npm:3.0.2" + dependencies: + readable-stream: ^3.6.0 + checksum: 8c56cc62c68513425ddfa721954875b382768f83fa20e6b31e365ee00cbe7a3d6296f66f7f1107b16cd3416d33aa9f1680475376400d62a081a88f81f0ea7f9c + languageName: node + linkType: hard + +"real-require@npm:^0.2.0": + version: 0.2.0 + resolution: "real-require@npm:0.2.0" + checksum: fa060f19f2f447adf678d1376928c76379dce5f72bd334da301685ca6cdcb7b11356813332cc243c88470796bc2e2b1e2917fc10df9143dd93c2ea608694971d + languageName: node + linkType: hard + "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -5857,6 +5524,13 @@ __metadata: languageName: node linkType: hard +"regexparam@npm:^1.3.0": + version: 1.3.0 + resolution: "regexparam@npm:1.3.0" + checksum: ea6449d9984392cdf401d3d9b722a56357224fba7e9fdf2887f1901e0d3a838052d3b92b30f2276047bf5d5b6a1a90b7dff6aa1c89599b246a86285e7e3e3fd4 + languageName: node + linkType: hard + "regexpp@npm:^3.0.0, regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -5998,13 +5672,6 @@ __metadata: languageName: node linkType: hard -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - "reusify@npm:^1.0.4": version: 1.0.4 resolution: "reusify@npm:1.0.4" @@ -6023,17 +5690,12 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.7.0": - version: 3.12.0 - resolution: "rollup@npm:3.12.0" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true +"rimraf@npm:^4.1.2": + version: 4.1.2 + resolution: "rimraf@npm:4.1.2" bin: - rollup: dist/bin/rollup - checksum: 66182947ea74bd4777e1a02514124f49eacc6b123e23738cf31342f8e73b79e43da05671aebe6d5f55b5830ebf3dd11f2eaba1b98b8fc6a9e6d96fd4c3ecc534 + rimraf: dist/cjs/src/bin.js + checksum: 480b8147fd9bcbef3ac118f88a7b1169c3872977a3411a0c84df838bfc30e175a394c0db6f9619fc8b8a886a18c6d779d5e74f380a0075ecc710afaf81b3f50c languageName: node linkType: hard @@ -6063,13 +5725,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c - languageName: node - linkType: hard - "safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -6097,10 +5752,17 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 +"safe-stable-stringify@npm:^2.3.1": + version: 2.4.2 + resolution: "safe-stable-stringify@npm:2.4.2" + checksum: 0324ba2e40f78cae63e31a02b1c9bdf1b786621f9e8760845608eb9e81aef401944ac2078e5c9c1533cf516aea34d08fa8052ca853637ced84b791caaf1e394e + languageName: node + linkType: hard + +"secure-json-parse@npm:^2.4.0": + version: 2.7.0 + resolution: "secure-json-parse@npm:2.7.0" + checksum: d9d7d5a01fc6db6115744ba23cf9e67ecfe8c524d771537c062ee05ad5c11b64c730bc58c7f33f60bd6877f96b86f0ceb9ea29644e4040cb757f6912d4dd6737 languageName: node linkType: hard @@ -6124,7 +5786,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.3.0": +"semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" bin: @@ -6144,13 +5806,6 @@ __metadata: languageName: node linkType: hard -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -6178,14 +5833,7 @@ __metadata: languageName: node linkType: hard -"siginfo@npm:^2.0.0": - version: 2.0.0 - resolution: "siginfo@npm:2.0.0" - checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.3": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -6206,41 +5854,12 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^5.0.0": - version: 5.0.0 - resolution: "slice-ansi@npm:5.0.0" - dependencies: - ansi-styles: ^6.0.0 - is-fullwidth-code-point: ^4.0.0 - checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" - dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 - languageName: node - linkType: hard - -"socks@npm:^2.6.2": - version: 2.6.2 - resolution: "socks@npm:2.6.2" +"sonic-boom@npm:^3.0.0, sonic-boom@npm:^3.1.0": + version: 3.2.1 + resolution: "sonic-boom@npm:3.2.1" dependencies: - ip: ^1.1.5 - smart-buffer: ^4.2.0 - checksum: dd9194293059d737759d5c69273850ad4149f448426249325c4bea0e340d1cf3d266c3b022694b0dcf5d31f759de23657244c481fc1e8322add80b7985c36b5e + atomic-sleep: ^1.0.0 + checksum: 674d0af31c67818c99a0956482720b853bdaa6e46a63814db9fd28024580836a4cfdafa2c2ba6b0ec08449e9a92a5e7959530689b2c1fb5c83f786708cd7a7da languageName: node linkType: hard @@ -6251,23 +5870,6 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.21": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -6311,26 +5913,10 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" - dependencies: - minipass: ^3.1.1 - checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb - languageName: node - linkType: hard - -"stackback@npm:0.0.2": - version: 0.0.2 - resolution: "stackback@npm:0.0.2" - checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 - languageName: node - linkType: hard - -"std-env@npm:^3.3.1": - version: 3.3.1 - resolution: "std-env@npm:3.3.1" - checksum: c4f59ecd2cb52041ce1785776d28a1aa56d346b6c4efcb8473e7e801eed1ac7612332dcee242d0b35948f35f745cceb6e226b5e825b59e588b262dca6be2b8aa +"split2@npm:^4.0.0": + version: 4.1.0 + resolution: "split2@npm:4.1.0" + checksum: ec581597cb74c13cdfb5e2047543dd40cb1e8e9803c7b1e0c29ede05f2b4f049b2d6e7f2788a225d544549375719658b8f38e9366364dec35dc7a12edfda5ee5 languageName: node linkType: hard @@ -6343,7 +5929,14 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 + languageName: node + linkType: hard + +"string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -6354,17 +5947,6 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^5.0.0": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - "string.prototype.matchall@npm:^4.0.8": version: 4.0.8 resolution: "string.prototype.matchall@npm:4.0.8" @@ -6452,15 +6034,6 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1": - version: 7.0.1 - resolution: "strip-ansi@npm:7.0.1" - dependencies: - ansi-regex: ^6.0.1 - checksum: 257f78fa433520e7f9897722731d78599cb3fce29ff26a20a5e12ba4957463b50a01136f37c43707f4951817a75e90820174853d6ccc240997adc5df8f966039 - languageName: node - linkType: hard - "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -6484,12 +6057,13 @@ __metadata: languageName: node linkType: hard -"strip-literal@npm:^1.0.0": - version: 1.0.0 - resolution: "strip-literal@npm:1.0.0" +"strtok3@npm:^7.0.0": + version: 7.0.0 + resolution: "strtok3@npm:7.0.0" dependencies: - acorn: ^8.8.1 - checksum: ada9b60f322ce3e3fd167b65a186ab77a8c76b8f9074dcdbad4c1a810b46f21c9dca30d4d807e98af580cbe99bfbccd6d8176f69183a454ae2868d8ddd6d4f88 + "@tokenizer/token": ^0.3.0 + peek-readable: ^5.0.0 + checksum: 2ebe7ad8f2aea611dec6742cf6a42e82764892a362907f7ce493faf334501bf981ce21c828dcc300457e6d460dc9c34d644ededb3b01dcb9e37559203cf1748c languageName: node linkType: hard @@ -6535,56 +6109,6 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.11 - resolution: "tar@npm:6.1.11" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^3.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f - languageName: node - linkType: hard - -"template@workspace:.": - version: 0.0.0-use.local - resolution: "template@workspace:." - dependencies: - "@commitlint/cli": ^17.4.2 - "@commitlint/config-angular": ^17.4.2 - "@types/node": ^16.18.11 - "@typescript-eslint/eslint-plugin": ^5.49.0 - "@typescript-eslint/parser": ^5.49.0 - "@vitest/coverage-c8": ^0.28.3 - eslint: ^8.33.0 - eslint-config-neon: ^0.1.40 - eslint-plugin-typescript-sort-keys: ^2.1.0 - husky: ^8.0.3 - is-ci: ^3.0.1 - prettier: ^2.8.3 - prettier-eslint: ^15.0.1 - reflect-metadata: ^0.1.13 - tslib: ^2.5.0 - tsyringe: ^4.7.0 - typescript: ^4.9.4 - vitest: ^0.28.3 - languageName: unknown - linkType: soft - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 - languageName: node - linkType: hard - "text-extensions@npm:^1.0.0": version: 1.9.0 resolution: "text-extensions@npm:1.9.0" @@ -6599,6 +6123,15 @@ __metadata: languageName: node linkType: hard +"thread-stream@npm:^2.0.0": + version: 2.3.0 + resolution: "thread-stream@npm:2.3.0" + dependencies: + real-require: ^0.2.0 + checksum: e9ea58f9f36320165b41c2aae5c439bf68bd3575eb533c458483d8b290e31d519979e351408c7d6e248711611434332c2a3aae2165650b028cc3eb9b1052ac16 + languageName: node + linkType: hard + "through2@npm:^4.0.0": version: 4.0.2 resolution: "through2@npm:4.0.2" @@ -6625,24 +6158,10 @@ __metadata: languageName: node linkType: hard -"tinybench@npm:^2.3.1": - version: 2.3.1 - resolution: "tinybench@npm:2.3.1" - checksum: 74d45fa546d964a8123f98847fc59550945ed7f0d3e5a4ce0f9596d836b51c1d340c2ae0277a8023c15dc9ea3d7cb948a79173bfc46338c9b367c6323ea1eaf3 - languageName: node - linkType: hard - -"tinypool@npm:^0.3.1": - version: 0.3.1 - resolution: "tinypool@npm:0.3.1" - checksum: 23af5f3889ccab1619a0459748bd419db52b5cbdfd409241f8d42993ace485af5fa4eb3d945e5c37f4b90690b727b7858696967b00b4292149b5d71fb5848185 - languageName: node - linkType: hard - -"tinyspy@npm:^1.0.2": - version: 1.0.2 - resolution: "tinyspy@npm:1.0.2" - checksum: 32096121aa8d52bb625ad62c9314b3e4daba4ab9ac428217b12b1e1dfe9860e3c94d54a7affa279cc70dc6f10d88c6ba46b51de68896b318a06d02f05e87dcc3 +"tiny-typed-emitter@npm:^2.1.0": + version: 2.1.0 + resolution: "tiny-typed-emitter@npm:2.1.0" + checksum: 709bca410054e08df4dc29d5ea0916328bb2900d60245c6a743068ea223887d9fd2c945b6070eb20336275a557a36c2808e5c87d2ed4b60633458632be4a3e10 languageName: node linkType: hard @@ -6662,6 +6181,16 @@ __metadata: languageName: node linkType: hard +"token-types@npm:^5.0.1": + version: 5.0.1 + resolution: "token-types@npm:5.0.1" + dependencies: + "@tokenizer/token": ^0.3.0 + ieee754: ^1.2.1 + checksum: 32780123bc6ce8b6a2231d860445c994a02a720abf38df5583ea957aa6626873cd1c4dd8af62314da4cf16ede00c379a765707a3b06f04b8808c38efdae1c785 + languageName: node + linkType: hard + "trim-newlines@npm:^3.0.0": version: 3.0.1 resolution: "trim-newlines@npm:3.0.1" @@ -6669,6 +6198,22 @@ __metadata: languageName: node linkType: hard +"trouter@npm:^3.1.0": + version: 3.2.0 + resolution: "trouter@npm:3.2.0" + dependencies: + regexparam: ^1.3.0 + checksum: 50beb18d4cf0239fe5ee81368d59f08b25298869d169d39c35b1c1d142e922025e14a648989382da70d4064d2ac7900b4348401caa0a235c3cccabaaa85351ef + languageName: node + linkType: hard + +"ts-mixer@npm:^6.0.2": + version: 6.0.2 + resolution: "ts-mixer@npm:6.0.2" + checksum: cbe9935886fab201f2265ebde8e7e4147a3147ba6b6b4701ed5b92fd52729cda340f45f80f486131d203ed25c8c896a2a3623b2c33cd14314bd7ba961e97ee2e + languageName: node + linkType: hard + "ts-node@npm:^10.8.1": version: 10.8.1 resolution: "ts-node@npm:10.8.1" @@ -6721,7 +6266,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.5.0": +"tslib@npm:^2.4.1, tslib@npm:^2.5.0": version: 2.5.0 resolution: "tslib@npm:2.5.0" checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 @@ -6764,6 +6309,77 @@ __metadata: languageName: node linkType: hard +"turbo-darwin-64@npm:1.6.3": + version: 1.6.3 + resolution: "turbo-darwin-64@npm:1.6.3" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"turbo-darwin-arm64@npm:1.6.3": + version: 1.6.3 + resolution: "turbo-darwin-arm64@npm:1.6.3" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"turbo-linux-64@npm:1.6.3": + version: 1.6.3 + resolution: "turbo-linux-64@npm:1.6.3" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"turbo-linux-arm64@npm:1.6.3": + version: 1.6.3 + resolution: "turbo-linux-arm64@npm:1.6.3" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"turbo-windows-64@npm:1.6.3": + version: 1.6.3 + resolution: "turbo-windows-64@npm:1.6.3" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"turbo-windows-arm64@npm:1.6.3": + version: 1.6.3 + resolution: "turbo-windows-arm64@npm:1.6.3" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"turbo@npm:~1.6.3": + version: 1.6.3 + resolution: "turbo@npm:1.6.3" + dependencies: + turbo-darwin-64: 1.6.3 + turbo-darwin-arm64: 1.6.3 + turbo-linux-64: 1.6.3 + turbo-linux-arm64: 1.6.3 + turbo-windows-64: 1.6.3 + turbo-windows-arm64: 1.6.3 + dependenciesMeta: + turbo-darwin-64: + optional: true + turbo-darwin-arm64: + optional: true + turbo-linux-64: + optional: true + turbo-linux-arm64: + optional: true + turbo-windows-64: + optional: true + turbo-windows-arm64: + optional: true + bin: + turbo: bin/turbo + checksum: 35195f4b7623014c25ba152c11a8cb23e51cbd75dc9266d0656692665f85b28faf3496dea8cecacf52795a917410668124186ffbdcf276325ccc3e11df9e9623 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -6773,13 +6389,6 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 - languageName: node - linkType: hard - "type-fest@npm:^0.18.0": version: 0.18.1 resolution: "type-fest@npm:0.18.1" @@ -6829,13 +6438,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.9.4": - version: 4.9.4 - resolution: "typescript@npm:4.9.4" +"typescript@npm:^4.9.5": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db languageName: node linkType: hard @@ -6849,20 +6458,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.9.4#~builtin": - version: 4.9.4 - resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=ad5954" +"typescript@patch:typescript@^4.9.5#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=ad5954" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 1caaea6cb7f813e64345190fddc4e6c924d0b698ab81189b503763c4a18f7f5501c69362979d36e19c042d89d936443e768a78b0675690b35eb663d19e0eae71 - languageName: node - linkType: hard - -"ufo@npm:^1.0.1": - version: 1.0.1 - resolution: "ufo@npm:1.0.1" - checksum: 63024876f21b7cc44267255a8043062046d3215e09212bd682787a13ccf1e0c5d23f7686a7f1bc7ac9f34c7e8a88100af234f42b509db50f17ce638af6ac87cc + checksum: 8f6260acc86b56bfdda6004bc53f32ea548f543e8baef7071c8e34d29d292f3e375c8416556c8de10b24deef6933cd1c16a8233dc84a3dd43a13a13265d0faab languageName: node linkType: hard @@ -6878,21 +6480,12 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: ^2.0.0 - checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80 - languageName: node - linkType: hard - -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" +"undici@npm:^5.13.0, undici@npm:^5.6.0": + version: 5.16.0 + resolution: "undici@npm:5.16.0" dependencies: - imurmurhash: ^0.1.4 - checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a + busboy: ^1.6.0 + checksum: bc22e797cbf469351713c88af33e65e21952a75f431b78b0e75fb2411426ab38b888ec0761d4b81eadf8f6e8872ed23fb75641cc7319c6a7f08bd083899fa1cc languageName: node linkType: hard @@ -6933,17 +6526,6 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.0": - version: 9.0.1 - resolution: "v8-to-istanbul@npm:9.0.1" - dependencies: - "@jridgewell/trace-mapping": ^0.3.12 - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: a49c34bf0a3af0c11041a3952a2600913904a983bd1bc87148b5c033bc5c1d02d5a13620fcdbfa2c60bc582a2e2970185780f0c844b4c3a220abf405f8af6311 - languageName: node - linkType: hard - "validate-npm-package-license@npm:^3.0.1": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -6954,110 +6536,10 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:0.28.3": - version: 0.28.3 - resolution: "vite-node@npm:0.28.3" - dependencies: - cac: ^6.7.14 - debug: ^4.3.4 - mlly: ^1.1.0 - pathe: ^1.1.0 - picocolors: ^1.0.0 - source-map: ^0.6.1 - source-map-support: ^0.5.21 - vite: ^3.0.0 || ^4.0.0 - bin: - vite-node: vite-node.mjs - checksum: 9a4d756388fc556314a98510308c3c26499fadaf5f99b76b65b6bb7404da74f6565b377e843e8d4f40f23aef13c52c8c0924ed63f866a42d674016e16eb936d6 - languageName: node - linkType: hard - -"vite@npm:^3.0.0 || ^4.0.0": - version: 4.0.4 - resolution: "vite@npm:4.0.4" - dependencies: - esbuild: ^0.16.3 - fsevents: ~2.3.2 - postcss: ^8.4.20 - resolve: ^1.22.1 - rollup: ^3.7.0 - peerDependencies: - "@types/node": ">= 14" - less: "*" - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: eb86c8cdfe8dcb6644005486b31cb60bc596f2aa683cb194abb5c0afca7c2a5dfdb02bbc7f83f419ad170227ac9c3b898f4406a6d1433105fb61d79d78e47d52 - languageName: node - linkType: hard - -"vitest@npm:0.28.3, vitest@npm:^0.28.3": - version: 0.28.3 - resolution: "vitest@npm:0.28.3" - dependencies: - "@types/chai": ^4.3.4 - "@types/chai-subset": ^1.3.3 - "@types/node": "*" - "@vitest/expect": 0.28.3 - "@vitest/runner": 0.28.3 - "@vitest/spy": 0.28.3 - "@vitest/utils": 0.28.3 - acorn: ^8.8.1 - acorn-walk: ^8.2.0 - cac: ^6.7.14 - chai: ^4.3.7 - debug: ^4.3.4 - local-pkg: ^0.4.2 - pathe: ^1.1.0 - picocolors: ^1.0.0 - source-map: ^0.6.1 - std-env: ^3.3.1 - strip-literal: ^1.0.0 - tinybench: ^2.3.1 - tinypool: ^0.3.1 - tinyspy: ^1.0.2 - vite: ^3.0.0 || ^4.0.0 - vite-node: 0.28.3 - why-is-node-running: ^2.2.2 - peerDependencies: - "@edge-runtime/vm": "*" - "@vitest/browser": "*" - "@vitest/ui": "*" - happy-dom: "*" - jsdom: "*" - peerDependenciesMeta: - "@edge-runtime/vm": - optional: true - "@vitest/browser": - optional: true - "@vitest/ui": - optional: true - happy-dom: - optional: true - jsdom: - optional: true - bin: - vitest: vitest.mjs - checksum: 13ee3d8b7554cbe46516a1cc46082eb11443532d11b263c1ed2ad3187339bb71ec705669e9d3d59653a8bd230c21488e1f5caa69b2aa20acabd3ee2b283b805c +"vary@npm:^1": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b languageName: node linkType: hard @@ -7134,7 +6616,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^2.0.1, which@npm:^2.0.2": +"which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: @@ -7145,27 +6627,6 @@ __metadata: languageName: node linkType: hard -"why-is-node-running@npm:^2.2.2": - version: 2.2.2 - resolution: "why-is-node-running@npm:2.2.2" - dependencies: - siginfo: ^2.0.0 - stackback: 0.0.2 - bin: - why-is-node-running: cli.js - checksum: 50820428f6a82dfc3cbce661570bcae9b658723217359b6037b67e495255409b4c8bc7931745f5c175df71210450464517cab32b2f7458ac9c40b4925065200a - languageName: node - linkType: hard - -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 - languageName: node - linkType: hard - "word-wrap@npm:^1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" @@ -7191,6 +6652,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.11.0": + version: 8.12.0 + resolution: "ws@npm:8.12.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 818ff3f8749c172a95a114cceb8b89cedd27e43a82d65c7ad0f7882b1e96a2ee6709e3746a903c3fa88beec0c8bae9a9fcd75f20858b32a166dfb7519316a5d7 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -7212,7 +6688,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": +"yargs-parser@npm:^20.2.3": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 @@ -7226,21 +6702,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" - 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 - checksum: b14afbb51e3251a204d81937c86a7e9d4bdbf9a2bcee38226c900d00f522969ab675703bee2a6f99f8e20103f608382936034e64d921b74df82b63c07c5e8f59 - languageName: node - linkType: hard - "yargs@npm:^17.0.0": version: 17.5.1 resolution: "yargs@npm:17.5.1" @@ -7269,10 +6730,3 @@ __metadata: checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard - -"yocto-queue@npm:^1.0.0": - version: 1.0.0 - resolution: "yocto-queue@npm:1.0.0" - checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 - languageName: node - linkType: hard