diff --git a/Dockerfile b/Dockerfile index 506e03ad..2c83a726 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM node:16-alpine as node # Builder stage -FROM node AS builder +FROM node AS dev WORKDIR /home/node/app @@ -19,7 +19,7 @@ EXPOSE ${PORT} ENTRYPOINT [ "yarn", "dev:watch" ] # Final stage -FROM node AS final +FROM node AS prod ENV NODE_ENV production diff --git a/Makefile b/Makefile index 3614ea91..87a481ca 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,12 @@ down: @echo '************ ************' docker-compose down +stop: + @echo '************ ************' + @echo '************ STOP CONTAINERS ************' + @echo '************ ************' + docker-compose stop + dev: @echo '************ ************' @echo '************ DEV INIT ************' diff --git a/README.md b/README.md index e995f8ee..4d6e9c51 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Hello! **NExp** *(Node Experience)* is a boilerplate for [**Node**](https://node Each module is divided by business domain: - App -- Auth +- AuthHelper - File - Item - Notification diff --git a/docker-compose.yml b/docker-compose.yml index ca69fa55..96d16744 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,11 +4,14 @@ services: node: container_name: experience_node_1 restart: always - image: digichanges/nexp:1.0 - working_dir: /usr/app - entrypoint: bash dev.build.sh + build: + context: . + dockerfile: Dockerfile + target: dev + working_dir: /home/node/app volumes: - - .:/usr/app:cached + - .:/home/node/app:cached + - ./node_modules:/home/node/app/node_modules:cached ports: - "8089:8089" networks: diff --git a/ecosystem.config.js b/ecosystem.config.js index 80cb8079..75965113 100644 --- a/ecosystem.config.js +++ b/ecosystem.config.js @@ -3,7 +3,7 @@ module.exports = { name: "node-experience", script: "./dist/src/index.js", error_file: "./dist/src/logs/err.log", - watch: true, + watch: false, instances: 1, ignore_watch: './dist/src/logs/*', instance_var: "0", diff --git a/jest-mongodb-config.js b/jest-mongodb-config.js index 6f22ceab..2549259c 100644 --- a/jest-mongodb-config.js +++ b/jest-mongodb-config.js @@ -10,4 +10,4 @@ module.exports = { }, autoStart: false } -}; \ No newline at end of file +}; diff --git a/jest.config.js b/jest.config.js index 7d032046..5bb63069 100644 --- a/jest.config.js +++ b/jest.config.js @@ -37,8 +37,6 @@ module.exports = { coveragePathIgnorePatterns: [ "/node_modules/", "/.eslintrc.js", - "/src/app.ts", - "/src/Logger.ts", "/src/command.ts", "/src/File/*", "/src/AppExpress/Domain/*", @@ -46,14 +44,12 @@ module.exports = { "/src/User/Presentation/Commands/*", "/src/Item/Presentation/Commands/*", "/src/Role/Presentation/Commands/*", - "/src/AppExpress/Presentation/Criterias/NotificationFilter.ts", - "/src/AppExpress/Presentation/Criterias/NotificationSort.ts", + "/src/AppExpress/Presentation/Criterias/*", "/src/File/Infrastructure/Repositories/FileSqlRepository.ts", "/src/User/Infrastructure/Repositories/UserSqlRepository.ts", "/src/Role/Infrastructure/Repositories/RoleSqlRepository.ts", "/src/Item/Infrastructure/Repositories/ItemSqlRepository.ts", - "/src/Auth/Infrastructure/Repositories/TokenRedisRepository.ts", - "/src/AppExpress/Domain/UseCases/GetLogViewUseCase.ts", + "/src/Auth/Infrastructure/Repositories/TokenRedisRepository.ts" ], // Indicates which provider should be used to instrument code for coverage diff --git a/package.json b/package.json index 8362f1de..7079494f 100644 --- a/package.json +++ b/package.json @@ -77,12 +77,11 @@ "inversify-inject-decorators": "^3.1.0", "jsonwebtoken": "^8.5.1", "jwt-simple": "^0.5.6", - "koa": "^2.13.1", + "koa": "^2.13.4", "koa-bodyparser": "^4.3.0", "koa-cors": "^0.0.16", "koa-hbs": "^0.9.0", "koa-helmet": "^6.1.0", - "koa-pino-logger": "^3.0.0", "koa-qs": "^3.0.0", "koa-ratelimit": "^5.0.1", "koa-router": "^10.0.0", @@ -99,14 +98,12 @@ "pg": "^8.7.1", "pg-mem": "^2.2.0", "pg-promise": "^10.11.1", - "pino-express": "^1.1.1", - "pino-multi-stream": "^6.0.0", - "pino-pretty": "^7.2.0", "promise-events": "^0.2.4", "reflect-metadata": "^0.1.13", "shelljs": "^0.8.5", "tedis": "^0.1.12", "ts-mixer": "^6.0.0", + "tslog": "^3.3.2", "typeorm": "^0.2.38", "uuid": "^8.3.2", "web-push": "^3.4.4" @@ -115,7 +112,7 @@ "@commitlint/cli": "^13.2.1", "@commitlint/config-conventional": "^13.2.0", "@parcel/transformer-typescript-tsc": "^2.3.1", - "@shelf/jest-mongodb": "^2.1.0", + "@shelf/jest-mongodb": "^2.2.1", "@types/bcrypt": "^3.0.1", "@types/bcryptjs": "^2.4.2", "@types/bson": "^4.2.0", @@ -137,7 +134,6 @@ "@types/koa-bodyparser": "^4.3.1", "@types/koa-cors": "^0.0.2", "@types/koa-hbs": "^1.0.7", - "@types/koa-pino-logger": "^3.0.0", "@types/koa-ratelimit": "^4.2.3", "@types/koa-router": "^7.4.2", "@types/koa__multer": "^2.0.3", @@ -150,7 +146,6 @@ "@types/node-cron": "^3.0.0", "@types/nodemailer": "^6.4.1", "@types/pg": "^8.6.1", - "@types/pino": "^7.0.5", "@types/shelljs": "^0.8.8", "@types/supertest": "^2.0.11", "@types/uuid": "^8.3.0", @@ -160,7 +155,7 @@ "@typescript-eslint/parser": "^5.10.2", "concurrently": "^6.3.0", "cpy-cli": "^3.1.1", - "eslint": "^8.8.0", + "eslint": "^8.10.0", "husky": "^7.0.4", "jest": "^27.4.5", "lint-staged": "^11.2.6", @@ -172,7 +167,7 @@ "supertest": "^6.1.3", "ts-jest": "^27.0.7", "ts-node": "^8.9.1", - "typescript": "^4.4.4" + "typescript": "^4.6.2" }, "engines": { "yarn": "^1.*" diff --git a/src/App/Domain/Entities/Base.ts b/src/App/Domain/Entities/Base.ts index 4f42439d..71ac68be 100644 --- a/src/App/Domain/Entities/Base.ts +++ b/src/App/Domain/Entities/Base.ts @@ -1,4 +1,4 @@ -import { v4 as uuidv4 } from 'uuid'; +import { v4 as uuidV4 } from 'uuid'; import IBaseDomain from '../../../App/InterfaceAdapters/IBaseDomain'; abstract class Base implements IBaseDomain @@ -10,7 +10,7 @@ abstract class Base implements IBaseDomain constructor() { - this._id = uuidv4(); + this._id = uuidV4(); } getId(): string @@ -25,7 +25,7 @@ abstract class Base implements IBaseDomain clone(): void { - this._id = uuidv4(); + this._id = uuidV4(); } } diff --git a/src/App/Domain/Payloads/PasswordPayload.ts b/src/App/Domain/Payloads/PasswordPayload.ts new file mode 100644 index 00000000..bca98b19 --- /dev/null +++ b/src/App/Domain/Payloads/PasswordPayload.ts @@ -0,0 +1,8 @@ +import Password from '../ValueObjects/Password'; + +interface PasswordPayload +{ + password: Password; +} + +export default PasswordPayload; diff --git a/src/App/Infrastructure/Repositories/BaseMongoRepository.ts b/src/App/Infrastructure/Repositories/BaseMongoRepository.ts index 52b9d413..8d8f92ab 100644 --- a/src/App/Infrastructure/Repositories/BaseMongoRepository.ts +++ b/src/App/Infrastructure/Repositories/BaseMongoRepository.ts @@ -39,7 +39,7 @@ abstract class BaseMongoRepository { - return this.repository.findOneAndUpdate({ _id: entity.getId() } as FilterQuery, { $set: entity } as UpdateQuery, { new: true }).populate(this.populate); + return this.repository.findOneAndUpdate({ _id: entity.getId() } as FilterQuery, { $set: entity } as UpdateQuery, { new: true }).populate(this.populate as string | string[]) as any; } async delete(id: string): Promise @@ -58,7 +58,7 @@ abstract class BaseMongoRepository).populate(populate).exec(); + const entity = await this.repository.findOne(condition as FilterQuery).populate(populate as string | string[]).exec(); if (initThrow && !entity) { @@ -75,7 +75,7 @@ abstract class BaseMongoRepository).populate(populate).exec(); + const entities = await this.repository.find(condition as FilterQuery).populate(populate as string | string[]).exec(); if (initThrow && entities.length === 0) { diff --git a/src/App/InterfaceAdapters/IKind.ts b/src/App/InterfaceAdapters/IKind.ts deleted file mode 100644 index 0fffdb42..00000000 --- a/src/App/InterfaceAdapters/IKind.ts +++ /dev/null @@ -1,6 +0,0 @@ -interface IKind -{ - king: string; -} - -export default IKind; diff --git a/src/App/Presentation/Middlewares/Express/LoggerMiddleware.ts b/src/App/Presentation/Middlewares/Express/LoggerMiddleware.ts new file mode 100644 index 00000000..6ec44390 --- /dev/null +++ b/src/App/Presentation/Middlewares/Express/LoggerMiddleware.ts @@ -0,0 +1,9 @@ +import Logger from '../../../../Shared/Logger/Logger'; + +const LoggerMiddleware = (req: any, res: any, next: any) => +{ + Logger.debug(`${req.method}: ${req.path} - ${req.ip}`); + next(); +}; + +export default LoggerMiddleware; diff --git a/src/App/Presentation/Middlewares/Koa/LoggerMiddleware.ts b/src/App/Presentation/Middlewares/Koa/LoggerMiddleware.ts new file mode 100644 index 00000000..5408a519 --- /dev/null +++ b/src/App/Presentation/Middlewares/Koa/LoggerMiddleware.ts @@ -0,0 +1,10 @@ +import { ParameterizedContext, Next } from 'koa'; +import Logger from '../../../../Shared/Logger/Logger'; + +const LoggerMiddleware = async(ctx: ParameterizedContext, next: Next) => +{ + Logger.debug(`${ctx.status} ${ctx.method}: ${ctx.path} - ${ctx.ip}`); + await next(); +}; + +export default LoggerMiddleware; diff --git a/src/App/Presentation/Middlewares/Koa/RedirectRouteNotFoundMiddleware.ts b/src/App/Presentation/Middlewares/Koa/RedirectRouteNotFoundMiddleware.ts index e14328b8..2caa6921 100644 --- a/src/App/Presentation/Middlewares/Koa/RedirectRouteNotFoundMiddleware.ts +++ b/src/App/Presentation/Middlewares/Koa/RedirectRouteNotFoundMiddleware.ts @@ -1,14 +1,12 @@ import Responder from '../../Shared/Koa/Responder'; -import FormatError from '../../Shared/FormatError'; import { StatusCode } from '@digichanges/shared-experience'; import RouteNotFoundHttpException from '../../Exceptions/RouteNotFoundHttpException'; const RedirectRouteNotFoundMiddleware = (ctx: any) => { const responder = new Responder(); - const formatError = new FormatError(); - responder.error(formatError.getFormat(new RouteNotFoundHttpException()), ctx, StatusCode.HTTP_NOT_FOUND); + responder.error(new RouteNotFoundHttpException(), ctx, StatusCode.HTTP_NOT_FOUND); }; export default RedirectRouteNotFoundMiddleware; diff --git a/src/App/Presentation/Requests/IdRequest.ts b/src/App/Presentation/Requests/IdRequest.ts index 2b75ce75..b4ab3bd9 100644 --- a/src/App/Presentation/Requests/IdRequest.ts +++ b/src/App/Presentation/Requests/IdRequest.ts @@ -4,17 +4,17 @@ import { decorate } from 'ts-mixer'; class IdRequest implements IdPayload { - @decorate(IsUUID('4')) - id: string; + protected _id: string; constructor({ id }: { id: string }) { - this.id = id; + this._id = id; } - getId(): string + @decorate(IsUUID('4')) + get id(): string { - return this.id; + return this._id; } } diff --git a/src/App/Presentation/Shared/Express/AppExpress.ts b/src/App/Presentation/Shared/Express/AppExpress.ts index dd7c0dc7..03f87a42 100644 --- a/src/App/Presentation/Shared/Express/AppExpress.ts +++ b/src/App/Presentation/Shared/Express/AppExpress.ts @@ -1,12 +1,9 @@ -import 'reflect-metadata'; import express from 'express'; import { InversifyExpressServer } from 'inversify-express-utils'; import compression from 'compression'; import cors from 'cors'; import helmet from 'helmet'; import exphbs from 'express-handlebars'; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const pinoExpress = require('pino-express'); import '../../Handlers/Express/IndexHandler'; import '../../../../Item/Presentation/Handlers/Express/ItemHandler'; @@ -30,6 +27,7 @@ import Logger from '../../../../Shared/Logger/Logger'; import MainConfig from '../../../../Config/mainConfig'; import { RequestContext } from '@mikro-orm/core'; import { orm } from '../../../../Shared/Database/MikroORMCreateConnection'; +import LoggerMiddleware from '../../Middlewares/Express/LoggerMiddleware'; class AppExpress implements IApp { @@ -79,7 +77,7 @@ class AppExpress implements IApp }); } - app.use(pinoExpress(Logger)); + app.use(LoggerMiddleware); app.use('/api/', Throttle); app.use(AuthenticationMiddleware); app.use(VerifyTokenMiddleware); diff --git a/src/App/Presentation/Shared/Express/ErrorHandler.ts b/src/App/Presentation/Shared/Express/ErrorHandler.ts index b9976234..428048f5 100644 --- a/src/App/Presentation/Shared/Express/ErrorHandler.ts +++ b/src/App/Presentation/Shared/Express/ErrorHandler.ts @@ -15,7 +15,7 @@ export class ErrorHandler if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { - Logger.debug(err.stack); + Logger.trace(err.stack); } responder.error(formatError.getFormat(exception), req, res, exception.statusCode, exception.metadata); diff --git a/src/App/Presentation/Shared/Express/Responder.ts b/src/App/Presentation/Shared/Express/Responder.ts index d30652ff..18fae70f 100644 --- a/src/App/Presentation/Shared/Express/Responder.ts +++ b/src/App/Presentation/Shared/Express/Responder.ts @@ -7,7 +7,7 @@ import { Transformer } from '@digichanges/shared-experience'; import { TYPES } from '../../../../Config/Injects/types'; -import IFileDTO from '../../../../File/Domain/Payloads/IFileDTO'; +import IFileDTO from '../../../../File/Domain/Models/IFileDTO'; import IFormatResponder from '../../../../Shared/InterfaceAdapters/IFormatResponder'; @injectable() @@ -34,7 +34,7 @@ class Responder data = await transformer.handle(data); - response.status(status.code).send(this.formatResponder.getFormatData(data, status, metadata)); + response.status(status.code).send(this.formatResponder.getFormatData(data, metadata)); } // TODO: Refactor to encapsulate this logic @@ -42,7 +42,7 @@ class Responder { const data = await paginator.paginate(); const metadata = paginator.getMetadata(); - const result = this.formatResponder.getFormatData(data, status, metadata); + const result = this.formatResponder.getFormatData(data, metadata); if (!transformer) { diff --git a/src/App/Presentation/Shared/FormatError.ts b/src/App/Presentation/Shared/FormatError.ts index c566b361..2f7514c0 100644 --- a/src/App/Presentation/Shared/FormatError.ts +++ b/src/App/Presentation/Shared/FormatError.ts @@ -20,9 +20,6 @@ class FormatError } return { - status: statusCode.status, - code: statusCode.code, - statusCode: statusCode.statusCode, message: statusCode.code === StatusCode.HTTP_INTERNAL_SERVER_ERROR.code ? 'Internal Error Server' : message, errorCode, errors: _.isEmpty(validationModels) ? null : validationModels, diff --git a/src/App/Presentation/Shared/FormatResponder.ts b/src/App/Presentation/Shared/FormatResponder.ts index a5f80fbf..ea5785f6 100644 --- a/src/App/Presentation/Shared/FormatResponder.ts +++ b/src/App/Presentation/Shared/FormatResponder.ts @@ -1,16 +1,12 @@ import { injectable } from 'inversify'; -import { IStatusCode } from '@digichanges/shared-experience'; import IFormatResponder from '../../../Shared/InterfaceAdapters/IFormatResponder'; @injectable() class FormatResponder implements IFormatResponder { - getFormatData = (data: any, statusCode: IStatusCode, metadata: Record = null): any => + getFormatData = (data: unknown, metadata: Record = null): any => { return { - status: statusCode.status, - code: statusCode.code, - statusCode: statusCode.statusCode, data, metadata: metadata ?? undefined }; diff --git a/src/App/Presentation/Shared/Koa/AppKoa.ts b/src/App/Presentation/Shared/Koa/AppKoa.ts index 9dc22c4a..37b8b57b 100644 --- a/src/App/Presentation/Shared/Koa/AppKoa.ts +++ b/src/App/Presentation/Shared/Koa/AppKoa.ts @@ -1,7 +1,6 @@ import cors from 'koa-cors'; import helmet from 'koa-helmet'; import hbshbs from 'koa-hbs'; -import koaPino from 'koa-pino-logger'; import AuthenticationMiddleware from '../../../../Auth/Presentation/Middlewares/Koa/AuthenticationMiddleware'; import RedirectRouteNotFoundMiddleware from '../../Middlewares/Koa/RedirectRouteNotFoundMiddleware'; @@ -21,10 +20,11 @@ import AuthHandler from '../../../../Auth/Presentation/Handlers/Koa/AuthHandler' import IAppConfig from '../../../InterfaceAdapters/IAppConfig'; import WhiteListHandler from '../../../Tests/Koa/WhiteListHandler'; import { ErrorHandler } from './ErrorHandler'; -import Logger from '../../../../Shared/Logger/Logger'; import MainConfig from '../../../../Config/mainConfig'; import { RequestContext } from '@mikro-orm/core'; import { orm } from '../../../../Shared/Database/MikroORMCreateConnection'; +import LoggerMiddleware from '../../Middlewares/Koa/LoggerMiddleware'; +import Logger from '../../../../Shared/Logger/Logger'; class AppKoa implements IApp { @@ -65,8 +65,7 @@ class AppKoa implements IApp this.app.use((ctx, next) => RequestContext.createAsync(orm.em, next)); } - this.app.use(koaPino({ logger: Logger })); - + this.app.use(LoggerMiddleware); this.app.use(Throttle); this.app.use(AuthenticationMiddleware); this.app.use(VerifyTokenMiddleware); @@ -106,7 +105,7 @@ class AppKoa implements IApp { return this.app.listen(this.port, () => { - Logger.debug(`Koa is listening to http://localhost:${this.port}`); + Logger.info(`Koa is listening to http://localhost:${this.port}`); }); } diff --git a/src/App/Presentation/Shared/Koa/ErrorHandler.ts b/src/App/Presentation/Shared/Koa/ErrorHandler.ts index 079963c6..238a2565 100644 --- a/src/App/Presentation/Shared/Koa/ErrorHandler.ts +++ b/src/App/Presentation/Shared/Koa/ErrorHandler.ts @@ -19,7 +19,7 @@ export class ErrorHandler if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { - Logger.debug(err.stack); + Logger.trace(err.stack); } responder.error(exception, ctx, exception.statusCode); diff --git a/src/App/Presentation/Shared/Koa/Responder.ts b/src/App/Presentation/Shared/Koa/Responder.ts index cc5e0ea9..e1554d04 100644 --- a/src/App/Presentation/Shared/Koa/Responder.ts +++ b/src/App/Presentation/Shared/Koa/Responder.ts @@ -1,8 +1,8 @@ -import Koa from 'koa'; +import { ParameterizedContext, Context } from 'koa'; import { IHttpStatusCode, IPaginator, PaginatorTransformer, Transformer } from '@digichanges/shared-experience'; import IFormatResponder from '../../../../Shared/InterfaceAdapters/IFormatResponder'; -import IFileDTO from '../../../../File/Domain/Payloads/IFileDTO'; +import IFileDTO from '../../../../File/Domain/Models/IFileDTO'; import FormatResponder from '../FormatResponder'; import FormatError from '../FormatError'; import ErrorHttpException from '../ErrorHttpException'; @@ -18,7 +18,7 @@ class Responder this.formatError = new FormatError(); } - public async send(data: any, ctx: Koa.ParameterizedContext, status: IHttpStatusCode, transformer: Transformer = null) + public async send(data: any, ctx: ParameterizedContext, status: IHttpStatusCode, transformer: Transformer = null) { if (!transformer) { @@ -31,14 +31,14 @@ class Responder data = await transformer.handle(data); ctx.status = status.code; - return ctx.body = this.formatResponder.getFormatData(data, status, null); + return ctx.body = this.formatResponder.getFormatData(data, null); } - public async paginate(paginator: IPaginator, ctx: Koa.ParameterizedContext, status: IHttpStatusCode, transformer: Transformer = null) + public async paginate(paginator: IPaginator, ctx: ParameterizedContext, status: IHttpStatusCode, transformer: Transformer = null) { const data = await paginator.paginate(); const metadata = paginator.getMetadata(); - const result = this.formatResponder.getFormatData(data, status, metadata); + const result = this.formatResponder.getFormatData(data, metadata); if (!transformer) { @@ -65,7 +65,7 @@ class Responder return ctx.body = result; } - public sendStream(fileDto: IFileDTO, ctx: Koa.Context & any, status: IHttpStatusCode) + public sendStream(fileDto: IFileDTO, ctx: Context & any, status: IHttpStatusCode) { ctx.status = status.code; ctx.response.set('Content-Type', fileDto.metadata.mimeType); @@ -73,7 +73,7 @@ class Responder return ctx.body = fileDto.stream; } - public error(error: ErrorHttpException, ctx: Koa.ParameterizedContext, status: IHttpStatusCode) + public error(error: ErrorHttpException, ctx: ParameterizedContext, status: IHttpStatusCode) { ctx.status = status.code; return ctx.body = this.formatError.getFormat(error); diff --git a/src/Auth/InterfaceAdapters/ITokenDomain.ts b/src/Auth/Domain/Entities/ITokenDomain.ts similarity index 69% rename from src/Auth/InterfaceAdapters/ITokenDomain.ts rename to src/Auth/Domain/Entities/ITokenDomain.ts index af20d563..3152871f 100644 --- a/src/Auth/InterfaceAdapters/ITokenDomain.ts +++ b/src/Auth/Domain/Entities/ITokenDomain.ts @@ -1,4 +1,4 @@ -import IBaseDomain from '../../App/InterfaceAdapters/IBaseDomain'; +import IBaseDomain from '../../../App/InterfaceAdapters/IBaseDomain'; interface ITokenDomain extends IBaseDomain { diff --git a/src/Auth/Domain/Entities/Token.ts b/src/Auth/Domain/Entities/Token.ts index a912bc02..c0913ae1 100644 --- a/src/Auth/Domain/Entities/Token.ts +++ b/src/Auth/Domain/Entities/Token.ts @@ -1,4 +1,4 @@ -import ITokenDomain from '../../InterfaceAdapters/ITokenDomain'; +import ITokenDomain from './ITokenDomain'; import Base from '../../../App/Domain/Entities/Base'; class Token extends Base implements ITokenDomain diff --git a/src/Auth/InterfaceAdapters/IToken.ts b/src/Auth/Domain/Models/IToken.ts similarity index 71% rename from src/Auth/InterfaceAdapters/IToken.ts rename to src/Auth/Domain/Models/IToken.ts index 0508e654..e091cb7b 100644 --- a/src/Auth/InterfaceAdapters/IToken.ts +++ b/src/Auth/Domain/Models/IToken.ts @@ -1,4 +1,4 @@ -import IUserDomain from '../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; interface IToken { diff --git a/src/Auth/Shared/JWTToken.ts b/src/Auth/Domain/Models/JWTToken.ts similarity index 87% rename from src/Auth/Shared/JWTToken.ts rename to src/Auth/Domain/Models/JWTToken.ts index 64c535c2..47bd2582 100644 --- a/src/Auth/Shared/JWTToken.ts +++ b/src/Auth/Domain/Models/JWTToken.ts @@ -1,9 +1,9 @@ import moment from 'moment'; import jwt from 'jwt-simple'; -import IToken from '../InterfaceAdapters/IToken'; -import MainConfig from '../../Config/mainConfig'; -import IUserDomain from '../../User/InterfaceAdapters/IUserDomain'; -import ITokenDecode from '../../Shared/InterfaceAdapters/ITokenDecode'; +import IToken from './IToken'; +import MainConfig from '../../../Config/mainConfig'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import ITokenDecode from '../../../Shared/InterfaceAdapters/ITokenDecode'; class JWTToken implements IToken { diff --git a/src/Auth/InterfaceAdapters/Payloads/AuthPayload.ts b/src/Auth/Domain/Payloads/AuthPayload.ts similarity index 52% rename from src/Auth/InterfaceAdapters/Payloads/AuthPayload.ts rename to src/Auth/Domain/Payloads/AuthPayload.ts index 025d1972..e8438851 100644 --- a/src/Auth/InterfaceAdapters/Payloads/AuthPayload.ts +++ b/src/Auth/Domain/Payloads/AuthPayload.ts @@ -1,8 +1,8 @@ interface AuthPayload { - getEmail(): string; - getPassword(): string; + email: string; + password: string; } export default AuthPayload; diff --git a/src/Auth/Domain/Payloads/ChangeForgotPasswordPayload.ts b/src/Auth/Domain/Payloads/ChangeForgotPasswordPayload.ts new file mode 100644 index 00000000..d7c16487 --- /dev/null +++ b/src/Auth/Domain/Payloads/ChangeForgotPasswordPayload.ts @@ -0,0 +1,9 @@ + +interface ChangeForgotPasswordPayload +{ + confirmationToken: string; + password: string; + passwordConfirmation: string; +} + +export default ChangeForgotPasswordPayload; diff --git a/src/Auth/Domain/Payloads/ForgotPasswordPayload.ts b/src/Auth/Domain/Payloads/ForgotPasswordPayload.ts new file mode 100644 index 00000000..8a712626 --- /dev/null +++ b/src/Auth/Domain/Payloads/ForgotPasswordPayload.ts @@ -0,0 +1,9 @@ + +interface ForgotPasswordPayload +{ + email: string; + confirmationToken: string; + passwordRequestedAt: Date; +} + +export default ForgotPasswordPayload; diff --git a/src/Auth/InterfaceAdapters/Payloads/RefreshTokenPayload.ts b/src/Auth/Domain/Payloads/RefreshTokenPayload.ts similarity index 69% rename from src/Auth/InterfaceAdapters/Payloads/RefreshTokenPayload.ts rename to src/Auth/Domain/Payloads/RefreshTokenPayload.ts index 074fea5b..b72d9c3d 100644 --- a/src/Auth/InterfaceAdapters/Payloads/RefreshTokenPayload.ts +++ b/src/Auth/Domain/Payloads/RefreshTokenPayload.ts @@ -1,7 +1,7 @@ interface RefreshTokenPayload { - getRefreshToken(): string; + refreshToken: string; } export default RefreshTokenPayload; diff --git a/src/Auth/Domain/Payloads/RegisterPayload.ts b/src/Auth/Domain/Payloads/RegisterPayload.ts new file mode 100644 index 00000000..012436a4 --- /dev/null +++ b/src/Auth/Domain/Payloads/RegisterPayload.ts @@ -0,0 +1,5 @@ +import UserSavePayload from '../../../User/Domain/Payloads/UserSavePayload'; + +interface RegisterPayload extends UserSavePayload {} + +export default RegisterPayload; diff --git a/src/Auth/Domain/Payloads/UpdateMePayload.ts b/src/Auth/Domain/Payloads/UpdateMePayload.ts new file mode 100644 index 00000000..2701ccc0 --- /dev/null +++ b/src/Auth/Domain/Payloads/UpdateMePayload.ts @@ -0,0 +1,9 @@ +import UserRepPayload from '../../../User/Domain/Payloads/UserRepPayload'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; + +interface UpdateMePayload extends UserRepPayload +{ + authUser: IUserDomain; +} + +export default UpdateMePayload; diff --git a/src/Auth/InterfaceAdapters/Payloads/VerifyYourAccountPayload.ts b/src/Auth/Domain/Payloads/VerifyYourAccountPayload.ts similarity index 69% rename from src/Auth/InterfaceAdapters/Payloads/VerifyYourAccountPayload.ts rename to src/Auth/Domain/Payloads/VerifyYourAccountPayload.ts index 35e0ebda..573de488 100644 --- a/src/Auth/InterfaceAdapters/Payloads/VerifyYourAccountPayload.ts +++ b/src/Auth/Domain/Payloads/VerifyYourAccountPayload.ts @@ -1,7 +1,7 @@ interface VerifyYourAccountPayload { - getConfirmationToken(): string; + confirmationToken: string; } export default VerifyYourAccountPayload; diff --git a/src/Auth/Domain/Services/AuthService.ts b/src/Auth/Domain/Services/AuthService.ts index b7b826f9..27bae19b 100644 --- a/src/Auth/Domain/Services/AuthService.ts +++ b/src/Auth/Domain/Services/AuthService.ts @@ -1,12 +1,9 @@ -import jwt, { TAlgorithm } from 'jwt-simple'; -import _ from 'lodash'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; -import Permissions from '../../../Config/Permissions'; -import WrongPermissionsException from '../Exceptions/WrongPermissionsException'; +import jwt from 'jwt-simple'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; import ITokenDecode from '../../../Shared/InterfaceAdapters/ITokenDecode'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import TokenExpiredHttpException from '../../Presentation/Exceptions/TokenExpiredHttpException'; import TokenNotFoundHttpException from '../../Presentation/Exceptions/TokenNotFoundHttpException'; import Auth from '../Types/Auth'; @@ -23,8 +20,8 @@ class AuthService { const _token = bearer ? token.split(' ')[1] : token; - const secret: string = this.config.getConfig().jwt.secret; - const algorithm: TAlgorithm = this.config.getConfig().encryption.bcrypt.algorithm; + const { secret } = this.config.getConfig().jwt; + const { algorithm } = this.config.getConfig().encryption.bcrypt; return jwt.decode(_token, secret, false, algorithm); } @@ -39,14 +36,6 @@ class AuthService return [...new Set([...auth_user.permissions, ...rolePermissions])]; } - public validatePermissions(permissions: string[]): void - { - if (!_.isEmpty(permissions) && _.isEmpty(_.intersection(permissions, Permissions.permissions()))) - { - throw new WrongPermissionsException(); - } - } - public getByEmail(email: string): Promise { return this.userRepository.getOneByEmail(email); @@ -134,7 +123,7 @@ class AuthService }; let existMethodAndUrl = false; - const apiWhitelist: { methods: string[], url: string, urlRegExp?: RegExp}[] = this.config.getConfig().apiWhitelist; + const { apiWhitelist } = this.config.getConfig(); for (const conf of apiWhitelist) { diff --git a/src/Auth/Domain/Types/Auth.ts b/src/Auth/Domain/Types/Auth.ts index b4aad9e6..02796f9d 100644 --- a/src/Auth/Domain/Types/Auth.ts +++ b/src/Auth/Domain/Types/Auth.ts @@ -1,4 +1,4 @@ -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; import ITokenDecode from '../../../Shared/InterfaceAdapters/ITokenDecode'; declare type Auth = IUserDomain | ITokenDecode; diff --git a/src/Auth/Domain/UseCases/ChangeForgotPasswordUseCase.ts b/src/Auth/Domain/UseCases/ChangeForgotPasswordUseCase.ts index 1678db02..cded9fb5 100644 --- a/src/Auth/Domain/UseCases/ChangeForgotPasswordUseCase.ts +++ b/src/Auth/Domain/UseCases/ChangeForgotPasswordUseCase.ts @@ -1,5 +1,5 @@ -import ChangeForgotPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeForgotPasswordPayload'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import ChangeForgotPasswordPayload from '../Payloads/ChangeForgotPasswordPayload'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; @@ -16,18 +16,15 @@ class ChangeForgotPasswordUseCase async handle(payload: ChangeForgotPasswordPayload): Promise { const config = MainConfig.getInstance(); - const confirmationToken = payload.getConfirmationToken(); + const confirmationToken = payload.confirmationToken; const user = await this.repository.getOneByConfirmationToken(confirmationToken); user.confirmationToken = null; user.passwordRequestedAt = null; - const min = config.getConfig().validationSettings.password.minLength; - const max = config.getConfig().validationSettings.password.maxLength; + const { minLength, maxLength } = config.getConfig().validationSettings.password; - const password = new Password(payload.getPassword(), min, max); - await password.ready(); - user.password = password; + user.password = await (new Password(payload.password, minLength, maxLength)).ready(); await this.repository.update(user); diff --git a/src/Auth/Domain/UseCases/ForgotPasswordUseCase.ts b/src/Auth/Domain/UseCases/ForgotPasswordUseCase.ts index 579c9d44..7dcc4615 100644 --- a/src/Auth/Domain/UseCases/ForgotPasswordUseCase.ts +++ b/src/Auth/Domain/UseCases/ForgotPasswordUseCase.ts @@ -1,6 +1,6 @@ import MainConfig from '../../../Config/mainConfig'; -import ForgotPasswordPayload from '../../InterfaceAdapters/Payloads/ForgotPasswordPayload'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import ForgotPasswordPayload from '../Payloads/ForgotPasswordPayload'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import ForgotPasswordEvent from '../../../Shared/Events/ForgotPasswordEvent'; @@ -8,6 +8,8 @@ import SendEmailService from '../../../Notification/Domain/Services/SendEmailSer import TypeNotificationEnum from '../../../Notification/Domain/Enum/TypeNotificationEnum'; import Locales from '../../../App/Presentation/Shared/Locales'; import ILocaleMessage from '../../../App/InterfaceAdapters/ILocaleMessage'; +import { IEncryption } from '@digichanges/shared-experience'; +import EncryptionFactory from '../../../Shared/Factories/EncryptionFactory'; class ForgotPasswordUseCase { @@ -17,10 +19,15 @@ class ForgotPasswordUseCase async handle(payload: ForgotPasswordPayload): Promise { const config = MainConfig.getInstance(); - const user = await this.repository.getOneByEmail(payload.getEmail()); + const encryption: IEncryption = EncryptionFactory.create('md5'); - user.confirmationToken = String(await payload.getConfirmationToken()); - user.passwordRequestedAt = payload.getPasswordRequestedAt(); + const [user, confirmationToken] = await Promise.all([ + this.repository.getOneByEmail(payload.email), + encryption.encrypt(payload.confirmationToken) + ]); + + user.confirmationToken = confirmationToken; + user.passwordRequestedAt = payload.passwordRequestedAt; await this.repository.save(user); diff --git a/src/Auth/Domain/UseCases/GetTokenUseCase.ts b/src/Auth/Domain/UseCases/GetTokenUseCase.ts index f0a35929..afdab57e 100644 --- a/src/Auth/Domain/UseCases/GetTokenUseCase.ts +++ b/src/Auth/Domain/UseCases/GetTokenUseCase.ts @@ -2,7 +2,7 @@ import { ITokenRepository } from '@digichanges/shared-experience'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import ITokenDomain from '../../../Auth/InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../Entities/ITokenDomain'; class GetTokenUseCase { diff --git a/src/Auth/Domain/UseCases/LoginUseCase.ts b/src/Auth/Domain/UseCases/LoginUseCase.ts index cd6500b9..a9023740 100644 --- a/src/Auth/Domain/UseCases/LoginUseCase.ts +++ b/src/Auth/Domain/UseCases/LoginUseCase.ts @@ -1,5 +1,5 @@ -import AuthPayload from '../../InterfaceAdapters/Payloads/AuthPayload'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import AuthPayload from '../Payloads/AuthPayload'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import EncryptionFactory from '../../../Shared/Factories/EncryptionFactory'; import TokenFactory from '../../../Shared/Factories/TokenFactory'; @@ -9,7 +9,7 @@ import BadCredentialsException from '../Exceptions/BadCredentialsException'; import UserDisabledException from '../../../User/Domain/Exceptions/UserDisabledException'; import RoleDisabledException from '../../../Role/Domain/Exceptions/RoleDisabledException'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import IToken from '../../InterfaceAdapters/IToken'; +import IToken from '../Models/IToken'; import UnverifiedUserException from '../../../User/Domain/Exceptions/UnverifiedUserException'; class LoginUseCase @@ -23,8 +23,8 @@ class LoginUseCase async handle(payload: AuthPayload): Promise { - const email = payload.getEmail(); - const password = payload.getPassword(); + const email = payload.email; + const password = payload.password; const user = await this.repository.getOneByEmail(email); if (!user.verify) diff --git a/src/Auth/Domain/UseCases/LogoutUseCase.ts b/src/Auth/Domain/UseCases/LogoutUseCase.ts index 9bc57f83..c7e311d5 100644 --- a/src/Auth/Domain/UseCases/LogoutUseCase.ts +++ b/src/Auth/Domain/UseCases/LogoutUseCase.ts @@ -2,7 +2,7 @@ import ITokenDecode from '../../../Shared/InterfaceAdapters/ITokenDecode'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import { ITokenRepository } from '@digichanges/shared-experience'; -import ITokenDomain from '../../InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../Entities/ITokenDomain'; import SetTokenBlacklistUseCase from './SetTokenBlacklistUseCase'; import Locales from '../../../App/Presentation/Shared/Locales'; import ILocaleMessage from '../../../App/InterfaceAdapters/ILocaleMessage'; diff --git a/src/Auth/Domain/UseCases/PermissionUseCase.ts b/src/Auth/Domain/UseCases/PermissionUseCase.ts index e97b00d0..ac6444ae 100644 --- a/src/Auth/Domain/UseCases/PermissionUseCase.ts +++ b/src/Auth/Domain/UseCases/PermissionUseCase.ts @@ -1,5 +1,5 @@ import Permissions from '../../../Config/Permissions'; -import IGroupPermission from '../../InterfaceAdapters/IGroupPermission'; +import IGroupPermission from '../../../Config/IGroupPermission'; class PermissionUseCase { diff --git a/src/Auth/Domain/UseCases/RefreshTokenUseCase.ts b/src/Auth/Domain/UseCases/RefreshTokenUseCase.ts index 0fcd144e..e095bfaf 100644 --- a/src/Auth/Domain/UseCases/RefreshTokenUseCase.ts +++ b/src/Auth/Domain/UseCases/RefreshTokenUseCase.ts @@ -1,12 +1,12 @@ import { ITokenRepository } from '@digichanges/shared-experience'; -import RefreshTokenPayload from '../../InterfaceAdapters/Payloads/RefreshTokenPayload'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import RefreshTokenPayload from '../Payloads/RefreshTokenPayload'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import TokenFactory from '../../../Shared/Factories/TokenFactory'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import SetTokenBlacklistUseCase from './SetTokenBlacklistUseCase'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import ITokenDomain from '../../../Auth/InterfaceAdapters/ITokenDomain'; -import IToken from '../../InterfaceAdapters/IToken'; +import ITokenDomain from '../Entities/ITokenDomain'; +import IToken from '../Models/IToken'; import AuthService from '../Services/AuthService'; class RefreshTokenUseCase @@ -23,7 +23,7 @@ class RefreshTokenUseCase async handle(payload: RefreshTokenPayload): Promise { - const tokenDecode = this.authService.decodeToken(payload.getRefreshToken(), false); + const tokenDecode = this.authService.decodeToken(payload.refreshToken, false); const email = tokenDecode.email; const tokenId = tokenDecode.id; diff --git a/src/Auth/Domain/UseCases/RegisterUseCase.ts b/src/Auth/Domain/UseCases/RegisterUseCase.ts index 70c56999..0d5e908d 100644 --- a/src/Auth/Domain/UseCases/RegisterUseCase.ts +++ b/src/Auth/Domain/UseCases/RegisterUseCase.ts @@ -3,7 +3,7 @@ import SendEmailService from '../../../Notification/Domain/Services/SendEmailSer import RegisterEvent from '../../../Shared/Events/RegisterEvent'; import TypeNotificationEnum from '../../../Notification/Domain/Enum/TypeNotificationEnum'; import Locales from '../../../App/Presentation/Shared/Locales'; -import RegisterPayload from '../../InterfaceAdapters/Payloads/RegisterPayload'; +import RegisterPayload from '../Payloads/RegisterPayload'; import ILocaleMessage from '../../../App/InterfaceAdapters/ILocaleMessage'; import MainConfig from '../../../Config/mainConfig'; @@ -13,10 +13,10 @@ class RegisterUseCase async handle(payload: RegisterPayload): Promise { - const config = MainConfig.getInstance(); + const { urlWeb } = MainConfig.getInstance().getConfig().url; const user = await this.userService.create(payload); - const urlConfirmationToken = `${config.getConfig().url.urlWeb}verify-your-account/${user.confirmationToken}`; + const urlConfirmationToken = `${urlWeb}verify-your-account/${user.confirmationToken}`; void await SendEmailService.handle({ event: RegisterEvent.REGISTER_EVENT, diff --git a/src/Auth/Domain/UseCases/SetTokenBlacklistUseCase.ts b/src/Auth/Domain/UseCases/SetTokenBlacklistUseCase.ts index c6e39ca1..15b4d718 100644 --- a/src/Auth/Domain/UseCases/SetTokenBlacklistUseCase.ts +++ b/src/Auth/Domain/UseCases/SetTokenBlacklistUseCase.ts @@ -1,7 +1,7 @@ import { ITokenRepository } from '@digichanges/shared-experience'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; -import ITokenDomain from '../../../Auth/InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../Entities/ITokenDomain'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; class SetTokenBlacklistUseCase diff --git a/src/Auth/Domain/UseCases/SyncRolesPermissionUseCase.ts b/src/Auth/Domain/UseCases/SyncRolesPermissionUseCase.ts index db24b23c..8c09e88f 100644 --- a/src/Auth/Domain/UseCases/SyncRolesPermissionUseCase.ts +++ b/src/Auth/Domain/UseCases/SyncRolesPermissionUseCase.ts @@ -3,9 +3,9 @@ import _ from 'lodash'; import Permissions from '../../../Config/Permissions'; import Roles from '../../../Config/Roles'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; -import IRoleRepository from '../../../Role/InterfaceAdapters/IRoleRepository'; +import IRoleRepository from '../../../Role/Infrastructure/Repositories/IRoleRepository'; import Role from '../../../Role/Domain/Entities/Role'; -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; class SyncRolesPermissionUseCase @@ -33,14 +33,15 @@ class SyncRolesPermissionUseCase } else { - const newRole: IRoleDomain = new Role(); - - newRole.name = key; - newRole.slug = key.toLowerCase(); - newRole.permissions = permissions; - newRole.enable = true; - newRole.ofSystem = true; - + const payload = { + name: key, + slug: key.toLowerCase(), + permissions, + enable: true, + ofSystem: true + }; + + const newRole: IRoleDomain = new Role(payload); await this.repository.save(newRole); } }); diff --git a/src/Auth/Domain/UseCases/UpdateMeUseCase.ts b/src/Auth/Domain/UseCases/UpdateMeUseCase.ts index fb0be9e2..3deee557 100644 --- a/src/Auth/Domain/UseCases/UpdateMeUseCase.ts +++ b/src/Auth/Domain/UseCases/UpdateMeUseCase.ts @@ -1,14 +1,20 @@ -import UserRepPayload from '../../../User/InterfaceAdapters/Payloads/UserRepPayload'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; -import UserService from '../../../User/Domain/Services/UserService'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import UpdateMePayload from '../Payloads/UpdateMePayload'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; class UpdateMeUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; - async handle(payload: UserRepPayload, authUser: IUserDomain): Promise + async handle(payload: UpdateMePayload): Promise { - return await this.userService.persist(authUser, payload); + const authUser = payload.authUser; + authUser.updateRep(payload); + + return await this.repository.update(authUser); } } diff --git a/src/Auth/Domain/UseCases/VerifyTokenBlacklistUseCase.ts b/src/Auth/Domain/UseCases/VerifyTokenBlacklistUseCase.ts index a9f79048..034c1868 100644 --- a/src/Auth/Domain/UseCases/VerifyTokenBlacklistUseCase.ts +++ b/src/Auth/Domain/UseCases/VerifyTokenBlacklistUseCase.ts @@ -4,7 +4,7 @@ import TokenBlackListedHttpException from '../../Presentation/Exceptions/TokenBl import GetTokenUseCase from './GetTokenUseCase'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import ITokenDomain from '../../../Auth/InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../Entities/ITokenDomain'; class VerifyTokenBlacklistUseCase { diff --git a/src/Auth/Domain/UseCases/VerifyYourAccountUseCase.ts b/src/Auth/Domain/UseCases/VerifyYourAccountUseCase.ts index 09804c77..367562d8 100644 --- a/src/Auth/Domain/UseCases/VerifyYourAccountUseCase.ts +++ b/src/Auth/Domain/UseCases/VerifyYourAccountUseCase.ts @@ -1,7 +1,7 @@ -import VerifyYourAccountPayload from '../../InterfaceAdapters/Payloads/VerifyYourAccountPayload'; +import VerifyYourAccountPayload from '../Payloads/VerifyYourAccountPayload'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import SendEmailService from '../../../Notification/Domain/Services/SendEmailService'; import TypeNotificationEnum from '../../../Notification/Domain/Enum/TypeNotificationEnum'; import Locales from '../../../App/Presentation/Shared/Locales'; @@ -15,7 +15,7 @@ class VerifyYourAccountUseCase async handle(payload: VerifyYourAccountPayload): Promise { - const confirmationToken = payload.getConfirmationToken(); + const confirmationToken = payload.confirmationToken; const user = await this.repository.getOneByConfirmationToken(confirmationToken); diff --git a/src/Auth/Infrastructure/Repositories/TokenMikroSqlRepository.ts b/src/Auth/Infrastructure/Repositories/TokenMikroSqlRepository.ts index e113a950..0e813fbf 100644 --- a/src/Auth/Infrastructure/Repositories/TokenMikroSqlRepository.ts +++ b/src/Auth/Infrastructure/Repositories/TokenMikroSqlRepository.ts @@ -2,7 +2,7 @@ import { ITokenRepository } from '@digichanges/shared-experience'; import { injectable } from 'inversify'; import BaseMikroSqlRepository from '../../../App/Infrastructure/Repositories/BaseMikroSqlRepository'; import Token from '../../Domain/Entities/Token'; -import ITokenDomain from '../../InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../../Domain/Entities/ITokenDomain'; import TokenSchema from '../Schemas/TokenMikroORM'; @injectable() diff --git a/src/Auth/Infrastructure/Repositories/TokenMongoRepository.ts b/src/Auth/Infrastructure/Repositories/TokenMongoRepository.ts index 39f79bca..8e3545e1 100644 --- a/src/Auth/Infrastructure/Repositories/TokenMongoRepository.ts +++ b/src/Auth/Infrastructure/Repositories/TokenMongoRepository.ts @@ -3,8 +3,8 @@ import { injectable } from 'inversify'; import { ICriteria, IPaginator, ITokenRepository } from '@digichanges/shared-experience'; import MongoPaginator from '../../../App/Presentation/Shared/MongoPaginator'; -import ITokenDocument from '../../InterfaceAdapters/ITokenDocument'; -import ITokenDomain from '../../InterfaceAdapters/ITokenDomain'; +import ITokenDocument from '../Schemas/ITokenDocument'; +import ITokenDomain from '../../Domain/Entities/ITokenDomain'; import BaseMongoRepository from '../../../App/Infrastructure/Repositories/BaseMongoRepository'; import Token from '../../Domain/Entities/Token'; diff --git a/src/Auth/Infrastructure/Repositories/TokenRedisRepository.ts b/src/Auth/Infrastructure/Repositories/TokenRedisRepository.ts index f8ba2af6..444a1aec 100644 --- a/src/Auth/Infrastructure/Repositories/TokenRedisRepository.ts +++ b/src/Auth/Infrastructure/Repositories/TokenRedisRepository.ts @@ -2,7 +2,7 @@ import MainConfig from '../../../Config/mainConfig'; import { injectable } from 'inversify'; import { ICacheRepository, ITokenRepository } from '@digichanges/shared-experience'; -import ITokenDomain from '../../InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../../Domain/Entities/ITokenDomain'; import NotFoundException from '../../../Shared/Exceptions/NotFoundException'; import CacheFactory from '../../../Shared/Factories/CacheFactory'; diff --git a/src/Auth/Infrastructure/Repositories/TokenSqlRepository.ts b/src/Auth/Infrastructure/Repositories/TokenSqlRepository.ts index 2a392a2a..1dc8c898 100644 --- a/src/Auth/Infrastructure/Repositories/TokenSqlRepository.ts +++ b/src/Auth/Infrastructure/Repositories/TokenSqlRepository.ts @@ -2,7 +2,7 @@ import { ITokenRepository } from '@digichanges/shared-experience'; import { injectable } from 'inversify'; import BaseSqlRepository from '../../../App/Infrastructure/Repositories/BaseSqlRepository'; import Token from '../../Domain/Entities/Token'; -import ITokenDomain from '../../InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../../Domain/Entities/ITokenDomain'; import TokenSchema from '../Schemas/TokenTypeORM'; @injectable() diff --git a/src/Auth/InterfaceAdapters/ITokenDocument.ts b/src/Auth/Infrastructure/Schemas/ITokenDocument.ts similarity index 67% rename from src/Auth/InterfaceAdapters/ITokenDocument.ts rename to src/Auth/Infrastructure/Schemas/ITokenDocument.ts index bb00de0a..53eb5f9f 100644 --- a/src/Auth/InterfaceAdapters/ITokenDocument.ts +++ b/src/Auth/Infrastructure/Schemas/ITokenDocument.ts @@ -1,5 +1,5 @@ import { Document } from 'mongoose'; -import ITokenDomain from './ITokenDomain'; +import ITokenDomain from '../../Domain/Entities/ITokenDomain'; interface ITokenDocument extends Document, ITokenDomain {} diff --git a/src/Auth/InterfaceAdapters/Payloads/ChangeForgotPasswordPayload.ts b/src/Auth/InterfaceAdapters/Payloads/ChangeForgotPasswordPayload.ts deleted file mode 100644 index 9a8903b6..00000000 --- a/src/Auth/InterfaceAdapters/Payloads/ChangeForgotPasswordPayload.ts +++ /dev/null @@ -1,9 +0,0 @@ - -interface ChangeForgotPasswordPayload -{ - getConfirmationToken(): string; - getPassword(): string; - getPasswordConfirmation(): string; -} - -export default ChangeForgotPasswordPayload; diff --git a/src/Auth/InterfaceAdapters/Payloads/ForgotPasswordPayload.ts b/src/Auth/InterfaceAdapters/Payloads/ForgotPasswordPayload.ts deleted file mode 100644 index 95aa9689..00000000 --- a/src/Auth/InterfaceAdapters/Payloads/ForgotPasswordPayload.ts +++ /dev/null @@ -1,9 +0,0 @@ - -interface ForgotPasswordPayload -{ - getEmail(): string; - getConfirmationToken(): Promise; - getPasswordRequestedAt(): Date; -} - -export default ForgotPasswordPayload; diff --git a/src/Auth/InterfaceAdapters/Payloads/RegisterPayload.ts b/src/Auth/InterfaceAdapters/Payloads/RegisterPayload.ts deleted file mode 100644 index 5c82c49b..00000000 --- a/src/Auth/InterfaceAdapters/Payloads/RegisterPayload.ts +++ /dev/null @@ -1,6 +0,0 @@ -import UserPasswordRepPayload from '../../../User/InterfaceAdapters/Payloads/UserPasswordPayload'; -import UserRepPayload from '../../../User/InterfaceAdapters/Payloads/UserRepPayload'; - -interface RegisterPayload extends UserPasswordRepPayload, UserRepPayload {} - -export default RegisterPayload; diff --git a/src/Auth/Presentation/Controllers/AuthController.ts b/src/Auth/Presentation/Controllers/AuthController.ts index 556bf873..053cc002 100644 --- a/src/Auth/Presentation/Controllers/AuthController.ts +++ b/src/Auth/Presentation/Controllers/AuthController.ts @@ -6,22 +6,22 @@ import PermissionUseCase from '../../Domain/UseCases/PermissionUseCase'; import SyncRolesPermissionUseCase from '../../Domain/UseCases/SyncRolesPermissionUseCase'; import ValidatorRequest from '../../../App/Presentation/Shared/ValidatorRequest'; -import ChangeForgotPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeForgotPasswordPayload'; -import AuthPayload from '../../InterfaceAdapters/Payloads/AuthPayload'; -import RefreshTokenPayload from '../../InterfaceAdapters/Payloads/RefreshTokenPayload'; -import ForgotPasswordPayload from '../../InterfaceAdapters/Payloads/ForgotPasswordPayload'; +import ChangeForgotPasswordPayload from '../../Domain/Payloads/ChangeForgotPasswordPayload'; +import AuthPayload from '../../Domain/Payloads/AuthPayload'; +import RefreshTokenPayload from '../../Domain/Payloads/RefreshTokenPayload'; +import ForgotPasswordPayload from '../../Domain/Payloads/ForgotPasswordPayload'; import LogoutUseCase from '../../Domain/UseCases/LogoutUseCase'; import ITokenDecode from '../../../Shared/InterfaceAdapters/ITokenDecode'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; -import RegisterPayload from '../../InterfaceAdapters/Payloads/RegisterPayload'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import RegisterPayload from '../../Domain/Payloads/RegisterPayload'; import RegisterUseCase from '../../Domain/UseCases/RegisterUseCase'; import UpdateMeUseCase from '../../Domain/UseCases/UpdateMeUseCase'; -import UserRepPayload from '../../../User/InterfaceAdapters/Payloads/UserRepPayload'; -import VerifyYourAccountPayload from '../../InterfaceAdapters/Payloads/VerifyYourAccountPayload'; +import VerifyYourAccountPayload from '../../Domain/Payloads/VerifyYourAccountPayload'; import VerifyYourAccountUseCase from '../../Domain/UseCases/VerifyYourAccountUseCase'; -import IToken from '../../InterfaceAdapters/IToken'; +import IToken from '../../Domain/Models/IToken'; import ILocaleMessage from '../../../App/InterfaceAdapters/ILocaleMessage'; -import IGroupPermission from '../../InterfaceAdapters/IGroupPermission'; +import IGroupPermission from '../../../Config/IGroupPermission'; +import UpdateMePayload from '../../Domain/Payloads/UpdateMePayload'; class AuthController { @@ -41,12 +41,12 @@ class AuthController return await useCase.handle(request); } - public async updateMe(request: UserRepPayload, authUser: IUserDomain): Promise + public async updateMe(request: UpdateMePayload): Promise { await ValidatorRequest.handle(request); const useCase = new UpdateMeUseCase(); - return await useCase.handle(request, authUser); + return await useCase.handle(request); } public async logout(tokenDecode: ITokenDecode): Promise diff --git a/src/Auth/Presentation/Handlers/Express/AuthHandler.ts b/src/Auth/Presentation/Handlers/Express/AuthHandler.ts index b9732f77..0bfe7f12 100644 --- a/src/Auth/Presentation/Handlers/Express/AuthHandler.ts +++ b/src/Auth/Presentation/Handlers/Express/AuthHandler.ts @@ -49,8 +49,8 @@ class AuthHandler @httpPut('/me') public async updateMe(@request() req: Request, @response() res: Response): Promise { - const _request = new UpdateMeRequest(req.body); - const payload = await this.controller.updateMe(_request, AuthUser(req)); + const _request = new UpdateMeRequest(req.body, AuthUser(req)); + const payload = await this.controller.updateMe(_request); void await this.responder.send(payload, req, res, StatusCode.HTTP_OK, new UserTransformer()); } diff --git a/src/Auth/Presentation/Handlers/Koa/AuthHandler.ts b/src/Auth/Presentation/Handlers/Koa/AuthHandler.ts index b5eaef91..0328efc6 100644 --- a/src/Auth/Presentation/Handlers/Koa/AuthHandler.ts +++ b/src/Auth/Presentation/Handlers/Koa/AuthHandler.ts @@ -36,9 +36,9 @@ AuthHandler.get('/me', async(ctx: Koa.ParameterizedContext & any) => AuthHandler.put('/me', async(ctx: Koa.ParameterizedContext & any) => { - const _request = new UpdateMeRequest(ctx.request.body); + const _request = new UpdateMeRequest(ctx.request.body, AuthUser(ctx)); - const payload = await controller.updateMe(_request, AuthUser(ctx)); + const payload = await controller.updateMe(_request); void await responder.send(payload, ctx, StatusCode.HTTP_CREATED, new UserTransformer()); }); diff --git a/src/Auth/Presentation/Middlewares/Express/AuthorizeMiddleware.ts b/src/Auth/Presentation/Middlewares/Express/AuthorizeMiddleware.ts index f057345e..04393a29 100644 --- a/src/Auth/Presentation/Middlewares/Express/AuthorizeMiddleware.ts +++ b/src/Auth/Presentation/Middlewares/Express/AuthorizeMiddleware.ts @@ -1,7 +1,7 @@ import { NextFunction, Response } from 'express'; import MainConfig from '../../../../Config/mainConfig'; -import IUserDomain from '../../../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../../User/Domain/Entities/IUserDomain'; import ForbiddenHttpException from '../../Exceptions/ForbiddenHttpException'; import AuthService from '../../../Domain/Services/AuthService'; @@ -12,9 +12,9 @@ const AuthorizeMiddleware = (...handlerPermissions: string[]) => try { const authService = new AuthService(); - const config = MainConfig.getInstance(); + const { authorization } = MainConfig.getInstance().getConfig().auth; - let isAllowed: boolean = config.getConfig().auth.authorization !== true; + let isAllowed: boolean = authorization !== true; const authUser = req.authUser as IUserDomain; const authorize = await authService.authorize(authUser, handlerPermissions); diff --git a/src/Auth/Presentation/Middlewares/Koa/AuthorizeMiddleware.ts b/src/Auth/Presentation/Middlewares/Koa/AuthorizeMiddleware.ts index f02df6c4..fc7c7759 100644 --- a/src/Auth/Presentation/Middlewares/Koa/AuthorizeMiddleware.ts +++ b/src/Auth/Presentation/Middlewares/Koa/AuthorizeMiddleware.ts @@ -1,7 +1,7 @@ import Koa from 'koa'; import MainConfig from '../../../../Config/mainConfig'; -import IUserDomain from '../../../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../../User/Domain/Entities/IUserDomain'; import ForbiddenHttpException from '../../Exceptions/ForbiddenHttpException'; import AuthService from '../../../Domain/Services/AuthService'; diff --git a/src/Auth/Presentation/Requests/AuthRequest.ts b/src/Auth/Presentation/Requests/AuthRequest.ts index 61020cc8..059a58b8 100644 --- a/src/Auth/Presentation/Requests/AuthRequest.ts +++ b/src/Auth/Presentation/Requests/AuthRequest.ts @@ -1,31 +1,30 @@ -import AuthPayload from '../../InterfaceAdapters/Payloads/AuthPayload'; +import AuthPayload from '../../Domain/Payloads/AuthPayload'; import MainConfig from '../../../Config/mainConfig'; import { IsString, IsEmail, Length } from 'class-validator'; class AuthRequest implements AuthPayload { - @IsEmail() - email: string; - - @IsString() - @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, - MainConfig.getInstance().getConfig().validationSettings.password.maxLength) - password: string; + private readonly _email: string; + private readonly _password: string; constructor(data: Record) { - this.email = data.email; - this.password = data.password; + this._email = data.email; + this._password = data.password; } - getEmail(): string + @IsEmail() + get email(): string { - return this.email; + return this._email; } - getPassword(): string + @IsString() + @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, + MainConfig.getInstance().getConfig().validationSettings.password.maxLength) + get password(): string { - return this.password; + return this._password; } } diff --git a/src/Auth/Presentation/Requests/ChangeForgotPasswordRequest.ts b/src/Auth/Presentation/Requests/ChangeForgotPasswordRequest.ts index 2a22abcb..7f35e999 100644 --- a/src/Auth/Presentation/Requests/ChangeForgotPasswordRequest.ts +++ b/src/Auth/Presentation/Requests/ChangeForgotPasswordRequest.ts @@ -1,45 +1,43 @@ import MainConfig from '../../../Config/mainConfig'; import { IsString, Length } from 'class-validator'; -import ChangeForgotPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeForgotPasswordPayload'; +import ChangeForgotPasswordPayload from '../../Domain/Payloads/ChangeForgotPasswordPayload'; import { Match } from '../../../Shared/Decorators/match'; class ChangeForgotPasswordRequest implements ChangeForgotPasswordPayload { - @IsString() - @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, - MainConfig.getInstance().getConfig().validationSettings.password.maxLength) - password: string; - - @IsString() - @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, - MainConfig.getInstance().getConfig().validationSettings.password.maxLength) - @Match('password', { message: 'passwordConfirmation don\'t match' }) - passwordConfirmation: string; - - @IsString() - confirmationToken: string; + private readonly _password: string; + private readonly _passwordConfirmation: string; + private readonly _confirmationToken: string; constructor(data: Record) { - this.password = data.password; - this.passwordConfirmation = data.passwordConfirmation; - this.confirmationToken = data.confirmationToken; + this._password = data.password; + this._passwordConfirmation = data.passwordConfirmation; + this._confirmationToken = data.confirmationToken; } - getConfirmationToken(): string + @IsString() + @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, + MainConfig.getInstance().getConfig().validationSettings.password.maxLength) + get confirmationToken(): string { - return this.confirmationToken; + return this._confirmationToken; } - getPassword(): string + @IsString() + @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, + MainConfig.getInstance().getConfig().validationSettings.password.maxLength) + @Match('password', { message: 'passwordConfirmation don\'t match' }) + get password(): string { - return this.password; + return this._password; } - getPasswordConfirmation(): string + @IsString() + get passwordConfirmation(): string { - return this.passwordConfirmation; + return this._passwordConfirmation; } } diff --git a/src/Auth/Presentation/Requests/ForgotPasswordRequest.ts b/src/Auth/Presentation/Requests/ForgotPasswordRequest.ts index c8eab31b..99cad302 100644 --- a/src/Auth/Presentation/Requests/ForgotPasswordRequest.ts +++ b/src/Auth/Presentation/Requests/ForgotPasswordRequest.ts @@ -1,35 +1,29 @@ import { IsEmail } from 'class-validator'; -import { IEncryption } from '@digichanges/shared-experience'; -import ForgotPasswordPayload from '../../InterfaceAdapters/Payloads/ForgotPasswordPayload'; +import ForgotPasswordPayload from '../../Domain/Payloads/ForgotPasswordPayload'; import moment from 'moment'; -import EncryptionFactory from '../../../Shared/Factories/EncryptionFactory'; class ForgotPasswordRequest implements ForgotPasswordPayload { - @IsEmail() - email: string; + private readonly _email: string; constructor(data: Record) { - this.email = data.email; + this._email = data.email; } - getEmail(): string + @IsEmail() + get email(): string { - return this.email; + return this._email; } - async getConfirmationToken(): Promise + get confirmationToken(): string { - const encryption: IEncryption = EncryptionFactory.create('md5'); - - const stringToEncrypt = `${this.email}${moment().utc().unix()}`; - - return await encryption.encrypt(stringToEncrypt); + return `${this.email}${moment().utc().unix()}`; } - getPasswordRequestedAt(): Date + get passwordRequestedAt(): Date { return moment().toDate(); } diff --git a/src/Auth/Presentation/Requests/RefreshTokenRequest.ts b/src/Auth/Presentation/Requests/RefreshTokenRequest.ts index c2661278..cbeea57f 100644 --- a/src/Auth/Presentation/Requests/RefreshTokenRequest.ts +++ b/src/Auth/Presentation/Requests/RefreshTokenRequest.ts @@ -1,19 +1,19 @@ -import RefreshTokenPayload from '../../InterfaceAdapters/Payloads/RefreshTokenPayload'; +import RefreshTokenPayload from '../../Domain/Payloads/RefreshTokenPayload'; import { IsString } from 'class-validator'; class RefreshTokenRequest implements RefreshTokenPayload { - @IsString() - refreshToken: string; + private readonly _refreshToken: string; constructor(refreshToken: string) { - this.refreshToken = refreshToken; + this._refreshToken = refreshToken; } - getRefreshToken(): string + @IsString() + get refreshToken(): string { - return this.refreshToken; + return this._refreshToken; } } diff --git a/src/Auth/Presentation/Requests/RegisterRequest.ts b/src/Auth/Presentation/Requests/RegisterRequest.ts index 2595df27..bb6c3e21 100644 --- a/src/Auth/Presentation/Requests/RegisterRequest.ts +++ b/src/Auth/Presentation/Requests/RegisterRequest.ts @@ -1,25 +1,20 @@ import { Mixin } from 'ts-mixer'; -import UserRepPasswordRequest from '../../../User/Presentation/Requests/UserRepPasswordRequest'; -import RegisterPayload from '../../InterfaceAdapters/Payloads/RegisterPayload'; +import UserPasswordRequest from '../../../User/Presentation/Requests/UserPasswordRequest'; import UserWithoutPermissionsRequest from '../../../User/Presentation/Requests/UserWithoutPermissionsRequest'; import moment from 'moment'; -import EncryptionFactory from '../../../Shared/Factories/EncryptionFactory'; +import RegisterPayload from '../../Domain/Payloads/RegisterPayload'; -class RegisterRequest extends Mixin(UserWithoutPermissionsRequest, UserRepPasswordRequest) implements RegisterPayload +class RegisterRequest extends Mixin(UserWithoutPermissionsRequest, UserPasswordRequest) implements RegisterPayload { constructor(data: Record) { super(data); } - async getConfirmationToken(): Promise + get confirmationToken(): string { - const encryption = EncryptionFactory.create('md5'); - - const stringToEncrypt = `${this.email}${moment().utc().unix()}`; - - return await encryption.encrypt(stringToEncrypt); + return `${this.email}${moment().utc().unix()}`; } } diff --git a/src/Auth/Presentation/Requests/UpdateMeRequest.ts b/src/Auth/Presentation/Requests/UpdateMeRequest.ts index d3b2fb9f..e1d8d3d3 100644 --- a/src/Auth/Presentation/Requests/UpdateMeRequest.ts +++ b/src/Auth/Presentation/Requests/UpdateMeRequest.ts @@ -1,13 +1,22 @@ import { Mixin } from 'ts-mixer'; import UserWithoutPermissionsRequest from '../../../User/Presentation/Requests/UserWithoutPermissionsRequest'; -import UserRepPayload from '../../../User/InterfaceAdapters/Payloads/UserRepPayload'; +import UserRepPayload from '../../../User/Domain/Payloads/UserRepPayload'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; class UpdateMeRequest extends Mixin(UserWithoutPermissionsRequest) implements UserRepPayload { - constructor(data: Record) + private readonly _authUser: IUserDomain; + + constructor(data: Record, authUser: IUserDomain) { super(data); + this._authUser = authUser; + } + + get authUser() + { + return this._authUser; } } diff --git a/src/Auth/Presentation/Requests/VerifyYourAccountRequest.ts b/src/Auth/Presentation/Requests/VerifyYourAccountRequest.ts index 2157b61c..a5cedb3a 100644 --- a/src/Auth/Presentation/Requests/VerifyYourAccountRequest.ts +++ b/src/Auth/Presentation/Requests/VerifyYourAccountRequest.ts @@ -1,19 +1,19 @@ import { IsString } from 'class-validator'; -import VerifyYourAccountPayload from '../../InterfaceAdapters/Payloads/VerifyYourAccountPayload'; +import VerifyYourAccountPayload from '../../Domain/Payloads/VerifyYourAccountPayload'; class VerifyYourAccountRequest implements VerifyYourAccountPayload { - @IsString() - confirmationToken: string; + private readonly _confirmationToken: string; constructor(confirmationToken: string) { - this.confirmationToken = confirmationToken; + this._confirmationToken = confirmationToken; } - getConfirmationToken(): string + @IsString() + get confirmationToken(): string { - return this.confirmationToken; + return this._confirmationToken; } } diff --git a/src/Auth/Presentation/Transformers/AuthTransformer.ts b/src/Auth/Presentation/Transformers/AuthTransformer.ts index 6846ec96..6a7b5ee3 100644 --- a/src/Auth/Presentation/Transformers/AuthTransformer.ts +++ b/src/Auth/Presentation/Transformers/AuthTransformer.ts @@ -1,9 +1,9 @@ import moment from 'moment'; import { Transformer } from '@digichanges/shared-experience'; -import IToken from '../../InterfaceAdapters/IToken'; +import IToken from '../../Domain/Models/IToken'; import RoleUserTransformer from '../../../Role/Presentation/Transformers/RoleUserTransformer'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; import AuthService from '../../Domain/Services/AuthService'; class AuthTransformer extends Transformer diff --git a/src/Auth/Tests/keepAlive.handler.spec.ts b/src/Auth/Tests/keepAlive.handler.spec.ts index a7560fcd..973907de 100644 --- a/src/Auth/Tests/keepAlive.handler.spec.ts +++ b/src/Auth/Tests/keepAlive.handler.spec.ts @@ -49,11 +49,9 @@ describe('Start Keep Alive Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, metadata: { refreshToken } } } = response; + const { body: { metadata: { refreshToken } } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); token = refreshToken; }); diff --git a/src/Auth/Tests/login.handler.spec.ts b/src/Auth/Tests/login.handler.spec.ts index 4fcf1e44..88832f97 100644 --- a/src/Auth/Tests/login.handler.spec.ts +++ b/src/Auth/Tests/login.handler.spec.ts @@ -33,11 +33,9 @@ describe('Start Login Test', () => .set('Accept', 'application/json') .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.user.email).toStrictEqual('user@node.com'); expect(data.user.firstName).toStrictEqual('user'); @@ -55,11 +53,9 @@ describe('Start Login Test', () => .set('Accept', 'application/json') .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.user.email).toStrictEqual('superadmin@node.com'); expect(data.user.firstName).toStrictEqual('Super'); @@ -77,11 +73,9 @@ describe('Start Login Test', () => .set('Accept', 'application/json') .send(payload); - const { body: { status, statusCode, message } } = response; + const { body: { message } } = response; expect(response.statusCode).toStrictEqual(403); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_FORBIDDEN'); expect(message).toStrictEqual('Error credentials.'); }); @@ -98,11 +92,9 @@ describe('Start Login Test', () => .set('Accept', 'application/json') .send(payload); - const { body: { status, statusCode, message } } = response; + const { body: { message } } = response; expect(response.statusCode).toStrictEqual(403); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_FORBIDDEN'); expect(message).toStrictEqual('This user is not verified.'); }); @@ -119,11 +111,9 @@ describe('Start Login Test', () => .set('Accept', 'application/json') .send(payload); - const { body: { status, statusCode, message } } = response; + const { body: { message } } = response; expect(response.statusCode).toStrictEqual(403); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_FORBIDDEN'); expect(message).toStrictEqual('Your role is disable.'); }); diff --git a/src/Auth/Tests/permission.handler.spec.ts b/src/Auth/Tests/permission.handler.spec.ts index 336aa70c..0c000753 100644 --- a/src/Auth/Tests/permission.handler.spec.ts +++ b/src/Auth/Tests/permission.handler.spec.ts @@ -50,11 +50,9 @@ describe('Start Permission Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); const keepAlive = data.some(({ group, permissions }) => group === 'USERS' && permissions.some((permission) => permission === 'usersSave')); @@ -82,11 +80,9 @@ describe('Start Permission Test', () => .set('Accept', 'application/json') .send(); - const { body: { status, statusCode, message } } = response; + const { body: { message } } = response; expect(response.statusCode).toStrictEqual(403); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_FORBIDDEN'); expect(message).toStrictEqual('You must be authenticated.'); }); diff --git a/src/Auth/Tests/types.ts b/src/Auth/Tests/types.ts index 83d3df3f..802310c9 100644 --- a/src/Auth/Tests/types.ts +++ b/src/Auth/Tests/types.ts @@ -1,5 +1,5 @@ import { IBodyResponse } from '../../Shared/InterfaceAdapters/Tests/IBodyResponse'; -import IGroupPermission from '../InterfaceAdapters/IGroupPermission'; +import IGroupPermission from '../../Config/IGroupPermission'; import { IFetchResponse } from '../../Shared/InterfaceAdapters/Tests/IFetchResponse'; interface IPermissionsBody extends IBodyResponse diff --git a/src/Auth/InterfaceAdapters/IGroupPermission.ts b/src/Config/IGroupPermission.ts similarity index 100% rename from src/Auth/InterfaceAdapters/IGroupPermission.ts rename to src/Config/IGroupPermission.ts diff --git a/src/Config/Permissions.ts b/src/Config/Permissions.ts index 0c13dc83..e9f0c56f 100644 --- a/src/Config/Permissions.ts +++ b/src/Config/Permissions.ts @@ -1,4 +1,4 @@ -import IGroupPermission from '../Auth/InterfaceAdapters/IGroupPermission'; +import IGroupPermission from './IGroupPermission'; class Permissions { diff --git a/src/File/Domain/Payloads/FileDTO.ts b/src/File/Domain/Models/FileDTO.ts similarity index 100% rename from src/File/Domain/Payloads/FileDTO.ts rename to src/File/Domain/Models/FileDTO.ts diff --git a/src/File/Domain/Payloads/IFileDTO.ts b/src/File/Domain/Models/IFileDTO.ts similarity index 100% rename from src/File/Domain/Payloads/IFileDTO.ts rename to src/File/Domain/Models/IFileDTO.ts diff --git a/src/File/Domain/Payloads/CreateBucketPayload.ts b/src/File/Domain/Payloads/CreateBucketPayload.ts index 85375a22..7edfc787 100644 --- a/src/File/Domain/Payloads/CreateBucketPayload.ts +++ b/src/File/Domain/Payloads/CreateBucketPayload.ts @@ -1,10 +1,10 @@ interface CreateBucketPayload { - getName(): string; - getRegion(): string; - getPublicBucketPolicy(): string; - getPrivateBucketPolicy(): string; + name: string; + region: string; + publicBucketPolicy: string; + privateBucketPolicy: string; } export default CreateBucketPayload; diff --git a/src/File/Domain/Payloads/FileBase64RepPayload.ts b/src/File/Domain/Payloads/FileBase64RepPayload.ts index ec3f666d..022d15c0 100644 --- a/src/File/Domain/Payloads/FileBase64RepPayload.ts +++ b/src/File/Domain/Payloads/FileBase64RepPayload.ts @@ -3,7 +3,7 @@ import FileRepPayload from './FileRepPayload'; interface FileBase64RepPayload extends FileRepPayload, FileOptionsQueryPayload { - getBase64(): string, + base64: string, } export default FileBase64RepPayload; diff --git a/src/File/Domain/Payloads/FileMultipartRepPayload.ts b/src/File/Domain/Payloads/FileMultipartRepPayload.ts index 4431c3dc..f5166e62 100644 --- a/src/File/Domain/Payloads/FileMultipartRepPayload.ts +++ b/src/File/Domain/Payloads/FileMultipartRepPayload.ts @@ -3,7 +3,7 @@ import FileRepPayload from './FileRepPayload'; interface FileMultipartRepPayload extends FileRepPayload, FileOptionsQueryPayload { - getFile(): any; + file: any; // TODO: Add interface } export default FileMultipartRepPayload; diff --git a/src/File/Domain/Payloads/FileOptionsQueryPayload.ts b/src/File/Domain/Payloads/FileOptionsQueryPayload.ts index 15525016..6403b652 100644 --- a/src/File/Domain/Payloads/FileOptionsQueryPayload.ts +++ b/src/File/Domain/Payloads/FileOptionsQueryPayload.ts @@ -1,9 +1,9 @@ interface FileOptionsQueryPayload { - getIsOriginalName(): boolean; - getIsPublic(): boolean; - getIsOverwrite(): boolean; + isOriginalName: boolean; + isPublic: boolean; + isOverwrite: boolean; } export default FileOptionsQueryPayload; diff --git a/src/File/Domain/Payloads/FileRepPayload.ts b/src/File/Domain/Payloads/FileRepPayload.ts index 060428f8..e6f4fb62 100644 --- a/src/File/Domain/Payloads/FileRepPayload.ts +++ b/src/File/Domain/Payloads/FileRepPayload.ts @@ -1,12 +1,12 @@ interface FileRepPayload { - getOriginalName(): string; - getMimeType(): string; - getPath(): string; - getExtension(): string; - getSize(): number; - getIsPublic(): boolean; + originalName: string; + mimeType: string; + path: string; + extension: string; + size: number; + isPublic: boolean; } export default FileRepPayload; diff --git a/src/File/Domain/Payloads/ListObjectsPayload.ts b/src/File/Domain/Payloads/ListObjectsPayload.ts index 5fb81380..da979703 100644 --- a/src/File/Domain/Payloads/ListObjectsPayload.ts +++ b/src/File/Domain/Payloads/ListObjectsPayload.ts @@ -2,8 +2,8 @@ import FileOptionsQueryPayload from './FileOptionsQueryPayload'; interface ListObjectsPayload extends FileOptionsQueryPayload { - getRecursive(): boolean, - getPrefix(): string, + recursive: boolean, + prefix: string, } export default ListObjectsPayload; diff --git a/src/File/Domain/Payloads/PresignedFileRepPayload.ts b/src/File/Domain/Payloads/PresignedFileRepPayload.ts index 041329c2..20ae1ad4 100644 --- a/src/File/Domain/Payloads/PresignedFileRepPayload.ts +++ b/src/File/Domain/Payloads/PresignedFileRepPayload.ts @@ -2,8 +2,8 @@ import FileOptionsQueryPayload from './FileOptionsQueryPayload'; interface PresignedFileRepPayload extends FileOptionsQueryPayload { - getName(): string, - getExpiry(): number, + name: string, + expiry: number, } export default PresignedFileRepPayload; diff --git a/src/File/Domain/Services/FileService.ts b/src/File/Domain/Services/FileService.ts index 3c3cec4c..80fb5084 100644 --- a/src/File/Domain/Services/FileService.ts +++ b/src/File/Domain/Services/FileService.ts @@ -11,8 +11,8 @@ import FileMultipartRepPayload from '../Payloads/FileMultipartRepPayload'; import FileRepPayload from '../Payloads/FileRepPayload'; import CreateBucketPayload from '../Payloads/CreateBucketPayload'; import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import FileDTO from '../Payloads/FileDTO'; -import IFileDTO from '../Payloads/IFileDTO'; +import FileDTO from '../Models/FileDTO'; +import IFileDTO from '../Models/IFileDTO'; import { validate } from 'uuid'; class FileService @@ -24,9 +24,9 @@ class FileService async getPresignedGetObject(payload: PresignedFileRepPayload): Promise { - const filename = payload.getName(); - const expiry = payload.getExpiry(); - const isPublic = payload.getIsPublic(); + const filename = payload.name; + const expiry = payload.expiry; + const isPublic = payload.isPublic; let file: IFileDomain; if (validate(filename)) @@ -43,25 +43,25 @@ class FileService async persist(file: IFileDomain, payload: FileRepPayload): Promise { - file.extension = payload.getExtension(); - file.path = payload.getPath(); - file.mimeType = payload.getMimeType(); - file.size = payload.getSize(); - file.isPublic = payload.getIsPublic(); + file.extension = payload.extension; + file.path = payload.path; + file.mimeType = payload.mimeType; + file.size = payload.size; + file.isPublic = payload.isPublic; return await this.repository.save(file); } async uploadFileBase64(file: IFileDomain, payload: FileBase64RepPayload): Promise { - await this.fileSystem.uploadFileByBuffer(file, payload.getBase64()); + await this.fileSystem.uploadFileByBuffer(file, payload.base64); return file; } async uploadFileMultipart(file: IFileDomain, payload: FileMultipartRepPayload): Promise { - await this.fileSystem.uploadFile(file, payload.getFile().path); + await this.fileSystem.uploadFile(file, payload.file.path); return file; } @@ -83,13 +83,13 @@ class FileService async createBucket(payload: CreateBucketPayload): Promise { - const name = payload.getName(); + const name = payload.name; const bucketNamePrivate = `${name}.private`; const bucketNamePublic = `${name}.public`; - const region = payload.getRegion(); - const bucketPrivatePolicy = payload.getPrivateBucketPolicy(); - const bucketPublicPolicy = payload.getPublicBucketPolicy(); + const region = payload.region; + const bucketPrivatePolicy = payload.privateBucketPolicy; + const bucketPublicPolicy = payload.publicBucketPolicy; await this.fileSystem.createBucket(bucketNamePrivate, region); await this.fileSystem.setBucketPolicy(bucketPrivatePolicy, bucketNamePrivate); @@ -100,7 +100,7 @@ class FileService async download(payload: IdPayload): Promise { - const id = payload.getId(); + const id = payload.id; const file: IFileDomain = await this.getOne(id); const stream = await this.fileSystem.downloadStreamFile(file); diff --git a/src/File/Domain/UseCases/DownloadUseCase.ts b/src/File/Domain/UseCases/DownloadUseCase.ts index d96a9074..928465d5 100644 --- a/src/File/Domain/UseCases/DownloadUseCase.ts +++ b/src/File/Domain/UseCases/DownloadUseCase.ts @@ -1,4 +1,4 @@ -import IFileDTO from '../Payloads/IFileDTO'; +import IFileDTO from '../Models/IFileDTO'; import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; import FileService from '../Services/FileService'; diff --git a/src/File/Domain/UseCases/GetFileMetadataUseCase.ts b/src/File/Domain/UseCases/GetFileMetadataUseCase.ts index f9d46520..ceac3c12 100644 --- a/src/File/Domain/UseCases/GetFileMetadataUseCase.ts +++ b/src/File/Domain/UseCases/GetFileMetadataUseCase.ts @@ -8,7 +8,7 @@ class GetFileMetadataUserCase async handle(payload: IdPayload): Promise { - const id = payload.getId(); + const { id } = payload; return await this.fileService.getOne(id); } } diff --git a/src/File/Domain/UseCases/RemoveFileUseCase.ts b/src/File/Domain/UseCases/RemoveFileUseCase.ts index 27e3a2a4..890bc964 100644 --- a/src/File/Domain/UseCases/RemoveFileUseCase.ts +++ b/src/File/Domain/UseCases/RemoveFileUseCase.ts @@ -8,7 +8,7 @@ class RemoveFileUseCase async handle(payload: IdPayload): Promise { - const id = payload.getId(); + const { id } = payload; return this.fileService.removeFile(id); } } diff --git a/src/File/Domain/UseCases/UpdateFileBase64UseCase.ts b/src/File/Domain/UseCases/UpdateFileBase64UseCase.ts index 5e1b729e..bd8d14c4 100644 --- a/src/File/Domain/UseCases/UpdateFileBase64UseCase.ts +++ b/src/File/Domain/UseCases/UpdateFileBase64UseCase.ts @@ -8,7 +8,7 @@ class UpdateFileBase64UseCase async handle(payload: FileUpdateBase64Payload): Promise { - const id = payload.getId(); + const { id } = payload; let file: IFileDomain = await this.fileService.getOne(id); file = await this.fileService.persist(file, payload); return await this.fileService.uploadFileBase64(file, payload); diff --git a/src/File/Domain/UseCases/UpdateFileMultipartUseCase.ts b/src/File/Domain/UseCases/UpdateFileMultipartUseCase.ts index 92dfc0fe..c6a7e625 100644 --- a/src/File/Domain/UseCases/UpdateFileMultipartUseCase.ts +++ b/src/File/Domain/UseCases/UpdateFileMultipartUseCase.ts @@ -8,7 +8,7 @@ class UpdateFileMultipartUseCase async handle(payload: FileUpdateMultipartPayload): Promise { - const id = payload.getId(); + const { id } = payload; let file: IFileDomain = await this.fileService.getOne(id); file = await this.fileService.persist(file, payload); return await this.fileService.uploadFileMultipart(file, payload); diff --git a/src/File/Domain/UseCases/UploadBase64UseCase.ts b/src/File/Domain/UseCases/UploadBase64UseCase.ts index da6ec623..f76fd0a6 100644 --- a/src/File/Domain/UseCases/UploadBase64UseCase.ts +++ b/src/File/Domain/UseCases/UploadBase64UseCase.ts @@ -10,8 +10,8 @@ class UploadBase64UseCase async handle(payload: FileBase64RepPayload): Promise { const build = { - hasOriginalName: payload.getIsOriginalName(), - originalName: payload.getOriginalName() + hasOriginalName: payload.isOriginalName, + originalName: payload.originalName }; let file: IFileDomain = new File(build); diff --git a/src/File/Domain/UseCases/UploadMultipartUseCase.ts b/src/File/Domain/UseCases/UploadMultipartUseCase.ts index 83b70412..be9c5cfb 100644 --- a/src/File/Domain/UseCases/UploadMultipartUseCase.ts +++ b/src/File/Domain/UseCases/UploadMultipartUseCase.ts @@ -10,8 +10,8 @@ class UploadMultipartUseCase async handle(payload: FileMultipartRepPayload): Promise { const build = { - hasOriginalName: payload.getIsOriginalName(), - originalName: payload.getOriginalName() + hasOriginalName: payload.isOriginalName, + originalName: payload.originalName }; let file: IFileDomain = new File(build); diff --git a/src/File/Presentation/Controllers/FileController.ts b/src/File/Presentation/Controllers/FileController.ts index e655f2a7..ec72e319 100644 --- a/src/File/Presentation/Controllers/FileController.ts +++ b/src/File/Presentation/Controllers/FileController.ts @@ -19,7 +19,7 @@ import FileUpdateBase64Payload from '../../Domain/Payloads/FileUpdateBase64Paylo import FileUpdateMultipartPayload from '../../Domain/Payloads/FileUpdateMultipartPayload'; import RemoveFileUseCase from '../../Domain/UseCases/RemoveFileUseCase'; import IFileDomain from '../../Domain/Entities/IFileDomain'; -import IFileDTO from '../../Domain/Payloads/IFileDTO'; +import IFileDTO from '../../Domain/Models/IFileDTO'; class FileController { diff --git a/src/File/Presentation/Requests/CreateBucketCommandRepRequest.ts b/src/File/Presentation/Requests/CreateBucketCommandRepRequest.ts index ef53236e..c53cb873 100644 --- a/src/File/Presentation/Requests/CreateBucketCommandRepRequest.ts +++ b/src/File/Presentation/Requests/CreateBucketCommandRepRequest.ts @@ -3,20 +3,16 @@ import CreateBucketPayload from '../../Domain/Payloads/CreateBucketPayload'; class CreateBucketCommandRequest implements CreateBucketPayload { - @IsString() - name: string; - - publicBucketPolicy: any; - privateBucketPolicy: any; - - @IsString() - region: string; + private readonly _name: string; + private readonly _publicBucketPolicy: any; + private readonly _privateBucketPolicy: any; + private readonly _region: string; constructor(env: any) { - this.name = env.name; - this.region = env.region; - this.privateBucketPolicy = { + this._name = env.name; + this._region = env.region; + this._privateBucketPolicy = { Version: '2012-10-17', Statement: [ { @@ -29,8 +25,7 @@ class CreateBucketCommandRequest implements CreateBucketPayload } ] }; - - this.publicBucketPolicy = { + this._publicBucketPolicy = { Version: '2012-10-17', Statement: [ { @@ -49,24 +44,26 @@ class CreateBucketCommandRequest implements CreateBucketPayload }; } - getName(): string + @IsString() + get name(): string { - return this.name; + return this._name; } - getPublicBucketPolicy(): string + get publicBucketPolicy(): string { - return JSON.stringify(this.publicBucketPolicy); + return JSON.stringify(this._publicBucketPolicy); } - getPrivateBucketPolicy(): string + get privateBucketPolicy(): string { - return JSON.stringify(this.privateBucketPolicy); + return JSON.stringify(this._privateBucketPolicy); } - getRegion(): string + @IsString() + get region(): string { - return this.region; + return this._region; } } diff --git a/src/File/Presentation/Requests/FileBase64RepRequest.ts b/src/File/Presentation/Requests/FileBase64RepRequest.ts index 19617f8b..7c72c4ac 100644 --- a/src/File/Presentation/Requests/FileBase64RepRequest.ts +++ b/src/File/Presentation/Requests/FileBase64RepRequest.ts @@ -1,56 +1,57 @@ import FileBase64RepPayload from '../../Domain/Payloads/FileBase64RepPayload'; -import { IsBase64, IsMimeType, IsString } from 'class-validator'; +import { IsBase64, IsMimeType, IsNumber, IsString } from 'class-validator'; import FileOptionsQueryRequest from './FileOptionsQueryRequest'; class FileBase64RepRequest extends FileOptionsQueryRequest implements FileBase64RepPayload { - @IsMimeType() - mimeType: string; - - @IsString() - filename: string; - - @IsBase64() - base64: string; + private readonly _mimeType: string; + private readonly _filename: string; + private readonly _base64: string; constructor({ data, query }: any) { super({ query }); - this.filename = data.filename; - this.base64 = data.base64.split(';base64,').pop(); - this.mimeType = data.base64.split(';base64').shift().split('data:').pop(); + this._filename = data.filename; + this._base64 = data.base64.split(';base64,').pop(); + this._mimeType = data.base64.split(';base64').shift().split('data:').pop(); } - getOriginalName(): string + @IsString() + get originalName(): string { - return this.filename; + return this._filename; } - getMimeType(): string + @IsMimeType() + get mimeType(): string { - return this.mimeType; + return this._mimeType; } - getPath(): string + @IsString() + get path(): string { return '/'; } - getExtension(): string + @IsString() + get extension(): string { - return this.filename.includes('.') ? this.filename.split('.').pop() : null; + return this._filename.includes('.') ? this._filename.split('.').pop() : null; } - getSize(): number + @IsNumber() + get size(): number { const MIMETYPE_SIZE = 814; const ENCODING_INCREMENT_SIZE = 1.37; - return Math.floor((this.base64.length - MIMETYPE_SIZE) / ENCODING_INCREMENT_SIZE); + return Math.floor((this._base64.length - MIMETYPE_SIZE) / ENCODING_INCREMENT_SIZE); } - getBase64(): string + @IsBase64() + get base64(): string { - return this.base64; + return this._base64; } } diff --git a/src/File/Presentation/Requests/FileMultipartRepRequest.ts b/src/File/Presentation/Requests/FileMultipartRepRequest.ts index 4eb9209d..1f74cedf 100644 --- a/src/File/Presentation/Requests/FileMultipartRepRequest.ts +++ b/src/File/Presentation/Requests/FileMultipartRepRequest.ts @@ -1,46 +1,50 @@ import FileMultipartRepPayload from '../../Domain/Payloads/FileMultipartRepPayload'; -import { IsDefined } from 'class-validator'; +import { IsDefined, IsNumber, IsString } from 'class-validator'; import FileOptionsQueryRequest from './FileOptionsQueryRequest'; class FileMultipartRepRequest extends FileOptionsQueryRequest implements FileMultipartRepPayload { - @IsDefined() - file: any; + private readonly _file: any; constructor({ file, query }: any) { super({ query }); - this.file = file; + this._file = file; } - getOriginalName(): string + @IsString() + get originalName(): string { - return this.file.originalname; + return this._file.originalname; } - getMimeType(): string + @IsString() + get mimeType(): string { - return this.file.mimetype; + return this._file.mimetype; } - getPath(): string + @IsString() + get path(): string { return '/'; } - getExtension(): string | null + get extension(): string | null { - return this.file.originalname.includes('.') ? this.file.originalname.split('.').pop() : null; + return this._file.originalname.includes('.') ? this._file.originalname.split('.').pop() : null; } - getSize(): number + @IsNumber() + get size(): number { - return this.file.size; + return this._file.size; } - getFile(): any + @IsDefined() + file(): any { - return this.file; + return this._file; } } diff --git a/src/File/Presentation/Requests/FileOptionsQueryRequest.ts b/src/File/Presentation/Requests/FileOptionsQueryRequest.ts index edbe5958..816a875f 100644 --- a/src/File/Presentation/Requests/FileOptionsQueryRequest.ts +++ b/src/File/Presentation/Requests/FileOptionsQueryRequest.ts @@ -4,38 +4,36 @@ import { decorate } from 'ts-mixer'; class FileOptionsQueryRequest implements FileOptionsQueryPayload { - @decorate(IsBoolean()) - @decorate(IsOptional()) - hasOriginalName: boolean; - - @decorate(IsBoolean()) - @decorate(IsOptional()) - isPublic: boolean; - - @decorate(IsBoolean()) - @decorate(IsOptional()) - isOverwrite: boolean; + private readonly _hasOriginalName: boolean; + private readonly _isPublic: boolean; + private readonly _isOverwrite: boolean; constructor({ query }: any) { - this.hasOriginalName = query?.hasOriginalName === 'true'; - this.isPublic = query?.isPublic === 'true'; - this.isOverwrite = query?.isOverwrite === 'true'; + this._hasOriginalName = query?.hasOriginalName === 'true'; + this._isPublic = query?.isPublic === 'true'; + this._isOverwrite = query?.isOverwrite === 'true'; } - getIsOriginalName(): boolean + @decorate(IsBoolean()) + @decorate(IsOptional()) + get isOriginalName(): boolean { - return this.hasOriginalName; + return this._hasOriginalName; } - getIsPublic(): boolean + @decorate(IsBoolean()) + @decorate(IsOptional()) + get isPublic(): boolean { - return this.isPublic; + return this._isPublic; } - getIsOverwrite(): boolean + @decorate(IsBoolean()) + @decorate(IsOptional()) + get isOverwrite(): boolean { - return this.isOverwrite; + return this._isOverwrite; } } diff --git a/src/File/Presentation/Requests/ListObjectsRequest.ts b/src/File/Presentation/Requests/ListObjectsRequest.ts index 2c7f9a01..c7084dbe 100644 --- a/src/File/Presentation/Requests/ListObjectsRequest.ts +++ b/src/File/Presentation/Requests/ListObjectsRequest.ts @@ -4,29 +4,28 @@ import FileOptionsQueryRequest from './FileOptionsQueryRequest'; class ListObjectsRequest extends FileOptionsQueryRequest implements ListObjectsPayload { - @IsOptional() - @IsBoolean() - recursive: string; - - @IsOptional() - @IsBoolean() - prefix: string; + private readonly _recursive: string; + private readonly _prefix: string; constructor(query: Record) { super({ query }); - this.recursive = query.recursive ? String(query.recursive) : undefined; - this.prefix = query.prefix ? String(query.prefix) : undefined; + this._recursive = query.recursive ? String(query.recursive) : undefined; + this._prefix = query.prefix ? String(query.prefix) : undefined; } - getRecursive(): boolean + @IsOptional() + @IsBoolean() + get recursive(): boolean { - return (this.recursive?.toLowerCase() === 'true'); + return (this._recursive?.toLowerCase() === 'true'); } - getPrefix(): string + @IsOptional() + @IsBoolean() + get prefix(): string { - return this.prefix; + return this._prefix; } } diff --git a/src/File/Presentation/Requests/PresignedFileRepRequest.ts b/src/File/Presentation/Requests/PresignedFileRepRequest.ts index 0e5aa919..6a492268 100644 --- a/src/File/Presentation/Requests/PresignedFileRepRequest.ts +++ b/src/File/Presentation/Requests/PresignedFileRepRequest.ts @@ -4,28 +4,27 @@ import FileOptionsQueryRequest from './FileOptionsQueryRequest'; class PresignedFileRepRequest extends FileOptionsQueryRequest implements PresignedFileRepPayload { - @IsString() - filename: string; - - @IsOptional() - @IsString() - expiry: number; + private readonly _filename: string; + private readonly _expiry: number; constructor({ data, query }: any) { super({ query }); - this.filename = data.filename; - this.expiry = data.expiry; + this._filename = data.filename; + this._expiry = data.expiry; } - getName(): string + @IsString() + get name(): string { - return this.filename; + return this._filename; } - getExpiry(): number + @IsOptional() + @IsString() + get expiry(): number { - return this.expiry || 60 * 24 * 24 * 7; + return this._expiry || 60 * 24 * 24 * 7; } } diff --git a/src/File/Tests/file.handler.spec.ts b/src/File/Tests/file.handler.spec.ts index d6143080..2bb67c13 100644 --- a/src/File/Tests/file.handler.spec.ts +++ b/src/File/Tests/file.handler.spec.ts @@ -57,11 +57,9 @@ describe('Start File Test', () => .set('Authorization', `Bearer ${token}`) .send(UploadFileBase64); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.originalName).toStrictEqual('photo.jpg'); expect(data.extension).toStrictEqual('jpg'); @@ -85,11 +83,9 @@ describe('Start File Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.originalName).toStrictEqual(payload.originalName); expect(data.extension).toStrictEqual(payload.extension); @@ -116,7 +112,7 @@ describe('Start File Test', () => // test('Update Item /items/:id', async () => // { // const payload = { - // name: 'Item 1 update', + // name: 'Item 1 updateRep', // type: 11 // }; // @@ -126,7 +122,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(payload); // - // const {body: {status, statusCode, data}} = response; + // const {body: {data}} = response; // // expect(response.statusCode).toStrictEqual(201); // expect(status).toStrictEqual('success'); @@ -156,7 +152,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${createResponse.body.metadata.refreshToken}`) // .send(); // - // const {body: {status, statusCode, data}} = deleteResponse; + // const {body: {data}} = deleteResponse; // // expect(deleteResponse.statusCode).toStrictEqual(200); // expect(status).toStrictEqual('success'); @@ -176,7 +172,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(); // - // const {body: {status, statusCode, data, pagination}} = response; + // const {body: {data, pagination}} = response; // // expect(response.statusCode).toStrictEqual(200); // expect(status).toStrictEqual('success'); @@ -198,7 +194,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(); // - // const {body: {status, statusCode, data, pagination}} = response; + // const {body: {data, pagination}} = response; // // expect(response.statusCode).toStrictEqual(200); // expect(status).toStrictEqual('success'); @@ -218,7 +214,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(); // - // const {body: {status, statusCode, data, pagination}} = response; + // const {body: {data, pagination}} = response; // // expect(response.statusCode).toStrictEqual(200); // expect(status).toStrictEqual('success'); @@ -240,7 +236,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(); // - // const {body: {status, statusCode, data: [item1, item2]}} = response; + // const {body: {data: [item1, item2]}} = response; // // expect(response.statusCode).toStrictEqual(200); // expect(status).toStrictEqual('success'); @@ -279,7 +275,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(UploadFileBase64); // - // const {body: {status, statusCode, message, errors: [error]}} = response; + // const {body: {message, errors: [error]}} = response; // // expect(response.statusCode).toStrictEqual(422); // expect(status).toStrictEqual('error'); @@ -300,7 +296,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(); // - // const {body: {status, statusCode, message, errors: [error]}} = response; + // const {body: {message, errors: [error]}} = response; // // expect(response.statusCode).toStrictEqual(422); // expect(status).toStrictEqual('error'); @@ -326,7 +322,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(payload); // - // const {body: {status, statusCode, message, errors: [errorName, errorType]}} = response; + // const {body: {message, errors: [errorName, errorType]}} = response; // // expect(response.statusCode).toStrictEqual(422); // expect(status).toStrictEqual('error'); @@ -352,7 +348,7 @@ describe('Start File Test', () => // .set('Authorization', `Bearer ${token}`) // .send(); // - // const {body: {status, statusCode, message}} = deleteErrorResponse; + // const {body: {message}} = deleteErrorResponse; // // expect(deleteErrorResponse.statusCode).toStrictEqual(400); // expect(status).toStrictEqual('error'); diff --git a/src/Item/InterfaceAdapters/IItemDomain.ts b/src/Item/Domain/Entities/IItemDomain.ts similarity index 50% rename from src/Item/InterfaceAdapters/IItemDomain.ts rename to src/Item/Domain/Entities/IItemDomain.ts index db8a76da..70f23499 100644 --- a/src/Item/InterfaceAdapters/IItemDomain.ts +++ b/src/Item/Domain/Entities/IItemDomain.ts @@ -1,5 +1,6 @@ -import IBaseDomain from '../../App/InterfaceAdapters/IBaseDomain'; -import IUserDomain from '../../User/InterfaceAdapters/IUserDomain'; +import IBaseDomain from '../../../App/InterfaceAdapters/IBaseDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import ItemRepPayload from '../Payloads/ItemRepPayload'; interface IItemDomain extends IBaseDomain { @@ -10,6 +11,7 @@ interface IItemDomain extends IBaseDomain getCreatedBy(): IUserDomain; getLastModifiedBy(): IUserDomain; + updateBuild(payload: ItemRepPayload): void; } export default IItemDomain; diff --git a/src/Item/Domain/Entities/Item.ts b/src/Item/Domain/Entities/Item.ts index 0fb09bc8..79273f86 100644 --- a/src/Item/Domain/Entities/Item.ts +++ b/src/Item/Domain/Entities/Item.ts @@ -1,6 +1,7 @@ -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; +import IItemDomain from './IItemDomain'; import Base from '../../../App/Domain/Entities/Base'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import ItemRepPayload from '../Payloads/ItemRepPayload'; class Item extends Base implements IItemDomain { @@ -9,6 +10,18 @@ class Item extends Base implements IItemDomain createdBy: IUserDomain; lastModifiedBy: IUserDomain; + constructor(payload: ItemRepPayload) + { + super(); + this.updateBuild(payload); + } + + updateBuild(payload: ItemRepPayload): void + { + this.name = payload.name; + this.type = payload.type; + } + getCreatedBy(): IUserDomain { return this.createdBy; diff --git a/src/Item/InterfaceAdapters/Payloads/ItemRepPayload.ts b/src/Item/Domain/Payloads/ItemRepPayload.ts similarity index 57% rename from src/Item/InterfaceAdapters/Payloads/ItemRepPayload.ts rename to src/Item/Domain/Payloads/ItemRepPayload.ts index 267408c3..c3b40a1b 100644 --- a/src/Item/InterfaceAdapters/Payloads/ItemRepPayload.ts +++ b/src/Item/Domain/Payloads/ItemRepPayload.ts @@ -1,8 +1,8 @@ interface ItemRepPayload { - getName(): string; - getType(): number; + name: string; + type: number; } export default ItemRepPayload; diff --git a/src/Item/InterfaceAdapters/Payloads/ItemUpdatePayload.ts b/src/Item/Domain/Payloads/ItemUpdatePayload.ts similarity index 100% rename from src/Item/InterfaceAdapters/Payloads/ItemUpdatePayload.ts rename to src/Item/Domain/Payloads/ItemUpdatePayload.ts diff --git a/src/Item/Domain/Services/ItemService.ts b/src/Item/Domain/Services/ItemService.ts deleted file mode 100644 index 362b5a9d..00000000 --- a/src/Item/Domain/Services/ItemService.ts +++ /dev/null @@ -1,57 +0,0 @@ -import ItemRepPayload from '../../InterfaceAdapters/Payloads/ItemRepPayload'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; -import Item from '../Entities/Item'; -import IItemRepository from '../../InterfaceAdapters/IItemRepository'; -import { REPOSITORIES } from '../../../Config/Injects/repositories'; -import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; -import ItemUpdatePayload from '../../InterfaceAdapters/Payloads/ItemUpdatePayload'; -import { ICriteria, IPaginator } from '@digichanges/shared-experience'; - -class ItemService -{ - @containerFactory(REPOSITORIES.IItemRepository) - private repository: IItemRepository; - - async persist(item: IItemDomain, payload: ItemRepPayload): Promise - { - item.name = payload.getName(); - item.type = payload.getType(); - - return await this.repository.save(item); - } - - async create(payload: ItemRepPayload, auth_user: IUserDomain): Promise - { - const item = new Item(); - item.createdBy = auth_user; - - return await this.persist(item, payload); - } - - async update(payload: ItemUpdatePayload, auth_user: IUserDomain): Promise - { - const id = payload.getId(); - const item: IItemDomain = await this.getOne(id); - item.lastModifiedBy = auth_user; - - return await this.persist(item, payload); - } - - async getOne(id: string): Promise - { - return await this.repository.getOne(id); - } - - async remove(id: string): Promise - { - return await this.repository.delete(id); - } - - async list(payload: ICriteria): Promise - { - return await this.repository.list(payload); - } -} - -export default ItemService; diff --git a/src/Item/Domain/UseCases/GetItemUseCase.ts b/src/Item/Domain/UseCases/GetItemUseCase.ts index 75e3b698..48eb07b9 100644 --- a/src/Item/Domain/UseCases/GetItemUseCase.ts +++ b/src/Item/Domain/UseCases/GetItemUseCase.ts @@ -1,15 +1,17 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; -import ItemService from '../Services/ItemService'; +import IItemDomain from '../Entities/IItemDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IItemRepository from '../../Infrastructure/Repositories/IItemRepository'; class GetItemUseCase { - private itemService = new ItemService(); + @containerFactory(REPOSITORIES.IItemRepository) + private repository: IItemRepository; async handle(payload: IdPayload): Promise { - const id = payload.getId(); - return await this.itemService.getOne(id); + return await this.repository.getOne(payload.id); } } diff --git a/src/Item/Domain/UseCases/ListItemsUseCase.ts b/src/Item/Domain/UseCases/ListItemsUseCase.ts index 954ff6a7..574b5f20 100644 --- a/src/Item/Domain/UseCases/ListItemsUseCase.ts +++ b/src/Item/Domain/UseCases/ListItemsUseCase.ts @@ -1,13 +1,16 @@ import { ICriteria, IPaginator } from '@digichanges/shared-experience'; -import ItemService from '../Services/ItemService'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IItemRepository from '../../Infrastructure/Repositories/IItemRepository'; class ListItemsUseCase { - private itemService = new ItemService(); + @containerFactory(REPOSITORIES.IItemRepository) + private repository: IItemRepository; async handle(payload: ICriteria): Promise { - return await this.itemService.list(payload); + return await this.repository.list(payload); } } diff --git a/src/Item/Domain/UseCases/RemoveItemUseCase.ts b/src/Item/Domain/UseCases/RemoveItemUseCase.ts index 08f05cb2..6846dcbb 100644 --- a/src/Item/Domain/UseCases/RemoveItemUseCase.ts +++ b/src/Item/Domain/UseCases/RemoveItemUseCase.ts @@ -1,15 +1,18 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; -import ItemService from '../Services/ItemService'; +import IItemDomain from '../Entities/IItemDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IItemRepository from '../../Infrastructure/Repositories/IItemRepository'; class RemoveItemUseCase { - private itemService = new ItemService(); + @containerFactory(REPOSITORIES.IItemRepository) + private repository: IItemRepository; async handle(payload: IdPayload): Promise { - const id = payload.getId(); - return await this.itemService.remove(id); + const { id } = payload; + return await this.repository.delete(id); } } diff --git a/src/Item/Domain/UseCases/SaveItemUseCase.ts b/src/Item/Domain/UseCases/SaveItemUseCase.ts index 40cec772..b81d0cec 100644 --- a/src/Item/Domain/UseCases/SaveItemUseCase.ts +++ b/src/Item/Domain/UseCases/SaveItemUseCase.ts @@ -1,15 +1,22 @@ -import ItemRepPayload from '../../InterfaceAdapters/Payloads/ItemRepPayload'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; -import ItemService from '../Services/ItemService'; +import ItemRepPayload from '../Payloads/ItemRepPayload'; +import IItemDomain from '../Entities/IItemDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import Item from '../Entities/Item'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IItemRepository from '../../Infrastructure/Repositories/IItemRepository'; class SaveItemUseCase { - private itemService = new ItemService(); + @containerFactory(REPOSITORIES.IItemRepository) + private repository: IItemRepository; async handle(payload: ItemRepPayload, authUser: IUserDomain): Promise { - return await this.itemService.create(payload, authUser); + const item = new Item(payload); + item.createdBy = authUser; + + return await this.repository.save(item); } } diff --git a/src/Item/Domain/UseCases/UpdateItemUseCase.ts b/src/Item/Domain/UseCases/UpdateItemUseCase.ts index cddf2a64..e2915cbd 100644 --- a/src/Item/Domain/UseCases/UpdateItemUseCase.ts +++ b/src/Item/Domain/UseCases/UpdateItemUseCase.ts @@ -1,15 +1,22 @@ -import ItemUpdatePayload from '../../InterfaceAdapters/Payloads/ItemUpdatePayload'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; -import ItemService from '../Services/ItemService'; +import ItemUpdatePayload from '../Payloads/ItemUpdatePayload'; +import IItemDomain from '../Entities/IItemDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IItemRepository from '../../Infrastructure/Repositories/IItemRepository'; class UpdateItemUseCase { - private itemService = new ItemService(); + @containerFactory(REPOSITORIES.IItemRepository) + private repository: IItemRepository; async handle(payload: ItemUpdatePayload, authUser: IUserDomain): Promise { - return await this.itemService.update(payload, authUser); + const item: IItemDomain = await this.repository.getOne(payload.id); + item.updateBuild(payload); + item.lastModifiedBy = authUser; + + return await this.repository.update(item); } } diff --git a/src/Item/InterfaceAdapters/IItemRepository.ts b/src/Item/Infrastructure/Repositories/IItemRepository.ts similarity index 61% rename from src/Item/InterfaceAdapters/IItemRepository.ts rename to src/Item/Infrastructure/Repositories/IItemRepository.ts index 56adb1ac..8fe2f178 100644 --- a/src/Item/InterfaceAdapters/IItemRepository.ts +++ b/src/Item/Infrastructure/Repositories/IItemRepository.ts @@ -1,6 +1,6 @@ -import IBaseRepository from '../../App/InterfaceAdapters/IBaseRepository'; +import IBaseRepository from '../../../App/InterfaceAdapters/IBaseRepository'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; -import IItemDomain from './IItemDomain'; +import IItemDomain from '../../Domain/Entities/IItemDomain'; interface IItemRepository extends IBaseRepository { diff --git a/src/Item/Infrastructure/Repositories/ItemMikroSqlRepository.ts b/src/Item/Infrastructure/Repositories/ItemMikroSqlRepository.ts index 88266d01..9398a8ea 100644 --- a/src/Item/Infrastructure/Repositories/ItemMikroSqlRepository.ts +++ b/src/Item/Infrastructure/Repositories/ItemMikroSqlRepository.ts @@ -1,4 +1,4 @@ -import IItemRepository from '../../InterfaceAdapters/IItemRepository'; +import IItemRepository from './IItemRepository'; import Item from '../../Domain/Entities/Item'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; diff --git a/src/Item/Infrastructure/Repositories/ItemMongoRepository.ts b/src/Item/Infrastructure/Repositories/ItemMongoRepository.ts index 9c3bf619..0dc99fdd 100644 --- a/src/Item/Infrastructure/Repositories/ItemMongoRepository.ts +++ b/src/Item/Infrastructure/Repositories/ItemMongoRepository.ts @@ -2,13 +2,13 @@ import { Query } from 'mongoose'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; -import IItemRepository from '../../InterfaceAdapters/IItemRepository'; +import IItemRepository from './IItemRepository'; import ItemFilter from '../../Presentation/Criterias/ItemFilter'; import MongoPaginator from '../../../App/Presentation/Shared/MongoPaginator'; -import IItem from '../../InterfaceAdapters/IItemDocument'; +import IItem from '../Schemas/IItemDocument'; import BaseMongoRepository from '../../../App/Infrastructure/Repositories/BaseMongoRepository'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; +import IItemDomain from '../../Domain/Entities/IItemDomain'; import Item from '../../Domain/Entities/Item'; @injectable() @@ -34,9 +34,9 @@ class ItemMongoRepository extends BaseMongoRepository implem if (filter.has(ItemFilter.NAME)) { const name: string = filter.get(ItemFilter.NAME); - const rsearch = new RegExp(name, 'g'); + const rSearch = new RegExp(name, 'g'); - void queryBuilder.where(ItemFilter.NAME).regex(rsearch); + void queryBuilder.where(ItemFilter.NAME).regex(rSearch); } void queryBuilder.populate(this.populate); diff --git a/src/Item/Infrastructure/Repositories/ItemSqlRepository.ts b/src/Item/Infrastructure/Repositories/ItemSqlRepository.ts index 1d0b3c87..15bdc014 100644 --- a/src/Item/Infrastructure/Repositories/ItemSqlRepository.ts +++ b/src/Item/Infrastructure/Repositories/ItemSqlRepository.ts @@ -1,4 +1,4 @@ -import IItemRepository from '../../InterfaceAdapters/IItemRepository'; +import IItemRepository from './IItemRepository'; import Item from '../../Domain/Entities/Item'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; diff --git a/src/Item/InterfaceAdapters/IItemDocument.ts b/src/Item/Infrastructure/Schemas/IItemDocument.ts similarity index 67% rename from src/Item/InterfaceAdapters/IItemDocument.ts rename to src/Item/Infrastructure/Schemas/IItemDocument.ts index 2c342866..e3fc8bb1 100644 --- a/src/Item/InterfaceAdapters/IItemDocument.ts +++ b/src/Item/Infrastructure/Schemas/IItemDocument.ts @@ -1,5 +1,5 @@ import { Document } from 'mongoose'; -import IItemDomain from './IItemDomain'; +import IItemDomain from '../../Domain/Entities/IItemDomain'; interface IItemDocument extends Document, IItemDomain {} diff --git a/src/Item/Infrastructure/Seeds/ItemSeed.ts b/src/Item/Infrastructure/Seeds/ItemSeed.ts index f6f94341..b15427e4 100644 --- a/src/Item/Infrastructure/Seeds/ItemSeed.ts +++ b/src/Item/Infrastructure/Seeds/ItemSeed.ts @@ -1,14 +1,15 @@ import faker from 'faker'; -import IItemRepository from '../../InterfaceAdapters/IItemRepository'; +import IItemRepository from '../Repositories/IItemRepository'; import Item from '../../Domain/Entities/Item'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import ISeed from '../../../Shared/InterfaceAdapters/ISeed'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; import User from '../../../User/Domain/Entities/User'; -import IUserRepository from '../../../User/InterfaceAdapters/IUserRepository'; +import IUserRepository from '../../../User/Infrastructure/Repositories/IUserRepository'; import Password from '../../../App/Domain/ValueObjects/Password'; import MainConfig from '../../../Config/mainConfig'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; class ItemSeed implements ISeed { @@ -26,13 +27,11 @@ class ItemSeed implements ISeed for await (const index of indexes) { - const title = faker.name.title(); + const name = faker.name.title(); const type = faker.datatype.number(); - const item = new Item(); + const item = new Item({ name, type }); - item.name = title; - item.type = type; item.createdBy = user; item.lastModifiedBy = user; @@ -42,33 +41,30 @@ class ItemSeed implements ISeed private async createUser(): Promise { - const config = MainConfig.getInstance(); - const user: IUserDomain = new User(); + const { minLength, maxLength } = MainConfig.getInstance().getConfig().validationSettings.password; - user.firstName = 'test'; - user.lastName = 'item'; - user.email = 'testitem@node.com'; - user.birthday = '05/07/1992'; - user.documentType = 'dni'; - user.documentNumber = '3531915736'; - user.gender = 'male'; - user.phone = '2234456999'; - user.country = 'Argentina'; - user.address = 'New America 123'; + const roles: IRoleDomain[] = []; + const permissions: string[] = []; - const min = config.getConfig().validationSettings.password.minLength; - const max = config.getConfig().validationSettings.password.maxLength; + const payloadUser = { + firstName: 'test', + lastName: 'item', + email: 'testitem@node.com', + birthday: '05/07/1992', + documentType: 'dni', + documentNumber: '3531915736', + gender: 'male', + phone: '2234456999', + country: 'Argentina', + address: 'New America 123', + enable: true, + permissions, + roles, + isSuperAdmin: false + }; - const password = new Password('123456789', min, max); - await password.ready(); - user.password = password; - - user.enable = true; - user.confirmationToken = null; - user.passwordRequestedAt = null; - user.permissions = []; - user.roles = []; - user.isSuperAdmin = false; + const user: IUserDomain = new User(payloadUser); + user.password = await (new Password('123456789', minLength, maxLength)).ready(); return await this.userRepository.save(user); } diff --git a/src/Item/Presentation/Controllers/ItemController.ts b/src/Item/Presentation/Controllers/ItemController.ts index 13f1e73f..f1bfb378 100644 --- a/src/Item/Presentation/Controllers/ItemController.ts +++ b/src/Item/Presentation/Controllers/ItemController.ts @@ -1,4 +1,4 @@ -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; +import IItemDomain from '../../Domain/Entities/IItemDomain'; import SaveItemUseCase from '../../Domain/UseCases/SaveItemUseCase'; import ListItemsUseCase from '../../Domain/UseCases/ListItemsUseCase'; @@ -6,11 +6,11 @@ import GetItemUseCase from '../../Domain/UseCases/GetItemUseCase'; import RemoveItemUseCase from '../../Domain/UseCases/RemoveItemUseCase'; import UpdateItemUseCase from '../../Domain/UseCases/UpdateItemUseCase'; import ValidatorRequest from '../../../App/Presentation/Shared/ValidatorRequest'; -import ItemRepPayload from '../../InterfaceAdapters/Payloads/ItemRepPayload'; +import ItemRepPayload from '../../Domain/Payloads/ItemRepPayload'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import ItemUpdatePayload from '../../InterfaceAdapters/Payloads/ItemUpdatePayload'; -import IUserDomain from '../../../User/InterfaceAdapters/IUserDomain'; +import ItemUpdatePayload from '../../Domain/Payloads/ItemUpdatePayload'; +import IUserDomain from '../../../User/Domain/Entities/IUserDomain'; class ItemController { diff --git a/src/Item/Presentation/Handlers/Express/ItemHandler.ts b/src/Item/Presentation/Handlers/Express/ItemHandler.ts index d59057ac..ec8337cd 100644 --- a/src/Item/Presentation/Handlers/Express/ItemHandler.ts +++ b/src/Item/Presentation/Handlers/Express/ItemHandler.ts @@ -13,7 +13,7 @@ import ItemRepRequest from '../../Requests/ItemRepRequest'; import IdRequest from '../../../../App/Presentation/Requests/IdRequest'; import ItemRequestCriteria from '../../Requests/ItemRequestCriteria'; import ItemUpdateRequest from '../../Requests/ItemUpdateRequest'; -import IItemDomain from '../../../InterfaceAdapters/IItemDomain'; +import IItemDomain from '../../../Domain/Entities/IItemDomain'; import ItemController from '../../Controllers/ItemController'; import { AuthUser } from '../../../../Auth/Presentation/Helpers/AuthUser'; diff --git a/src/Item/Presentation/Requests/ItemRepRequest.ts b/src/Item/Presentation/Requests/ItemRepRequest.ts index dc268546..2d9ad7fe 100644 --- a/src/Item/Presentation/Requests/ItemRepRequest.ts +++ b/src/Item/Presentation/Requests/ItemRepRequest.ts @@ -1,29 +1,28 @@ -import ItemRepPayload from '../../InterfaceAdapters/Payloads/ItemRepPayload'; +import ItemRepPayload from '../../Domain/Payloads/ItemRepPayload'; import { IsInt, IsString } from 'class-validator'; import { decorate } from 'ts-mixer'; class ItemRepRequest implements ItemRepPayload { - @decorate(IsString()) - protected name: string; - - @decorate(IsInt()) - protected type: number; + private readonly _name: string; + private readonly _type: number; constructor(data: Record) { - this.name = data.name; - this.type = data.type; + this._name = data.name; + this._type = data.type; } - getName(): string + @decorate(IsString()) + get name(): string { - return this.name; + return this._name; } - getType(): number + @decorate(IsInt()) + get type(): number { - return this.type; + return this._type; } } diff --git a/src/Item/Presentation/Requests/ItemUpdateRequest.ts b/src/Item/Presentation/Requests/ItemUpdateRequest.ts index 55841080..5d1bb802 100644 --- a/src/Item/Presentation/Requests/ItemUpdateRequest.ts +++ b/src/Item/Presentation/Requests/ItemUpdateRequest.ts @@ -1,15 +1,14 @@ -import ItemUpdatePayload from '../../InterfaceAdapters/Payloads/ItemUpdatePayload'; +import ItemUpdatePayload from '../../Domain/Payloads/ItemUpdatePayload'; import IdRequest from '../../../App/Presentation/Requests/IdRequest'; import ItemRepRequest from './ItemRepRequest'; import { Mixin } from 'ts-mixer'; - class ItemUpdateRequest extends Mixin(ItemRepRequest, IdRequest) implements ItemUpdatePayload { constructor(data: Record, id: string) { super(data); - this.id = id; + this._id = id; } } diff --git a/src/Item/InterfaceAdapters/IItemTransformer.ts b/src/Item/Presentation/Transformers/IItemTransformer.ts similarity index 69% rename from src/Item/InterfaceAdapters/IItemTransformer.ts rename to src/Item/Presentation/Transformers/IItemTransformer.ts index 24af94d4..67681c73 100644 --- a/src/Item/InterfaceAdapters/IItemTransformer.ts +++ b/src/Item/Presentation/Transformers/IItemTransformer.ts @@ -1,4 +1,4 @@ -import IUserMinimalDataTransformer from '../../User/InterfaceAdapters/IUserMinimalDataTransformer'; +import IUserMinimalDataTransformer from '../../../User/Presentation/Transformers/IUserMinimalDataTransformer'; interface IItemTransformer { diff --git a/src/Item/Presentation/Transformers/ItemTransformer.ts b/src/Item/Presentation/Transformers/ItemTransformer.ts index 7f3899f1..aaa55e30 100644 --- a/src/Item/Presentation/Transformers/ItemTransformer.ts +++ b/src/Item/Presentation/Transformers/ItemTransformer.ts @@ -1,8 +1,8 @@ import moment from 'moment'; import { Transformer } from '@digichanges/shared-experience'; -import IItemDomain from '../../InterfaceAdapters/IItemDomain'; -import IItemTransformer from '../../InterfaceAdapters/IItemTransformer'; +import IItemDomain from '../../Domain/Entities/IItemDomain'; +import IItemTransformer from './IItemTransformer'; import UserMinimalDataTransformer from '../../../User/Presentation/Transformers/UserMinimalDataTransformer'; class ItemTransformer extends Transformer diff --git a/src/Item/Tests/item.handler.spec.ts b/src/Item/Tests/item.handler.spec.ts index f0e7f27c..7e306306 100644 --- a/src/Item/Tests/item.handler.spec.ts +++ b/src/Item/Tests/item.handler.spec.ts @@ -59,11 +59,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.type).toStrictEqual(payload.type); @@ -83,11 +81,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.name).toStrictEqual(payload.name); expect(data.type).toStrictEqual(payload.type); @@ -106,11 +102,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.type).toStrictEqual(payload.type); @@ -135,11 +129,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = deleteResponse; + const { body: { data } } = deleteResponse; expect(deleteResponse.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.name).toStrictEqual(payload.name); expect(data.type).toStrictEqual(payload.type); @@ -155,11 +147,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.length).toStrictEqual(5); expect(pagination.total).toStrictEqual(11); @@ -184,11 +174,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.length).toStrictEqual(11); expect(pagination).not.toBeDefined(); @@ -202,11 +190,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.length).toStrictEqual(1); expect(pagination.total).toStrictEqual(1); @@ -222,11 +208,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data: [item1, item2] } } = response; + const { body: { data: [item1, item2] } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(item1.type).toBeGreaterThanOrEqual(item2.type); }); @@ -264,11 +248,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(error.property).toStrictEqual('type'); @@ -283,11 +265,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(error.property).toStrictEqual('id'); @@ -308,11 +288,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, message, errors: [errorName, errorType] } } = response; + const { body: { message, errors: [errorName, errorType] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(errorName.property).toStrictEqual('name'); @@ -332,11 +310,9 @@ describe('Start Item Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, message } } = deleteErrorResponse; + const { body: { message } } = deleteErrorResponse; expect(deleteErrorResponse.statusCode).toStrictEqual(400); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_BAD_REQUEST'); expect(message).toStrictEqual('Item not found.'); }); }); diff --git a/src/Item/Tests/types.ts b/src/Item/Tests/types.ts index 9f2250e4..7d27bd3b 100644 --- a/src/Item/Tests/types.ts +++ b/src/Item/Tests/types.ts @@ -1,6 +1,6 @@ import { IBodyResponse } from '../../Shared/InterfaceAdapters/Tests/IBodyResponse'; import { IFetchResponse } from '../../Shared/InterfaceAdapters/Tests/IFetchResponse'; -import IItemTransformer from '../InterfaceAdapters/IItemTransformer'; +import IItemTransformer from '../Presentation/Transformers/IItemTransformer'; interface IItemBody extends IBodyResponse { diff --git a/src/Notification/Domain/Entities/PushNotification.ts b/src/Notification/Domain/Entities/PushNotification.ts index 826cd6d7..3d8f25e0 100644 --- a/src/Notification/Domain/Entities/PushNotification.ts +++ b/src/Notification/Domain/Entities/PushNotification.ts @@ -12,7 +12,7 @@ class PushNotification extends Notification this.url = null; } - get_subscription() + getSubscription() { return this.subscription; } diff --git a/src/Notification/Shared/EmailStrategy.ts b/src/Notification/Shared/EmailStrategy.ts index 6d7e5093..5733fb0e 100644 --- a/src/Notification/Shared/EmailStrategy.ts +++ b/src/Notification/Shared/EmailStrategy.ts @@ -73,14 +73,14 @@ class EmailStrategy implements INotifierStrategy throw new ErrorException({ message: 'You need set an emailNotification, templatePathNameFile and data' }, 'NotificatorException'); } - const config = MainConfig.getInstance(); + const config = MainConfig.getInstance().getConfig(); try { - const host: string = config.getConfig().mail.host; - const port: number = config.getConfig().mail.port; - const secure: boolean = config.getConfig().mail.secure === true; - const templateRoot: string = config.getConfig().mail.templateDir; + const host: string = config.mail.host; + const port: number = config.mail.port; + const secure: boolean = config.mail.secure === true; + const templateRoot: string = config.mail.templateDir; const templateDir = `${process.cwd()}/${templateRoot}/${this._templatePathNameFile}`; const smtp_config = { host, port, secure }; @@ -89,15 +89,15 @@ class EmailStrategy implements INotifierStrategy { const auth = { auth: { - user: String(config.getConfig().mail.username), - pass: String(config.getConfig().mail.password) + user: String(config.mail.username), + pass: String(config.mail.password) } }; Object.assign(smtp_config, auth); } - this._emailNotification.senderName = config.getConfig().mail.senderName; - this._emailNotification.from = config.getConfig().mail.senderEmailDefault; + this._emailNotification.senderName = config.mail.senderName; + this._emailNotification.from = config.mail.senderEmailDefault; this._emailNotification.emailTemplatePath = templateDir; const transporter = nodemailer.createTransport(smtp_config); diff --git a/src/Notification/Shared/WebPushStrategy.ts b/src/Notification/Shared/WebPushStrategy.ts index 2963e1bf..06884420 100644 --- a/src/Notification/Shared/WebPushStrategy.ts +++ b/src/Notification/Shared/WebPushStrategy.ts @@ -54,7 +54,7 @@ class WebPushStrategy implements INotifierStrategy const privateKey: string = config.getConfig().push.privateKey; const subject: string = config.getConfig().url.urlWeb; - const pushSubscription = this._pushNotification.get_subscription(); + const pushSubscription = this._pushNotification.getSubscription(); const payload = JSON.stringify({ name: this._pushNotification.name, diff --git a/src/Role/InterfaceAdapters/IRoleDomain.ts b/src/Role/Domain/Entities/IRoleDomain.ts similarity index 51% rename from src/Role/InterfaceAdapters/IRoleDomain.ts rename to src/Role/Domain/Entities/IRoleDomain.ts index bbde51d1..37e1045c 100644 --- a/src/Role/InterfaceAdapters/IRoleDomain.ts +++ b/src/Role/Domain/Entities/IRoleDomain.ts @@ -1,4 +1,5 @@ -import IBaseDomain from '../../App/InterfaceAdapters/IBaseDomain'; +import IBaseDomain from '../../../App/InterfaceAdapters/IBaseDomain'; +import RoleRepPayload from '../Payloads/RoleRepPayload'; interface IRoleDomain extends IBaseDomain { @@ -7,6 +8,8 @@ interface IRoleDomain extends IBaseDomain enable: boolean; ofSystem: boolean; permissions: string[]; + + updateBuild(payload: RoleRepPayload): void } export default IRoleDomain; diff --git a/src/Role/Domain/Entities/Role.ts b/src/Role/Domain/Entities/Role.ts index 82479d83..051ca24c 100644 --- a/src/Role/Domain/Entities/Role.ts +++ b/src/Role/Domain/Entities/Role.ts @@ -1,5 +1,7 @@ -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from './IRoleDomain'; import Base from '../../../App/Domain/Entities/Base'; +import RoleRepPayload from '../Payloads/RoleRepPayload'; +import AuthHelper from '../../../Shared/Helpers/AuthHelper'; class Role extends Base implements IRoleDomain { @@ -8,6 +10,22 @@ class Role extends Base implements IRoleDomain enable: boolean; ofSystem: boolean; permissions: string[]; + + constructor(payload: RoleRepPayload) + { + super(); + this.updateBuild(payload); + } + + updateBuild(payload: RoleRepPayload): void + { + AuthHelper.validatePermissions(payload.permissions); + + this.name = payload.name; + this.slug = payload.slug; + this.enable = payload.enable; + this.permissions = payload.permissions; + } } export default Role; diff --git a/src/Role/Domain/Payloads/RoleRepPayload.ts b/src/Role/Domain/Payloads/RoleRepPayload.ts new file mode 100644 index 00000000..5a638d18 --- /dev/null +++ b/src/Role/Domain/Payloads/RoleRepPayload.ts @@ -0,0 +1,10 @@ + +interface RoleRepPayload +{ + name: string; + slug: string; + permissions: string[]; + enable: boolean; +} + +export default RoleRepPayload; diff --git a/src/Role/InterfaceAdapters/Payloads/RoleUpdatePayload.ts b/src/Role/Domain/Payloads/RoleUpdatePayload.ts similarity index 100% rename from src/Role/InterfaceAdapters/Payloads/RoleUpdatePayload.ts rename to src/Role/Domain/Payloads/RoleUpdatePayload.ts diff --git a/src/Role/Domain/Services/RoleService.ts b/src/Role/Domain/Services/RoleService.ts deleted file mode 100644 index 0bd4851f..00000000 --- a/src/Role/Domain/Services/RoleService.ts +++ /dev/null @@ -1,59 +0,0 @@ -import RoleRepPayload from '../../InterfaceAdapters/Payloads/RoleRepPayload'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; -import Role from '../Entities/Role'; -import IRoleRepository from '../../InterfaceAdapters/IRoleRepository'; -import { REPOSITORIES } from '../../../Config/Injects/repositories'; -import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import RoleUpdatePayload from '../../InterfaceAdapters/Payloads/RoleUpdatePayload'; -import { ICriteria, IPaginator } from '@digichanges/shared-experience'; -import AuthService from '../../../Auth/Domain/Services/AuthService'; - -class RoleService -{ - @containerFactory(REPOSITORIES.IRoleRepository) - private repository: IRoleRepository; - - private authService = new AuthService(); - - async persist(role: IRoleDomain, payload: RoleRepPayload): Promise - { - this.authService.validatePermissions(payload.getPermissions()); - - role.name = payload.getName(); - role.slug = payload.getSlug(); - role.enable = payload.getEnable(); - role.permissions = payload.getPermissions(); - - return await this.repository.save(role); - } - - async create(payload: RoleRepPayload): Promise - { - const role = new Role(); - return await this.persist(role, payload); - } - - async update(payload: RoleUpdatePayload): Promise - { - const id = payload.getId(); - const role: IRoleDomain = await this.getOne(id); - return await this.persist(role, payload); - } - - async getOne(id: string): Promise - { - return await this.repository.getOne(id); - } - - async remove(id: string): Promise - { - return await this.repository.delete(id); - } - - async list(payload: ICriteria): Promise - { - return await this.repository.list(payload); - } -} - -export default RoleService; diff --git a/src/Role/Domain/UseCases/GetRoleUseCase.ts b/src/Role/Domain/UseCases/GetRoleUseCase.ts index a32c67e6..722853e4 100644 --- a/src/Role/Domain/UseCases/GetRoleUseCase.ts +++ b/src/Role/Domain/UseCases/GetRoleUseCase.ts @@ -1,15 +1,17 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; -import RoleService from '../Services/RoleService'; +import IRoleDomain from '../Entities/IRoleDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IRoleRepository from '../../Infrastructure/Repositories/IRoleRepository'; class GetRoleUseCase { - private roleService = new RoleService(); + @containerFactory(REPOSITORIES.IRoleRepository) + private repository: IRoleRepository; async handle(payload: IdPayload): Promise { - const id = payload.getId(); - return await this.roleService.getOne(id); + return await this.repository.getOne(payload.id); } } diff --git a/src/Role/Domain/UseCases/ListRolesUseCase.ts b/src/Role/Domain/UseCases/ListRolesUseCase.ts index e2466f2c..56b1ec59 100644 --- a/src/Role/Domain/UseCases/ListRolesUseCase.ts +++ b/src/Role/Domain/UseCases/ListRolesUseCase.ts @@ -1,13 +1,16 @@ import { ICriteria, IPaginator } from '@digichanges/shared-experience'; -import RoleService from '../Services/RoleService'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IRoleRepository from '../../Infrastructure/Repositories/IRoleRepository'; class ListRolesUseCase { - private roleService = new RoleService(); + @containerFactory(REPOSITORIES.IRoleRepository) + private repository: IRoleRepository; async handle(payload: ICriteria): Promise { - return await this.roleService.list(payload); + return await this.repository.list(payload); } } diff --git a/src/Role/Domain/UseCases/RemoveRoleUseCase.ts b/src/Role/Domain/UseCases/RemoveRoleUseCase.ts index 84c6b05d..abd4f9ac 100644 --- a/src/Role/Domain/UseCases/RemoveRoleUseCase.ts +++ b/src/Role/Domain/UseCases/RemoveRoleUseCase.ts @@ -1,15 +1,17 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; -import RoleService from '../Services/RoleService'; +import IRoleDomain from '../Entities/IRoleDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IRoleRepository from '../../Infrastructure/Repositories/IRoleRepository'; class RemoveRoleUseCase { - private roleService = new RoleService(); + @containerFactory(REPOSITORIES.IRoleRepository) + private repository: IRoleRepository; async handle(payload: IdPayload): Promise { - const id = payload.getId(); - return await this.roleService.remove(id); + return await this.repository.delete(payload.id); } } diff --git a/src/Role/Domain/UseCases/SaveRoleUseCase.ts b/src/Role/Domain/UseCases/SaveRoleUseCase.ts index d0aea18d..1c9deadd 100644 --- a/src/Role/Domain/UseCases/SaveRoleUseCase.ts +++ b/src/Role/Domain/UseCases/SaveRoleUseCase.ts @@ -1,14 +1,20 @@ -import RoleRepPayload from '../../InterfaceAdapters/Payloads/RoleRepPayload'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; -import RoleService from '../Services/RoleService'; +import RoleRepPayload from '../Payloads/RoleRepPayload'; +import IRoleDomain from '../Entities/IRoleDomain'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import IRoleRepository from '../../Infrastructure/Repositories/IRoleRepository'; +import Role from '../Entities/Role'; class SaveRoleUseCase { - private roleService = new RoleService(); + @containerFactory(REPOSITORIES.IRoleRepository) + private repository: IRoleRepository; async handle(payload: RoleRepPayload): Promise { - return await this.roleService.create(payload); + const role = new Role(payload); + + return await this.repository.save(role); } } diff --git a/src/Role/Domain/UseCases/UpdateRoleUseCase.ts b/src/Role/Domain/UseCases/UpdateRoleUseCase.ts index 11cb1a06..2a19b1e4 100644 --- a/src/Role/Domain/UseCases/UpdateRoleUseCase.ts +++ b/src/Role/Domain/UseCases/UpdateRoleUseCase.ts @@ -1,14 +1,20 @@ -import RoleUpdatePayload from '../../InterfaceAdapters/Payloads/RoleUpdatePayload'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; -import RoleService from '../Services/RoleService'; +import RoleUpdatePayload from '../Payloads/RoleUpdatePayload'; +import IRoleDomain from '../Entities/IRoleDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IRoleRepository from '../../Infrastructure/Repositories/IRoleRepository'; class UpdateRoleUseCase { - private roleService = new RoleService(); + @containerFactory(REPOSITORIES.IRoleRepository) + private repository: IRoleRepository; async handle(payload: RoleUpdatePayload): Promise { - return await this.roleService.update(payload); + const role: IRoleDomain = await this.repository.getOne(payload.id); + role.updateBuild(payload); + + return await this.repository.update(role); } } diff --git a/src/Role/InterfaceAdapters/IRoleRepository.ts b/src/Role/Infrastructure/Repositories/IRoleRepository.ts similarity index 66% rename from src/Role/InterfaceAdapters/IRoleRepository.ts rename to src/Role/Infrastructure/Repositories/IRoleRepository.ts index f2f86c20..631ab496 100644 --- a/src/Role/InterfaceAdapters/IRoleRepository.ts +++ b/src/Role/Infrastructure/Repositories/IRoleRepository.ts @@ -1,5 +1,5 @@ -import IBaseRepository from '../../App/InterfaceAdapters/IBaseRepository'; -import IRoleDomain from './IRoleDomain'; +import IBaseRepository from '../../../App/InterfaceAdapters/IBaseRepository'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; interface IRoleRepository extends IBaseRepository diff --git a/src/Role/Infrastructure/Repositories/RoleMikroSqlRepository.ts b/src/Role/Infrastructure/Repositories/RoleMikroSqlRepository.ts index dc43e609..7f6f3fe2 100644 --- a/src/Role/Infrastructure/Repositories/RoleMikroSqlRepository.ts +++ b/src/Role/Infrastructure/Repositories/RoleMikroSqlRepository.ts @@ -2,11 +2,11 @@ import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import RoleFilter from '../../Presentation/Criterias/RoleFilter'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import Role from '../../Domain/Entities/Role'; import RoleOfSystemNotDeletedException from '../../Domain/Exceptions/RoleOfSystemNotDeletedException'; import NotFoundException from '../../../Shared/Exceptions/NotFoundException'; -import IRoleRepository from '../../InterfaceAdapters/IRoleRepository'; +import IRoleRepository from './IRoleRepository'; import BaseMikroSqlRepository from '../../../App/Infrastructure/Repositories/BaseMikroSqlRepository'; import RoleSchema from '../Schemas/RoleMikroORM'; import MikroPaginator from '../../../App/Presentation/Shared/MikroPaginator'; diff --git a/src/Role/Infrastructure/Repositories/RoleMongoRepository.ts b/src/Role/Infrastructure/Repositories/RoleMongoRepository.ts index 64a61899..ab4ff45c 100644 --- a/src/Role/Infrastructure/Repositories/RoleMongoRepository.ts +++ b/src/Role/Infrastructure/Repositories/RoleMongoRepository.ts @@ -1,12 +1,12 @@ -import IRoleRepository from '../../InterfaceAdapters/IRoleRepository'; +import IRoleRepository from './IRoleRepository'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import MongoPaginator from '../../../App/Presentation/Shared/MongoPaginator'; import RoleFilter from '../../Presentation/Criterias/RoleFilter'; import { Query } from 'mongoose'; -import IRole from '../../InterfaceAdapters/IRoleDocument'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRole from '../Schemas/IRoleDocument'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import Roles from '../../../Config/Roles'; import BaseMongoRepository from '../../../App/Infrastructure/Repositories/BaseMongoRepository'; @@ -42,16 +42,16 @@ class RoleMongoRepository extends BaseMongoRepository implem if (filter.has(RoleFilter.NAME)) { const name = filter.get(RoleFilter.NAME); - const rsearch = new RegExp(name, 'g'); + const rSearch = new RegExp(name, 'g'); - void queryBuilder.where(RoleFilter.NAME).regex(rsearch); + void queryBuilder.where(RoleFilter.NAME).regex(rSearch); } if (filter.has(RoleFilter.SLUG)) { const slug = filter.get(RoleFilter.SLUG); - const rsearch = new RegExp(slug, 'g'); + const rSearch = new RegExp(slug, 'g'); - void queryBuilder.where(RoleFilter.SLUG).regex(rsearch); + void queryBuilder.where(RoleFilter.SLUG).regex(rSearch); } void queryBuilder.where(RoleFilter.SLUG).ne(Roles.SUPER_ADMIN.toLowerCase()); diff --git a/src/Role/Infrastructure/Repositories/RoleSqlRepository.ts b/src/Role/Infrastructure/Repositories/RoleSqlRepository.ts index e511c391..d91b5233 100644 --- a/src/Role/Infrastructure/Repositories/RoleSqlRepository.ts +++ b/src/Role/Infrastructure/Repositories/RoleSqlRepository.ts @@ -1,10 +1,10 @@ -import IRoleRepository from '../../InterfaceAdapters/IRoleRepository'; +import IRoleRepository from './IRoleRepository'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import Paginator from '../../../App/Presentation/Shared/Paginator'; import RoleFilter from '../../Presentation/Criterias/RoleFilter'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import BaseSqlRepository from '../../../App/Infrastructure/Repositories/BaseSqlRepository'; import Role from '../../Domain/Entities/Role'; import RoleSchema from '../Schemas/RoleTypeORM'; diff --git a/src/Role/InterfaceAdapters/IRoleDocument.ts b/src/Role/Infrastructure/Schemas/IRoleDocument.ts similarity index 67% rename from src/Role/InterfaceAdapters/IRoleDocument.ts rename to src/Role/Infrastructure/Schemas/IRoleDocument.ts index 538fb38f..9562362f 100644 --- a/src/Role/InterfaceAdapters/IRoleDocument.ts +++ b/src/Role/Infrastructure/Schemas/IRoleDocument.ts @@ -1,5 +1,5 @@ import { Document } from 'mongoose'; -import IRoleDomain from './IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; interface IRoleDocument extends Document, IRoleDomain {} diff --git a/src/Role/InterfaceAdapters/Payloads/RoleRepPayload.ts b/src/Role/InterfaceAdapters/Payloads/RoleRepPayload.ts deleted file mode 100644 index 79e7706a..00000000 --- a/src/Role/InterfaceAdapters/Payloads/RoleRepPayload.ts +++ /dev/null @@ -1,10 +0,0 @@ - -interface RoleRepPayload -{ - getName(): string; - getSlug(): string; - getPermissions(): string[]; - getEnable(): boolean; -} - -export default RoleRepPayload; diff --git a/src/Role/Presentation/Commands/AddRoleCommand.ts b/src/Role/Presentation/Commands/AddRoleCommand.ts index 9b01a6fb..39b8011e 100644 --- a/src/Role/Presentation/Commands/AddRoleCommand.ts +++ b/src/Role/Presentation/Commands/AddRoleCommand.ts @@ -1,8 +1,8 @@ import Logger from '../../../Shared/Logger/Logger'; import commander from 'commander'; -import RoleRepPayload from '../../InterfaceAdapters/Payloads/RoleRepPayload'; -import RoleCommandRepRequest from '../Requests/RoleUserCommandRepRequest'; +import RoleRepPayload from '../../Domain/Payloads/RoleRepPayload'; import SaveRoleUseCase from '../../Domain/UseCases/SaveRoleUseCase'; +import RoleRepRequest from '../Requests/RoleRepRequest'; const AddRoleCommand = new commander.Command('addRole'); @@ -15,7 +15,7 @@ AddRoleCommand { const saveRoleUseCase = new SaveRoleUseCase(); - const roleCommandRepRequest: RoleRepPayload = new RoleCommandRepRequest(env); + const roleCommandRepRequest: RoleRepPayload = new RoleRepRequest(env); const role = await saveRoleUseCase.handle(roleCommandRepRequest); if (role) diff --git a/src/Role/Presentation/Controllers/RoleController.ts b/src/Role/Presentation/Controllers/RoleController.ts index cffd2302..35303730 100644 --- a/src/Role/Presentation/Controllers/RoleController.ts +++ b/src/Role/Presentation/Controllers/RoleController.ts @@ -4,12 +4,12 @@ import SaveRoleUseCase from '../../Domain/UseCases/SaveRoleUseCase'; import ListRolesUseCase from '../../Domain/UseCases/ListRolesUseCase'; import GetRoleUseCase from '../../Domain/UseCases/GetRoleUseCase'; import RemoveRoleUseCase from '../../Domain/UseCases/RemoveRoleUseCase'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import UpdateRoleUseCase from '../../Domain/UseCases/UpdateRoleUseCase'; import ValidatorRequest from '../../../App/Presentation/Shared/ValidatorRequest'; -import RoleRepPayload from '../../InterfaceAdapters/Payloads/RoleRepPayload'; +import RoleRepPayload from '../../Domain/Payloads/RoleRepPayload'; import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import RoleUpdatePayload from '../../InterfaceAdapters/Payloads/RoleUpdatePayload'; +import RoleUpdatePayload from '../../Domain/Payloads/RoleUpdatePayload'; class RoleController { diff --git a/src/Role/Presentation/Handlers/Express/RoleHandler.ts b/src/Role/Presentation/Handlers/Express/RoleHandler.ts index 5272b06c..00494180 100644 --- a/src/Role/Presentation/Handlers/Express/RoleHandler.ts +++ b/src/Role/Presentation/Handlers/Express/RoleHandler.ts @@ -13,7 +13,7 @@ import RoleUpdateRequest from '../../Requests/RoleUpdateRequest'; import AuthorizeMiddleware from '../../../../Auth/Presentation/Middlewares/Express/AuthorizeMiddleware'; import Permissions from '../../../../Config/Permissions'; -import IRoleDomain from '../../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../../Domain/Entities/IRoleDomain'; import RoleController from '../../Controllers/RoleController'; @controller('/api/roles') diff --git a/src/Role/Presentation/Handlers/Koa/RoleHandler.ts b/src/Role/Presentation/Handlers/Koa/RoleHandler.ts index 3b27dbac..72298f39 100644 --- a/src/Role/Presentation/Handlers/Koa/RoleHandler.ts +++ b/src/Role/Presentation/Handlers/Koa/RoleHandler.ts @@ -4,7 +4,7 @@ import { IPaginator, StatusCode } from '@digichanges/shared-experience'; import Responder from '../../../../App/Presentation/Shared/Koa/Responder'; import IdRequest from '../../../../App/Presentation/Requests/IdRequest'; import RoleRepRequest from '../../Requests/RoleRepRequest'; -import IRoleDomain from '../../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../../Domain/Entities/IRoleDomain'; import RoleTransformer from '../../Transformers/RoleTransformer'; import RoleRequestCriteria from '../../Requests/RoleRequestCriteria'; import RoleUpdateRequest from '../../Requests/RoleUpdateRequest'; diff --git a/src/Role/Presentation/Requests/RoleRepRequest.ts b/src/Role/Presentation/Requests/RoleRepRequest.ts index 9942ac15..831b3de2 100644 --- a/src/Role/Presentation/Requests/RoleRepRequest.ts +++ b/src/Role/Presentation/Requests/RoleRepRequest.ts @@ -1,53 +1,50 @@ -import RoleRepPayload from '../../InterfaceAdapters/Payloads/RoleRepPayload'; +import RoleRepPayload from '../../Domain/Payloads/RoleRepPayload'; import { IsArray, IsBoolean, IsOptional, IsString, Length } from 'class-validator'; import { decorate } from 'ts-mixer'; class RoleRepRequest implements RoleRepPayload { - @decorate(Length(3, 30)) - @decorate(IsString()) - name: string; - - @decorate(Length(3, 30)) - @decorate(IsString()) - slug: string; - - @decorate(IsArray()) - @decorate(IsString({ - each: true - })) - permissions: string[]; - - @decorate(IsOptional()) - @decorate(IsBoolean()) - enable: boolean; + private readonly _name: string; + private readonly _slug: string; + protected _permissions: string[]; + private readonly _enable: boolean; constructor(data: Record) { - this.name = data.name; - this.slug = data.slug; - this.permissions = data.permissions; - this.enable = data.enable ?? true; + this._name = data.name; + this._slug = data?.slug?.toLowerCase() ?? data?.name?.toLowerCase(); + this._permissions = data.permissions ?? []; + this._enable = data.enable ?? true; } - getName(): string + @decorate(Length(3, 30)) + @decorate(IsString()) + get name(): string { - return this.name; + return this._name; } - getSlug(): string + @decorate(Length(3, 30)) + @decorate(IsString()) + get slug(): string { - return this.slug; + return this._slug; } - getPermissions(): string[] + @decorate(IsArray()) + @decorate(IsString({ + each: true + })) + get permissions(): string[] { - return this.permissions; + return this._permissions; } - getEnable(): boolean + @decorate(IsOptional()) + @decorate(IsBoolean()) + get enable(): boolean { - return this.enable; + return this._enable; } } diff --git a/src/Role/Presentation/Requests/RoleUpdateRequest.ts b/src/Role/Presentation/Requests/RoleUpdateRequest.ts index 2e847233..991bb5c7 100644 --- a/src/Role/Presentation/Requests/RoleUpdateRequest.ts +++ b/src/Role/Presentation/Requests/RoleUpdateRequest.ts @@ -1,14 +1,26 @@ import { decorate, Mixin } from 'ts-mixer'; -import RoleUpdatePayload from '../../InterfaceAdapters/Payloads/RoleUpdatePayload'; +import RoleUpdatePayload from '../../Domain/Payloads/RoleUpdatePayload'; import IdRequest from '../../../App/Presentation/Requests/IdRequest'; import RoleRepRequest from './RoleRepRequest'; +import { ArrayMinSize, IsArray, IsString } from 'class-validator'; class RoleUpdateRequest extends Mixin(RoleRepRequest, IdRequest) implements RoleUpdatePayload { constructor(data: Record, id: string) { super(data); - this.id = id; + this._id = id; + this._permissions = data.permissions; + } + + @decorate(ArrayMinSize(1)) + @decorate(IsArray()) + @decorate(IsString({ + each: true + })) + get permissions(): string[] + { + return this._permissions; } } diff --git a/src/Role/Presentation/Requests/RoleUserCommandRepRequest.ts b/src/Role/Presentation/Requests/RoleUserCommandRepRequest.ts deleted file mode 100644 index 18956f22..00000000 --- a/src/Role/Presentation/Requests/RoleUserCommandRepRequest.ts +++ /dev/null @@ -1,51 +0,0 @@ -import RoleRepPayload from '../../InterfaceAdapters/Payloads/RoleRepPayload'; -import { IsArray, IsBoolean, IsOptional, IsString } from 'class-validator'; - -class RoleCommandRepRequest implements RoleRepPayload -{ - @IsString() - name: string; - - @IsString() - slug: string; - - @IsArray() - @IsString({ - each: true - }) - permissions: string[]; - - @IsOptional() - @IsBoolean() - enable: boolean; - - constructor(env: any) - { - this.name = env.role; - this.slug = env.role.toLowerCase(); - this.permissions = []; - this.enable = true; - } - - getName(): string - { - return this.name; - } - - getSlug(): string - { - return this.slug; - } - - getEnable(): boolean - { - return this.enable; - } - - getPermissions(): any[] - { - return []; - } -} - -export default RoleCommandRepRequest; diff --git a/src/Role/Presentation/Transformers/IRoleTransformer.ts b/src/Role/Presentation/Transformers/IRoleTransformer.ts index 1665ee34..496bfafb 100644 --- a/src/Role/Presentation/Transformers/IRoleTransformer.ts +++ b/src/Role/Presentation/Transformers/IRoleTransformer.ts @@ -1,5 +1,5 @@ import BaseTransformer, { BasePropertiesTransformer } from '../../../App/Presentation/Transformers/BaseTransformer'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; type IRoleTransformer = BaseTransformer & BasePropertiesTransformer; diff --git a/src/Role/Presentation/Transformers/RoleTransformer.ts b/src/Role/Presentation/Transformers/RoleTransformer.ts index 3e6e6ee0..e145ec9f 100644 --- a/src/Role/Presentation/Transformers/RoleTransformer.ts +++ b/src/Role/Presentation/Transformers/RoleTransformer.ts @@ -1,7 +1,7 @@ import moment from 'moment'; import { Transformer } from '@digichanges/shared-experience'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import IRoleTransformer from './IRoleTransformer'; class RoleTransformer extends Transformer diff --git a/src/Role/Presentation/Transformers/RoleUserTransformer.ts b/src/Role/Presentation/Transformers/RoleUserTransformer.ts index 3557c075..f415c292 100644 --- a/src/Role/Presentation/Transformers/RoleUserTransformer.ts +++ b/src/Role/Presentation/Transformers/RoleUserTransformer.ts @@ -1,7 +1,7 @@ import moment from 'moment'; import { Transformer } from '@digichanges/shared-experience'; -import IRoleDomain from '../../InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../Domain/Entities/IRoleDomain'; import IRoleTransformer from './IRoleTransformer'; class RoleUserTransformer extends Transformer diff --git a/src/Role/Tests/role.handler.spec.ts b/src/Role/Tests/role.handler.spec.ts index 1fe266ba..7a0da284 100644 --- a/src/Role/Tests/role.handler.spec.ts +++ b/src/Role/Tests/role.handler.spec.ts @@ -60,11 +60,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.slug).toStrictEqual(payload.slug); @@ -89,11 +87,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.slug).toStrictEqual(payload.slug); @@ -118,11 +114,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.slug).toStrictEqual(payload.slug); @@ -147,11 +141,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.name).toStrictEqual(payload.name); expect(data.slug).toStrictEqual(payload.slug); @@ -174,11 +166,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.slug).toStrictEqual(payload.slug); @@ -207,11 +197,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = deleteResponse; + const { body: { data } } = deleteResponse; expect(deleteResponse.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.name).toStrictEqual(payload.name); expect(data.slug).toStrictEqual(payload.slug); @@ -229,14 +217,12 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.length).toStrictEqual(5); - expect(pagination.total).toStrictEqual(6); + expect(pagination.total).toStrictEqual(7); expect(pagination.perPage).toStrictEqual(5); expect(pagination.currentPage).toStrictEqual(1); expect(pagination.lastPage).toStrictEqual(2); @@ -258,13 +244,11 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); - expect(data.length).toStrictEqual(6); + expect(data.length).toStrictEqual(7); expect(pagination).not.toBeDefined(); }); @@ -276,11 +260,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.length).toStrictEqual(1); expect(pagination.total).toStrictEqual(1); @@ -294,14 +276,12 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data: [role1, role2] } } = response; + const { body: { data: [role1, role2] } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); - expect(role1.slug).toStrictEqual('role3testupdate'); - expect(role2.slug).toStrictEqual('role2test'); + expect(role1.slug).toStrictEqual('superAdmin'); + expect(role2.slug).toStrictEqual('role3testupdate'); }); test('Sync roles permissions /sync-roles-permissions', async() => @@ -341,8 +321,7 @@ describe('Start Role Test', () => test('Add Role /roles', async() => { const payload = { - name: 'Role 2', - type: 'Role 1' + firstName: 'Role 2' }; const response: IRoleResponse = await request @@ -351,16 +330,14 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); - expect(error.property).toStrictEqual('slug'); + expect(error.property).toStrictEqual('name'); expect(error.constraints.isString).toBeDefined(); - expect(error.constraints.isString).toStrictEqual('slug must be a string'); + expect(error.constraints.isString).toStrictEqual('name must be a string'); }); test('Get Role /roles/:id', async() => @@ -371,11 +348,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(error.property).toStrictEqual('id'); @@ -397,20 +372,18 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, message, errors: [error1, error2] } } = response; + const { body: { message, errors: [error1, error2] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); - expect(error1.property).toStrictEqual('name'); - expect(error1.constraints.isString).toBeDefined(); - expect(error1.constraints.isString).toStrictEqual('name must be a string'); + expect(error1.property).toStrictEqual('permissions'); + expect(error1.constraints.isArray).toBeDefined(); + expect(error1.constraints.isArray).toStrictEqual('permissions must be an array'); - expect(error2.property).toStrictEqual('permissions'); - expect(error2.constraints.isArray).toBeDefined(); - expect(error2.constraints.isArray).toStrictEqual('permissions must be an array'); + expect(error2.property).toStrictEqual('name'); + expect(error2.constraints.isString).toBeDefined(); + expect(error2.constraints.isString).toStrictEqual('name must be a string'); }); test('Delete Role error /roles/:id', async() => @@ -421,11 +394,9 @@ describe('Start Role Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, message } } = deleteErrorResponse; + const { body: { message } } = deleteErrorResponse; expect(deleteErrorResponse.statusCode).toStrictEqual(400); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_BAD_REQUEST'); expect(message).toStrictEqual('Role not found.'); }); }); diff --git a/src/Shared/Database/MikroORMCreateConnection.ts b/src/Shared/Database/MikroORMCreateConnection.ts index c499254e..a5148064 100644 --- a/src/Shared/Database/MikroORMCreateConnection.ts +++ b/src/Shared/Database/MikroORMCreateConnection.ts @@ -5,7 +5,7 @@ import Role from '../../Role/Infrastructure/Schemas/RoleMikroORM'; import Item from '../../Item/Infrastructure/Schemas/ItemMikroORM'; import File from '../../File/Infrastructure/Schemas/FileMikroORM'; // import Notification from '../../Notification/Infrastructure/Schemas/NotificationMikroORM'; -// import TokenSchema from '../../Auth/Infrastructure/Schemas/TokenMikroORM'; +// import TokenSchema from '../../AuthHelper/Infrastructure/Schemas/TokenMikroORM'; export let orm: MikroORM = null; diff --git a/src/Shared/Database/MongooseCreateConnection.ts b/src/Shared/Database/MongooseCreateConnection.ts index 06f5f1b2..026e1027 100644 --- a/src/Shared/Database/MongooseCreateConnection.ts +++ b/src/Shared/Database/MongooseCreateConnection.ts @@ -2,12 +2,12 @@ import mongoose from 'mongoose'; import MainConfig from '../../Config/mainConfig'; import { ICreateConnection } from '@digichanges/shared-experience'; -import IUserDocument from '../../User/InterfaceAdapters/IUserDocument'; -import IRoleDocument from '../../Role/InterfaceAdapters/IRoleDocument'; -import IItemDocument from '../../Item/InterfaceAdapters/IItemDocument'; +import IUserDocument from '../../User/Infrastructure/Schemas/IUserDocument'; +import IRoleDocument from '../../Role/Infrastructure/Schemas/IRoleDocument'; +import IItemDocument from '../../Item/Infrastructure/Schemas/IItemDocument'; import IFileDocument from '../../File/Infrastructure/Schemas/IFileDocument'; import INotificationDocument from '../../Notification/InterfaceAdapters/INotificationDocument'; -import ITokenDocument from '../../Auth/InterfaceAdapters/ITokenDocument'; +import ITokenDocument from '../../Auth/Infrastructure/Schemas/ITokenDocument'; import ItemSchema from '../../Item/Infrastructure/Schemas/ItemMongoose'; diff --git a/src/Shared/Decorators/ContainerFactory.ts b/src/Shared/Decorators/ContainerFactory.ts index 65c0d14d..98e38672 100644 --- a/src/Shared/Decorators/ContainerFactory.ts +++ b/src/Shared/Decorators/ContainerFactory.ts @@ -1,4 +1,3 @@ -import 'reflect-metadata'; import container from '../../inversify.config'; import { SERVICES_IDENTIFIER } from '../../serviceIdentifier'; import InjectionFactory from '../Factories/InjectionFactory'; diff --git a/src/Shared/Factories/TokenFactory.ts b/src/Shared/Factories/TokenFactory.ts index 67371ac4..1a43d6c8 100644 --- a/src/Shared/Factories/TokenFactory.ts +++ b/src/Shared/Factories/TokenFactory.ts @@ -2,11 +2,11 @@ import MainConfig from '../../Config/mainConfig'; import { v4 as uuidv4 } from 'uuid'; import { ITokenRepository } from '@digichanges/shared-experience'; -import JWTToken from '../../Auth/Shared/JWTToken'; -import IToken from '../../Auth/InterfaceAdapters/IToken'; -import IUserDomain from '../../User/InterfaceAdapters/IUserDomain'; +import JWTToken from '../../Auth/Domain/Models/JWTToken'; +import IToken from '../../Auth/Domain/Models/IToken'; +import IUserDomain from '../../User/Domain/Entities/IUserDomain'; import { REPOSITORIES } from '../../Config/Injects/repositories'; -import ITokenDomain from '../../Auth/InterfaceAdapters/ITokenDomain'; +import ITokenDomain from '../../Auth/Domain/Entities/ITokenDomain'; import Token from '../../Auth/Domain/Entities/Token'; import { containerFactory } from '../Decorators/ContainerFactory'; diff --git a/src/Shared/Filesystem/MinioStrategy.ts b/src/Shared/Filesystem/MinioStrategy.ts index f99f4a45..f85c39f1 100644 --- a/src/Shared/Filesystem/MinioStrategy.ts +++ b/src/Shared/Filesystem/MinioStrategy.ts @@ -81,9 +81,9 @@ class MinioStrategy implements IFilesystem async listObjects(payload: ListObjectsPayload) { - const prefix = payload.getPrefix(); - const recursive = payload.getRecursive(); - const isPrivate = payload.getIsPublic(); + const prefix = payload.prefix; + const recursive = payload.recursive; + const isPrivate = payload.isPublic; const stream = this.#filesystem.listObjectsV2(this.getBucket(null, isPrivate), prefix, recursive); diff --git a/src/Shared/Helpers/AuthHelper.ts b/src/Shared/Helpers/AuthHelper.ts new file mode 100644 index 00000000..10a623b0 --- /dev/null +++ b/src/Shared/Helpers/AuthHelper.ts @@ -0,0 +1,16 @@ +import { isEmpty, intersection } from 'lodash'; +import Permissions from '../../Config/Permissions'; +import WrongPermissionsException from '../../Auth/Domain/Exceptions/WrongPermissionsException'; + +class AuthHelper +{ + static validatePermissions(permissions: string[]): void + { + if (!isEmpty(permissions) && isEmpty(intersection(permissions, Permissions.permissions()))) + { + throw new WrongPermissionsException(); + } + } +} + +export default AuthHelper; diff --git a/src/Shared/InterfaceAdapters/IFormatResponder.ts b/src/Shared/InterfaceAdapters/IFormatResponder.ts index f49a3b7c..3dc0668e 100644 --- a/src/Shared/InterfaceAdapters/IFormatResponder.ts +++ b/src/Shared/InterfaceAdapters/IFormatResponder.ts @@ -1,8 +1,7 @@ -import { IStatusCode } from '@digichanges/shared-experience'; interface IFormatResponder { - getFormatData(data: any, statusCode: IStatusCode, metadata: Record | null): any + getFormatData(data: unknown, metadata: Record | null): any } export default IFormatResponder; diff --git a/src/Shared/InterfaceAdapters/IdPayload.ts b/src/Shared/InterfaceAdapters/IdPayload.ts index 39f9b0af..be251534 100644 --- a/src/Shared/InterfaceAdapters/IdPayload.ts +++ b/src/Shared/InterfaceAdapters/IdPayload.ts @@ -1,8 +1,7 @@ - interface IdPayload { - getId(): string; + id: string; } export default IdPayload; diff --git a/src/Shared/Logger/Logger.ts b/src/Shared/Logger/Logger.ts index e4fca4c3..f4860427 100644 --- a/src/Shared/Logger/Logger.ts +++ b/src/Shared/Logger/Logger.ts @@ -1,19 +1,5 @@ -import pino from 'pino'; -import pretty from 'pino-pretty'; +import { Logger as LoggerTs } from 'tslog'; -const prettyPino = pretty({ - colorize: true, - levelFirst: true, - hideObject: true -}); - -const streams = [ - { level: 'debug', stream: prettyPino }, - { level: 'error', stream: process.stderr } -]; - -const Logger = pino({ - level: 'debug' // this MUST be set at the lowest level of the destinations -}, pino.multistream(streams)); +const Logger = new LoggerTs(); export default Logger; diff --git a/src/User/InterfaceAdapters/IUserDomain.ts b/src/User/Domain/Entities/IUserDomain.ts similarity index 60% rename from src/User/InterfaceAdapters/IUserDomain.ts rename to src/User/Domain/Entities/IUserDomain.ts index ff706246..2e0ec0b2 100644 --- a/src/User/InterfaceAdapters/IUserDomain.ts +++ b/src/User/Domain/Entities/IUserDomain.ts @@ -1,6 +1,7 @@ -import IRoleDomain from '../../Role/InterfaceAdapters/IRoleDomain'; -import IBaseDomain from '../../App/InterfaceAdapters/IBaseDomain'; -import Password from '../../App/Domain/ValueObjects/Password'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; +import IBaseDomain from '../../../App/InterfaceAdapters/IBaseDomain'; +import Password from '../../../App/Domain/ValueObjects/Password'; +import UserRepPayload from '../Payloads/UserRepPayload'; interface IUserDomain extends IBaseDomain { @@ -20,9 +21,10 @@ interface IUserDomain extends IBaseDomain enable: boolean; verify: boolean; isSuperAdmin: boolean; - confirmationToken: string; - passwordRequestedAt: Date; + confirmationToken?: string; + passwordRequestedAt?: Date; + updateRep(payload: UserRepPayload): void; getFullName(): string; setRole(role: IRoleDomain): void; getRoles(): IRoleDomain[]; diff --git a/src/User/Domain/Entities/User.ts b/src/User/Domain/Entities/User.ts index 46163953..f164c9aa 100644 --- a/src/User/Domain/Entities/User.ts +++ b/src/User/Domain/Entities/User.ts @@ -1,9 +1,10 @@ -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; +import IUserDomain from './IUserDomain'; import Base from '../../../App/Domain/Entities/Base'; import Password from '../../../App/Domain/ValueObjects/Password'; +import UserRepPayload from '../Payloads/UserRepPayload'; +import PasswordPayload from '../../../App/Domain/Payloads/PasswordPayload'; -// TODO: check if it is necessary to add a new attribute to know if the user is verified class User extends Base implements IUserDomain { firstName: string; @@ -22,8 +23,40 @@ class User extends Base implements IUserDomain enable: boolean; verify: boolean; isSuperAdmin: boolean; - confirmationToken: string; - passwordRequestedAt: Date; + confirmationToken?: string; + passwordRequestedAt?: Date; + + constructor(payload: UserRepPayload) + { + super(); + this.updateRep(payload); + } + + updateRep(payload: UserRepPayload) + { + this.firstName = payload.firstName; + this.lastName = payload.lastName; + this.email = payload.email; + this.birthday = payload.birthday; + this.documentType = payload.documentType; + this.documentNumber = payload.documentNumber; + this.gender = payload.gender; + this.phone = payload.phone; + this.country = payload.country; + this.address = payload.address; + this.verify = payload.verify ?? false; + this.enable = payload.enable; + this.roles = payload.roles; + this.permissions = payload.permissions; + this.confirmationToken = payload.confirmationToken ?? null; + this.passwordRequestedAt = payload.passwordRequestedAt ?? null; + this.isSuperAdmin = payload.isSuperAdmin; + } + + setPassword(value: Password) + { + this.password = value; + } getFullName(): string { diff --git a/src/User/InterfaceAdapters/Payloads/ChangeMyPasswordPayload.ts b/src/User/Domain/Payloads/ChangeMyPasswordPayload.ts similarity index 88% rename from src/User/InterfaceAdapters/Payloads/ChangeMyPasswordPayload.ts rename to src/User/Domain/Payloads/ChangeMyPasswordPayload.ts index 61966e1e..3b45defb 100644 --- a/src/User/InterfaceAdapters/Payloads/ChangeMyPasswordPayload.ts +++ b/src/User/Domain/Payloads/ChangeMyPasswordPayload.ts @@ -3,7 +3,7 @@ import UserPasswordRepPayload from './UserPasswordPayload'; interface ChangeMyPasswordPayload extends IdPayload, UserPasswordRepPayload { - getCurrentPassword(): string; + currentPassword: string; } export default ChangeMyPasswordPayload; diff --git a/src/User/InterfaceAdapters/Payloads/ChangeUserPasswordPayload.ts b/src/User/Domain/Payloads/ChangeUserPasswordPayload.ts similarity index 100% rename from src/User/InterfaceAdapters/Payloads/ChangeUserPasswordPayload.ts rename to src/User/Domain/Payloads/ChangeUserPasswordPayload.ts diff --git a/src/User/InterfaceAdapters/Payloads/CheckUserRolePayload.ts b/src/User/Domain/Payloads/CheckUserRolePayload.ts similarity index 56% rename from src/User/InterfaceAdapters/Payloads/CheckUserRolePayload.ts rename to src/User/Domain/Payloads/CheckUserRolePayload.ts index 72868898..f2ea7ca7 100644 --- a/src/User/InterfaceAdapters/Payloads/CheckUserRolePayload.ts +++ b/src/User/Domain/Payloads/CheckUserRolePayload.ts @@ -1,8 +1,8 @@ -import IUserDomain from '../IUserDomain'; +import IUserDomain from '../Entities/IUserDomain'; interface CheckUserRolePayload { - role_to_check: string; + roleToCheck: string; user: IUserDomain; } diff --git a/src/User/InterfaceAdapters/Payloads/UserActivePayload.ts b/src/User/Domain/Payloads/UserActivePayload.ts similarity index 73% rename from src/User/InterfaceAdapters/Payloads/UserActivePayload.ts rename to src/User/Domain/Payloads/UserActivePayload.ts index 90024258..5424d22e 100644 --- a/src/User/InterfaceAdapters/Payloads/UserActivePayload.ts +++ b/src/User/Domain/Payloads/UserActivePayload.ts @@ -1,7 +1,7 @@ interface UserActivePayload { - getEmail(): string; + email: string; } export default UserActivePayload; diff --git a/src/User/Domain/Payloads/UserAssignRoleBySlug.ts b/src/User/Domain/Payloads/UserAssignRoleBySlug.ts new file mode 100644 index 00000000..010c331c --- /dev/null +++ b/src/User/Domain/Payloads/UserAssignRoleBySlug.ts @@ -0,0 +1,8 @@ +import UserActivePayload from './UserActivePayload'; + +interface UserAssignRoleBySlug extends UserActivePayload +{ + slugRole: string; +} + +export default UserAssignRoleBySlug; diff --git a/src/User/InterfaceAdapters/Payloads/UserAssignRolePayload.ts b/src/User/Domain/Payloads/UserAssignRolePayload.ts similarity index 85% rename from src/User/InterfaceAdapters/Payloads/UserAssignRolePayload.ts rename to src/User/Domain/Payloads/UserAssignRolePayload.ts index 014bca70..d32bcbec 100644 --- a/src/User/InterfaceAdapters/Payloads/UserAssignRolePayload.ts +++ b/src/User/Domain/Payloads/UserAssignRolePayload.ts @@ -2,7 +2,7 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; interface UserAssignRolePayload extends IdPayload { - getRolesId(): string[]; + rolesId: string[]; } export default UserAssignRolePayload; diff --git a/src/User/InterfaceAdapters/Payloads/UserPasswordPayload.ts b/src/User/Domain/Payloads/UserPasswordPayload.ts similarity index 54% rename from src/User/InterfaceAdapters/Payloads/UserPasswordPayload.ts rename to src/User/Domain/Payloads/UserPasswordPayload.ts index 18ae58ba..148768a0 100644 --- a/src/User/InterfaceAdapters/Payloads/UserPasswordPayload.ts +++ b/src/User/Domain/Payloads/UserPasswordPayload.ts @@ -1,8 +1,8 @@ interface UserPasswordRepPayload { - getPassword(): string; - getPasswordConfirmation(): string; + password: string; + passwordConfirmation: string; } export default UserPasswordRepPayload; diff --git a/src/User/Domain/Payloads/UserRepPayload.ts b/src/User/Domain/Payloads/UserRepPayload.ts new file mode 100644 index 00000000..29101643 --- /dev/null +++ b/src/User/Domain/Payloads/UserRepPayload.ts @@ -0,0 +1,24 @@ +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; + +interface UserRepPayload +{ + firstName: string; + lastName: string; + email: string; + birthday: string; + documentType: string; + documentNumber: string; + gender: string; + phone: string; + country: string; + address: string; + verify?: boolean; + enable: boolean; + roles: IRoleDomain[]; + permissions: string[]; + confirmationToken?: string; + passwordRequestedAt?: null; + isSuperAdmin: boolean; +} + +export default UserRepPayload; diff --git a/src/User/InterfaceAdapters/Payloads/UserSavePayload.ts b/src/User/Domain/Payloads/UserSavePayload.ts similarity index 100% rename from src/User/InterfaceAdapters/Payloads/UserSavePayload.ts rename to src/User/Domain/Payloads/UserSavePayload.ts diff --git a/src/User/InterfaceAdapters/Payloads/UserUpdatePayload.ts b/src/User/Domain/Payloads/UserUpdatePayload.ts similarity index 87% rename from src/User/InterfaceAdapters/Payloads/UserUpdatePayload.ts rename to src/User/Domain/Payloads/UserUpdatePayload.ts index 1dada4f4..d7c80ba1 100644 --- a/src/User/InterfaceAdapters/Payloads/UserUpdatePayload.ts +++ b/src/User/Domain/Payloads/UserUpdatePayload.ts @@ -3,7 +3,7 @@ import UserRepPayload from './UserRepPayload'; interface UserUpdatePayload extends IdPayload, UserRepPayload { - getTokenUserId(): string; + tokenUserId: string; } export default UserUpdatePayload; diff --git a/src/User/Domain/Services/UserService.ts b/src/User/Domain/Services/UserService.ts index 824c591a..e7dcfe63 100644 --- a/src/User/Domain/Services/UserService.ts +++ b/src/User/Domain/Services/UserService.ts @@ -1,23 +1,16 @@ -import { ICriteria, IPaginator } from '@digichanges/shared-experience'; - -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; -import UserRepPayload from '../../InterfaceAdapters/Payloads/UserRepPayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import User from '../Entities/User'; -import IUserRepository from '../../InterfaceAdapters/IUserRepository'; +import IUserDomain from '../Entities/IUserDomain'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; -import CheckUserRolePayload from '../../InterfaceAdapters/Payloads/CheckUserRolePayload'; -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; -import IRoleRepository from '../../../Role/InterfaceAdapters/IRoleRepository'; -import ChangeUserPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeUserPasswordPayload'; -import UserAssignRolePayload from '../../InterfaceAdapters/Payloads/UserAssignRolePayload'; -import UserAssignRoleBySlug from 'User/InterfaceAdapters/Payloads/UserAssignRoleBySlug'; +import CheckUserRolePayload from '../Payloads/CheckUserRolePayload'; +import IRoleRepository from '../../../Role/Infrastructure/Repositories/IRoleRepository'; import Password from '../../../App/Domain/ValueObjects/Password'; import UniqueService from '../../../App/Domain/Services/UniqueService'; import MainConfig from '../../../Config/mainConfig'; -import AuthService from '../../../Auth/Domain/Services/AuthService'; -import UserActivePayload from '../../InterfaceAdapters/Payloads/UserActivePayload'; +import AuthHelper from '../../../Shared/Helpers/AuthHelper'; +import ChangeMyPasswordPayload from '../Payloads/ChangeMyPasswordPayload'; +import User from '../Entities/User'; +import UserSavePayload from '../Payloads/UserSavePayload'; class UserService { @@ -27,124 +20,37 @@ class UserService @containerFactory(REPOSITORIES.IRoleRepository) private roleRepository: IRoleRepository; - private authService = new AuthService(); - - private config = MainConfig.getInstance(); - - async persist(user: IUserDomain, payload: UserRepPayload): Promise + async create(payload: UserSavePayload) { - this.authService.validatePermissions(payload.getPermissions()); + const { minLength, maxLength } = MainConfig.getInstance().getConfig().validationSettings.password; - void await UniqueService.validate({ - repository: REPOSITORIES.IUserRepository, - validate: { - email: payload.getEmail(), - documentNumber: payload.getDocumentNumber() - }, - refValue: user.getId() - }); + const user = new User(payload); + user.setPassword(await (new Password(payload.password, minLength, maxLength)).ready()); - user.firstName = payload.getFirstName(); - user.lastName = payload.getLastName(); - user.enable = payload.getEnable(); - user.email = payload.getEmail(); - user.birthday = payload.getBirthday(); - user.documentType = payload.getDocumentType(); - user.documentNumber = payload.getDocumentNumber(); - user.gender = payload.getGender(); - user.phone = payload.getPhone(); - user.country = payload.getCountry(); - user.address = payload.getAddress(); - user.permissions = payload.getPermissions(); - - return await this.repository.save(user); - } + await this.validate(user); - async create(payload: UserSavePayload): Promise - { - const user = new User(); - - void await UniqueService.validate({ - repository: REPOSITORIES.IUserRepository, - validate: { - email: payload.getEmail(), - documentNumber: payload.getDocumentNumber() - } - }); - - const min = this.config.getConfig().validationSettings.password.minLength; - const max = this.config.getConfig().validationSettings.password.maxLength; - - void await UniqueService.validate({ - repository: REPOSITORIES.IUserRepository, - validate: { - email: payload.getEmail(), - documentNumber: payload.getDocumentNumber() - } - }); - - const password = new Password(payload.getPassword(), min, max); - user.password = await password.ready(); - - user.confirmationToken = await payload.getConfirmationToken(); - user.passwordRequestedAt = payload.getPasswordRequestedAt(); - user.roles = payload.getRoles(); - user.isSuperAdmin = payload.getIsSuperAdmin(); + await this.repository.save(user); - return await this.persist(user, payload); + return user; } async getOne(id: string): Promise { - return await this.repository.getOneBy({ _id : id }, { populate: 'roles' }); + return await this.repository.getOne(id); } - async remove(id: string): Promise + async validate(user: IUserDomain): Promise { - return await this.repository.delete(id); - } - - async list(payload: ICriteria): Promise - { - return await this.repository.list(payload); - } - - async persistPassword(user: IUserDomain, payload: ChangeUserPasswordPayload): Promise - { - const min = this.config.getConfig().validationSettings.password.minLength; - const max = this.config.getConfig().validationSettings.password.maxLength; - - const password = new Password(payload.getPassword(), min, max); - user.password = await password.ready(); - - return await this.repository.update(user); - } - - async assignRole(payload: UserAssignRolePayload): Promise - { - const id = payload.getId(); - const user: IUserDomain = await this.getOne(id); - - user.clearRoles(); - - const roles = await this.roleRepository.getInBy({ _id: payload.getRolesId() }); - - roles.forEach(role => user.setRole(role)); + AuthHelper.validatePermissions(user.permissions); - return await this.repository.save(user); - } - - async assignRoleBySlug(payload: UserAssignRoleBySlug): Promise - { - const email = payload.getEmail(); - const slug = payload.getSlugRole(); - - const user: IUserDomain = await this.repository.getOneByEmail(email); - const role: IRoleDomain = await this.roleRepository.getBySlug(slug); - - user.setRole(role); - - return await this.repository.save(user); + void await UniqueService.validate({ + repository: REPOSITORIES.IUserRepository, + validate: { + email: user.email, + documentNumber: user.documentNumber + }, + refValue: user.getId() + }); } async checkIfUserHasRole(payload: CheckUserRolePayload): Promise @@ -153,7 +59,7 @@ class UserService roles.forEach((role) => { - if (role.slug === payload.role_to_check) + if (role.slug === payload.roleToCheck) { return true; } @@ -162,15 +68,13 @@ class UserService return false; } - async activeUser(payload: UserActivePayload): Promise + async updatePassword(user: IUserDomain, payload: ChangeMyPasswordPayload) { - const email = payload.getEmail(); - const user = await this.repository.getOneByEmail(email); + const { minLength, maxLength } = MainConfig.getInstance().getConfig().validationSettings.password; - user.enable = true; - user.verify = true; + user.password = await (new Password(payload.password, minLength, maxLength)).ready(); - await this.repository.save(user); + return await this.repository.update(user); } } diff --git a/src/User/Domain/UseCases/ActiveUserUseCase.ts b/src/User/Domain/UseCases/ActiveUserUseCase.ts index 7e8c3665..a3208719 100644 --- a/src/User/Domain/UseCases/ActiveUserUseCase.ts +++ b/src/User/Domain/UseCases/ActiveUserUseCase.ts @@ -1,13 +1,22 @@ -import UserActivePayload from '../../InterfaceAdapters/Payloads/UserActivePayload'; -import UserService from '../Services/UserService'; +import UserActivePayload from '../Payloads/UserActivePayload'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; class ActiveUserUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; async handle(payload: UserActivePayload): Promise { - await this.userService.activeUser(payload); + const { email } = payload; + const user = await this.repository.getOneByEmail(email); + + user.enable = true; + user.verify = true; + + await this.repository.save(user); } } diff --git a/src/User/Domain/UseCases/AssignRoleBySlugUseCase.ts b/src/User/Domain/UseCases/AssignRoleBySlugUseCase.ts index a4dde847..9e570e9b 100644 --- a/src/User/Domain/UseCases/AssignRoleBySlugUseCase.ts +++ b/src/User/Domain/UseCases/AssignRoleBySlugUseCase.ts @@ -1,14 +1,30 @@ -import UserAssignRoleBySlug from '../../InterfaceAdapters/Payloads/UserAssignRoleBySlug'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import UserService from '../Services/UserService'; +import UserAssignRoleBySlug from '../Payloads/UserAssignRoleBySlug'; +import IUserDomain from '../Entities/IUserDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; +import IRoleRepository from '../../../Role/Infrastructure/Repositories/IRoleRepository'; class AssignRoleBySlugUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; + + @containerFactory(REPOSITORIES.IRoleRepository) + private roleRepository: IRoleRepository; async handle(payload: UserAssignRoleBySlug): Promise { - return await this.userService.assignRoleBySlug(payload); + const { email, slugRole } = payload; + + const [user, role] = await Promise.all([ + this.repository.getOneByEmail(email), + await this.roleRepository.getBySlug(slugRole) + ]); + + user.setRole(role); + + return await this.repository.save(user); } } diff --git a/src/User/Domain/UseCases/AssignRoleUseCase.ts b/src/User/Domain/UseCases/AssignRoleUseCase.ts index f225eff7..9c43c5df 100644 --- a/src/User/Domain/UseCases/AssignRoleUseCase.ts +++ b/src/User/Domain/UseCases/AssignRoleUseCase.ts @@ -1,14 +1,30 @@ -import UserAssignRolePayload from '../../InterfaceAdapters/Payloads/UserAssignRolePayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import UserService from '../Services/UserService'; +import UserAssignRolePayload from '../Payloads/UserAssignRolePayload'; +import IUserDomain from '../Entities/IUserDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; +import IRoleRepository from '../../../Role/Infrastructure/Repositories/IRoleRepository'; class AssignRoleUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; + + @containerFactory(REPOSITORIES.IRoleRepository) + private roleRepository: IRoleRepository; async handle(payload: UserAssignRolePayload): Promise { - return await this.userService.assignRole(payload); + const { id } = payload; + const user: IUserDomain = await this.repository.getOne(id); + + user.clearRoles(); + + const roles = await this.roleRepository.getInBy({ _id: payload.rolesId }); + + roles.forEach(role => user.setRole(role)); + + return await this.repository.save(user); } } diff --git a/src/User/Domain/UseCases/ChangeMyPasswordUseCase.ts b/src/User/Domain/UseCases/ChangeMyPasswordUseCase.ts index 721eee4f..bb614f28 100644 --- a/src/User/Domain/UseCases/ChangeMyPasswordUseCase.ts +++ b/src/User/Domain/UseCases/ChangeMyPasswordUseCase.ts @@ -1,37 +1,24 @@ -import ChangeMyPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeMyPasswordPayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import ChangeMyPasswordPayload from '../Payloads/ChangeMyPasswordPayload'; +import IUserDomain from '../Entities/IUserDomain'; import PasswordWrongException from '../../../Auth/Domain/Exceptions/PasswordWrongException'; -import Password from '../../../App/Domain/ValueObjects/Password'; import EncryptionFactory from '../../../Shared/Factories/EncryptionFactory'; -import MainConfig from '../../../Config/mainConfig'; import UserService from '../Services/UserService'; class ChangeMyPasswordUseCase { - private userService = new UserService(); - private encryption = EncryptionFactory.create(); + private userService = new UserService(); async handle(payload: ChangeMyPasswordPayload): Promise { - const config = MainConfig.getInstance(); + const user: IUserDomain = await this.userService.getOne(payload.id); - const id = payload.getId(); - const user: IUserDomain = await this.userService.getOne(id); - - if (! await this.encryption.compare(payload.getCurrentPassword(), user.password.toString())) + if (! await this.encryption.compare(payload.currentPassword, user.password.toString())) { throw new PasswordWrongException(); } - const min = config.getConfig().validationSettings.password.minLength; - const max = config.getConfig().validationSettings.password.maxLength; - - const password = new Password(payload.getPassword(), min, max); - await password.ready(); - user.password = password; - - return await this.userService.persistPassword(user, payload); + return await this.userService.updatePassword(user, payload); } } diff --git a/src/User/Domain/UseCases/ChangeUserPasswordUseCase.ts b/src/User/Domain/UseCases/ChangeUserPasswordUseCase.ts index 8f0c99f1..712fa065 100644 --- a/src/User/Domain/UseCases/ChangeUserPasswordUseCase.ts +++ b/src/User/Domain/UseCases/ChangeUserPasswordUseCase.ts @@ -1,28 +1,26 @@ -import ChangeUserPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeUserPasswordPayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import ChangeUserPasswordPayload from '../Payloads/ChangeUserPasswordPayload'; +import IUserDomain from '../Entities/IUserDomain'; import Password from '../../../App/Domain/ValueObjects/Password'; import MainConfig from '../../../Config/mainConfig'; -import UserService from '../Services/UserService'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; class ChangeUserPasswordUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; async handle(payload: ChangeUserPasswordPayload): Promise { - const config = MainConfig.getInstance(); + const { id } = payload; + const user: IUserDomain = await this.repository.getOne(id); - const id = payload.getId(); - const user: IUserDomain = await this.userService.getOne(id); + const { minLength, maxLength } = MainConfig.getInstance().getConfig().validationSettings.password; - const min = config.getConfig().validationSettings.password.minLength; - const max = config.getConfig().validationSettings.password.maxLength; + user.password = await (new Password(payload.password, minLength, maxLength)).ready(); - const password = new Password(payload.getPassword(), min, max); - await password.ready(); - user.password = password; - - return await this.userService.persistPassword(user, payload); + return await this.repository.update(user); } } diff --git a/src/User/Domain/UseCases/GetUserUseCase.ts b/src/User/Domain/UseCases/GetUserUseCase.ts index 34d2ba6c..e819eb10 100644 --- a/src/User/Domain/UseCases/GetUserUseCase.ts +++ b/src/User/Domain/UseCases/GetUserUseCase.ts @@ -1,15 +1,17 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import UserService from '../Services/UserService'; +import IUserDomain from '../Entities/IUserDomain'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; class GetUserUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; async handle(payload: IdPayload): Promise { - const id = payload.getId(); - return await this.userService.getOne(id); + return this.repository.getOne(payload.id); } } diff --git a/src/User/Domain/UseCases/ListUsersUseCase.ts b/src/User/Domain/UseCases/ListUsersUseCase.ts index 42459b4d..f05d5749 100644 --- a/src/User/Domain/UseCases/ListUsersUseCase.ts +++ b/src/User/Domain/UseCases/ListUsersUseCase.ts @@ -1,13 +1,16 @@ import { ICriteria, IPaginator } from '@digichanges/shared-experience'; -import UserService from '../Services/UserService'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; class ListUsersUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; async handle(payload: ICriteria): Promise { - return await this.userService.list(payload); + return await this.repository.list(payload); } } diff --git a/src/User/Domain/UseCases/RemoveUserUseCase.ts b/src/User/Domain/UseCases/RemoveUserUseCase.ts index 90e7b500..2620f305 100644 --- a/src/User/Domain/UseCases/RemoveUserUseCase.ts +++ b/src/User/Domain/UseCases/RemoveUserUseCase.ts @@ -1,15 +1,18 @@ import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import UserService from '../Services/UserService'; +import IUserDomain from '../Entities/IUserDomain'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; class RemoveUserUseCase { - private userService = new UserService(); + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; async handle(payload: IdPayload): Promise { - const id = payload.getId(); - return await this.userService.remove(id); + const { id } = payload; + return await this.repository.delete(id); } } diff --git a/src/User/Domain/UseCases/SaveUserUseCase.ts b/src/User/Domain/UseCases/SaveUserUseCase.ts index b8f80842..2725ab2a 100644 --- a/src/User/Domain/UseCases/SaveUserUseCase.ts +++ b/src/User/Domain/UseCases/SaveUserUseCase.ts @@ -1,18 +1,17 @@ -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../Entities/IUserDomain'; import EventHandler from '../../../Shared/Events/EventHandler'; import UserCreatedEvent from '../../../Shared/Events/UserCreatedEvent'; -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; +import UserSavePayload from '../Payloads/UserSavePayload'; import UserService from '../Services/UserService'; class SaveUserUseCase { private userService = new UserService(); - private eventHandler = EventHandler.getInstance(); async handle(payload: UserSavePayload): Promise { - const user = await this.userService.create(payload); + const user: IUserDomain = await this.userService.create(payload); await this.eventHandler.execute(UserCreatedEvent.USER_CREATED_EVENT, { email: user.email }); diff --git a/src/User/Domain/UseCases/UpdateUserUseCase.ts b/src/User/Domain/UseCases/UpdateUserUseCase.ts index 413d1ebe..bbe2ce18 100644 --- a/src/User/Domain/UseCases/UpdateUserUseCase.ts +++ b/src/User/Domain/UseCases/UpdateUserUseCase.ts @@ -1,21 +1,27 @@ -import UserUpdatePayload from '../../InterfaceAdapters/Payloads/UserUpdatePayload'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import CheckUserRolePayload from '../../InterfaceAdapters/Payloads/CheckUserRolePayload'; +import UserUpdatePayload from '../Payloads/UserUpdatePayload'; +import IUserDomain from '../Entities/IUserDomain'; +import CheckUserRolePayload from '../Payloads/CheckUserRolePayload'; import Roles from '../../../Config/Roles'; import CantDisabledException from '../../../Auth/Domain/Exceptions/CantDisabledException'; import UserService from '../Services/UserService'; +import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; +import { REPOSITORIES } from '../../../Config/Injects/repositories'; +import IUserRepository from '../../Infrastructure/Repositories/IUserRepository'; class UpdateUserUseCase { + @containerFactory(REPOSITORIES.IUserRepository) + private repository: IUserRepository; + private userService = new UserService(); async handle(payload: UserUpdatePayload): Promise { - const id = payload.getId(); - const user: IUserDomain = await this.userService.getOne(id); - let enable = payload.getEnable(); + const { id } = payload; + const user: IUserDomain = await this.repository.getOneBy({ _id : id }, { populate: 'roles' }); + let enable = payload.enable; - if (payload.getTokenUserId() === user.getId()) + if (payload.tokenUserId === user.getId()) { enable = true; } @@ -23,7 +29,7 @@ class UpdateUserUseCase if (typeof user.roles !== 'undefined' && enable !== null) // TODO: Refactoring { const checkRole: CheckUserRolePayload = { - role_to_check: Roles.SUPER_ADMIN.toLocaleLowerCase(), + roleToCheck: Roles.SUPER_ADMIN.toLocaleLowerCase(), user }; @@ -35,7 +41,11 @@ class UpdateUserUseCase } } - return await this.userService.persist(user, payload); + user.updateRep(payload); + await this.userService.validate(user); + await this.repository.update(user); + + return user; } } diff --git a/src/User/InterfaceAdapters/IUserRepository.ts b/src/User/Infrastructure/Repositories/IUserRepository.ts similarity index 72% rename from src/User/InterfaceAdapters/IUserRepository.ts rename to src/User/Infrastructure/Repositories/IUserRepository.ts index ec586089..c468eabe 100644 --- a/src/User/InterfaceAdapters/IUserRepository.ts +++ b/src/User/Infrastructure/Repositories/IUserRepository.ts @@ -1,5 +1,5 @@ -import IBaseRepository from '../../App/InterfaceAdapters/IBaseRepository'; -import IUserDomain from './IUserDomain'; +import IBaseRepository from '../../../App/InterfaceAdapters/IBaseRepository'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; interface IUserRepository extends IBaseRepository diff --git a/src/User/Infrastructure/Repositories/UserMikroSqlRepository.ts b/src/User/Infrastructure/Repositories/UserMikroSqlRepository.ts index bb3932f3..5296ebbb 100644 --- a/src/User/Infrastructure/Repositories/UserMikroSqlRepository.ts +++ b/src/User/Infrastructure/Repositories/UserMikroSqlRepository.ts @@ -2,10 +2,10 @@ import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import UserFilter from '../../Presentation/Criterias/UserFilter'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import User from '../../Domain/Entities/User'; import NotFoundException from '../../../Shared/Exceptions/NotFoundException'; -import IUserRepository from '../../InterfaceAdapters/IUserRepository'; +import IUserRepository from './IUserRepository'; import BaseMikroSqlRepository from '../../../App/Infrastructure/Repositories/BaseMikroSqlRepository'; import UserSchema from '../Schemas/UserMikroORM'; import { QueryBuilder } from '@mikro-orm/postgresql'; diff --git a/src/User/Infrastructure/Repositories/UserMongoRepository.ts b/src/User/Infrastructure/Repositories/UserMongoRepository.ts index 6dffc133..b9adc700 100644 --- a/src/User/Infrastructure/Repositories/UserMongoRepository.ts +++ b/src/User/Infrastructure/Repositories/UserMongoRepository.ts @@ -1,12 +1,12 @@ -import IUserRepository from '../../InterfaceAdapters/IUserRepository'; +import IUserRepository from './IUserRepository'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import MongoPaginator from '../../../App/Presentation/Shared/MongoPaginator'; import UserFilter from '../../Presentation/Criterias/UserFilter'; -import IUser from '../../InterfaceAdapters/IUserDocument'; +import IUser from '../Schemas/IUserDocument'; import { Query } from 'mongoose'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import NotFoundException from '../../../Shared/Exceptions/NotFoundException'; import BaseMongoRepository from '../../../App/Infrastructure/Repositories/BaseMongoRepository'; diff --git a/src/User/Infrastructure/Repositories/UserSqlRepository.ts b/src/User/Infrastructure/Repositories/UserSqlRepository.ts index acc3f51f..5cf5b7b8 100644 --- a/src/User/Infrastructure/Repositories/UserSqlRepository.ts +++ b/src/User/Infrastructure/Repositories/UserSqlRepository.ts @@ -1,11 +1,11 @@ -import IUserRepository from '../../InterfaceAdapters/IUserRepository'; +import IUserRepository from './IUserRepository'; import User from '../../Domain/Entities/User'; import { injectable } from 'inversify'; import { ICriteria, IPaginator } from '@digichanges/shared-experience'; import Paginator from '../../../App/Presentation/Shared/Paginator'; import UserFilter from '../../Presentation/Criterias/UserFilter'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import UserSchema from '../Schemas/UserTypeORM'; import NotFoundException from '../../../Shared/Exceptions/NotFoundException'; diff --git a/src/User/InterfaceAdapters/IUserDocument.ts b/src/User/Infrastructure/Schemas/IUserDocument.ts similarity index 67% rename from src/User/InterfaceAdapters/IUserDocument.ts rename to src/User/Infrastructure/Schemas/IUserDocument.ts index fdae1732..6d0296f2 100644 --- a/src/User/InterfaceAdapters/IUserDocument.ts +++ b/src/User/Infrastructure/Schemas/IUserDocument.ts @@ -1,5 +1,5 @@ import { Document } from 'mongoose'; -import IUserDomain from './IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; interface IUserDocument extends Document, IUserDomain {} diff --git a/src/User/Infrastructure/Seeds/UserSeed.ts b/src/User/Infrastructure/Seeds/UserSeed.ts index 05dfb3f0..7e97ad33 100644 --- a/src/User/Infrastructure/Seeds/UserSeed.ts +++ b/src/User/Infrastructure/Seeds/UserSeed.ts @@ -1,9 +1,9 @@ -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; import Role from '../../../Role/Domain/Entities/Role'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import User from '../../Domain/Entities/User'; -import IUserRepository from '../../InterfaceAdapters/IUserRepository'; -import IRoleRepository from '../../../Role/InterfaceAdapters/IRoleRepository'; +import IUserRepository from '../Repositories/IUserRepository'; +import IRoleRepository from '../../../Role/Infrastructure/Repositories/IRoleRepository'; import { REPOSITORIES } from '../../../Config/Injects/repositories'; import { containerFactory } from '../../../Shared/Decorators/ContainerFactory'; import ISeed from '../../../Shared/InterfaceAdapters/ISeed'; @@ -23,164 +23,158 @@ class UserSeed implements ISeed { const config = MainConfig.getInstance(); - const min = config.getConfig().validationSettings.password.minLength; - const max = config.getConfig().validationSettings.password.maxLength; + const { minLength, maxLength } = config.getConfig().validationSettings.password; - const roleSuperAdmin: IRoleDomain = new Role(); - roleSuperAdmin.name = 'SuperAdmin'; - roleSuperAdmin.slug = 'superadmin'; - roleSuperAdmin.permissions = []; - roleSuperAdmin.enable = true; + const payloadSuperAdmin = { + name: 'SuperAdmin', + slug: 'superAdmin', + permissions: ['rolesSave'], + enable: true + }; + const roleSuperAdmin: IRoleDomain = new Role(payloadSuperAdmin); await this.roleRepository.save(roleSuperAdmin); - const roleAdmin: IRoleDomain = new Role(); - roleAdmin.name = 'Admin'; - roleAdmin.slug = 'admin'; - roleAdmin.permissions = Permissions.permissions(); - roleAdmin.enable = true; + const payloadAdmin = { + name: 'Admin', + slug: 'admin', + permissions: Permissions.permissions(), + enable: true + }; + const roleAdmin: IRoleDomain = new Role(payloadAdmin); await this.roleRepository.save(roleAdmin); - const roleOperator: IRoleDomain = new Role(); - roleOperator.name = 'Operator'; - roleOperator.slug = 'operator'; - roleOperator.permissions = []; - roleOperator.enable = true; + const payloadOperator = { + name: 'Operator', + slug: 'operator', + permissions: ['rolesSave'], + enable: true + }; + const roleOperator: IRoleDomain = new Role(payloadOperator); await this.roleRepository.save(roleOperator); - const roleOperatorDisabled: IRoleDomain = new Role(); - roleOperatorDisabled.name = 'OperatorDisabled'; - roleOperatorDisabled.slug = 'operatordisabled'; - roleOperatorDisabled.permissions = []; - roleOperatorDisabled.enable = false; + const payloadOperatorDisabled = { + name: 'OperatorDisabled', + slug: 'operatordisabled', + permissions: ['rolesSave'], + enable: false + }; + const roleOperatorDisabled: IRoleDomain = new Role(payloadOperatorDisabled); await this.roleRepository.save(roleOperatorDisabled); - const userSuperAdmin: IUserDomain = new User(); - userSuperAdmin.firstName = 'Super'; - userSuperAdmin.lastName = 'Admin'; - userSuperAdmin.email = 'superadmin@node.com'; - userSuperAdmin.birthday = '04/07/1990'; - userSuperAdmin.documentType = 'dni'; - userSuperAdmin.documentNumber = '35319158'; - userSuperAdmin.gender = 'male'; - userSuperAdmin.phone = '2234456999'; - userSuperAdmin.country = 'Argentina'; - userSuperAdmin.address = 'New America 123'; - - const password = new Password('12345678', min, max); - await password.ready(); - userSuperAdmin.password = password; - - userSuperAdmin.enable = true; - userSuperAdmin.verify = true; - userSuperAdmin.confirmationToken = null; - userSuperAdmin.passwordRequestedAt = null; - userSuperAdmin.permissions = []; - userSuperAdmin.roles = [roleSuperAdmin]; - userSuperAdmin.isSuperAdmin = true; + const payloadUserSuperAdmin = { + firstName: 'Super', + lastName: 'Admin', + email: 'superadmin@node.com', + birthday: '04/07/1990', + documentType: 'dni', + documentNumber: '35319158', + gender: 'male', + phone: '2234456999', + country: 'Argentina', + address: 'New America 123', + enable: true, + verify: true, + permissions: ['itemsSave'], + roles: [roleSuperAdmin], + isSuperAdmin: true + }; + + const userSuperAdmin: IUserDomain = new User(payloadUserSuperAdmin); + userSuperAdmin.password = await (new Password('12345678', minLength, maxLength)).ready(); await this.userRepository.save(userSuperAdmin); - const userAdmin: IUserDomain = new User(); - userAdmin.firstName = 'user'; - userAdmin.lastName = 'node'; - userAdmin.email = 'user@node.com'; - userAdmin.birthday = '04/07/1991'; - userAdmin.documentType = 'dni'; - userAdmin.documentNumber = '35319156'; - userAdmin.gender = 'male'; - userAdmin.phone = '2234456999'; - userAdmin.country = 'Argentina'; - userAdmin.address = 'New America 123'; - - const userAdminPassword = new Password('12345678', min, max); - userAdmin.password = await userAdminPassword.ready(); - - userAdmin.verify = true; - userAdmin.enable = true; - userAdmin.confirmationToken = null; - userAdmin.passwordRequestedAt = null; - userAdmin.permissions = []; - userAdmin.roles = [roleAdmin]; - userAdmin.isSuperAdmin = false; + const payloadUserAdmin = { + firstName: 'user', + lastName: 'node', + email: 'user@node.com', + birthday: '04/07/1991', + documentType: 'dni', + documentNumber: '35319156', + gender: 'male', + phone: '2234456999', + country: 'Argentina', + address: 'New America 123', + verify: true, + enable: true, + permissions: ['itemsSave'], + roles: [roleAdmin], + isSuperAdmin: false + }; + + const userAdmin: IUserDomain = new User(payloadUserAdmin); + userAdmin.password = await (new Password('12345678', minLength, maxLength)).ready(); await this.userRepository.save(userAdmin); - const userOperator: IUserDomain = new User(); - userOperator.firstName = 'operator'; - userOperator.lastName = 'enable'; - userOperator.email = 'operator@enable.com'; - userOperator.birthday = '04/07/1992'; - userOperator.documentType = 'dni'; - userOperator.documentNumber = '35319157'; - userOperator.gender = 'male'; - userOperator.phone = '2234456999'; - userOperator.country = 'Argentina'; - userOperator.address = 'New America 123'; - - const userOperatorPassword = new Password('123456789', min, max); - userOperator.password = await userOperatorPassword.ready(); - - userOperator.verify = true; - userOperator.enable = true; - userOperator.confirmationToken = null; - userOperator.passwordRequestedAt = null; - userOperator.permissions = []; - userOperator.roles = [roleOperator]; - userOperator.isSuperAdmin = false; + const payloadUserOperator = { + firstName: 'operator', + lastName: 'enable', + email: 'operator@enable.com', + birthday: '04/07/1992', + documentType: 'dni', + documentNumber: '35319157', + gender: 'male', + phone: '2234456999', + country: 'Argentina', + address: 'New America 123', + permissions: ['itemsSave'], + verify: true, + enable: true, + roles: [roleOperator], + isSuperAdmin: false + }; + + const userOperator: IUserDomain = new User(payloadUserOperator); + userOperator.password = await (new Password('123456789', minLength, maxLength)).ready(); await this.userRepository.save(userOperator); - const userOperatorDisabled: IUserDomain = new User(); - userOperatorDisabled.firstName = 'operator'; - userOperatorDisabled.lastName = 'disabled'; - userOperatorDisabled.email = 'operator@disabled.com'; - userOperatorDisabled.birthday = '04/07/1994'; - userOperatorDisabled.documentType = 'dni'; - userOperatorDisabled.documentNumber = '35319151'; - userOperatorDisabled.gender = 'female'; - userOperatorDisabled.phone = '2234456999'; - userOperatorDisabled.country = 'Argentina'; - userOperatorDisabled.address = 'New America 123'; - - const userOperatorDisabledPassword = new Password('1234567901', min, max); - userOperatorDisabled.password = await userOperatorDisabledPassword.ready(); - - userOperatorDisabled.verify = false; - userOperatorDisabled.enable = false; - userOperatorDisabled.confirmationToken = null; - userOperatorDisabled.passwordRequestedAt = null; - userOperatorDisabled.permissions = []; - userOperatorDisabled.roles = [roleOperator]; - userOperatorDisabled.isSuperAdmin = false; + const payloadUserOperatorDisabled = { + firstName: 'operator', + lastName: 'disabled', + email: 'operator@disabled.com', + birthday: '04/07/1994', + documentType: 'dni', + documentNumber: '35319151', + gender: 'female', + phone: '2234456999', + country: 'Argentina', + address: 'New America 123', + verify: false, + enable: false, + permissions: ['itemsSave'], + roles: [roleOperator], + isSuperAdmin: false + }; + + const userOperatorDisabled: IUserDomain = new User(payloadUserOperatorDisabled); + userOperatorDisabled.password = await (new Password('1234567901', minLength, maxLength)).ready(); await this.userRepository.save(userOperatorDisabled); - - const userOperatorRoleDisabled: IUserDomain = new User(); - userOperatorRoleDisabled.firstName = 'operator'; - userOperatorRoleDisabled.lastName = 'roleDisabled'; - userOperatorRoleDisabled.email = 'operator@roleDisabled.com'; - userOperatorRoleDisabled.birthday = '04/07/1995'; - userOperatorRoleDisabled.documentType = 'dni'; - userOperatorRoleDisabled.documentNumber = '35319150'; - userOperatorRoleDisabled.gender = 'female'; - userOperatorRoleDisabled.phone = '2234456999'; - userOperatorRoleDisabled.country = 'Argentina'; - userOperatorRoleDisabled.address = 'New America 123'; - - const userOperatorRoleDisabledPassword = new Password('1234567901', min, max); - userOperatorRoleDisabled.password = await userOperatorRoleDisabledPassword.ready(); - - userOperatorRoleDisabled.verify = true; - userOperatorRoleDisabled.enable = true; - userOperatorRoleDisabled.confirmationToken = null; - userOperatorRoleDisabled.passwordRequestedAt = null; - userOperatorRoleDisabled.permissions = []; - userOperatorRoleDisabled.roles = [roleOperatorDisabled]; - userOperatorRoleDisabled.isSuperAdmin = false; + const payloadUserOperatorRoleDisabled = { + firstName: 'operator', + lastName: 'roleDisabled', + email: 'operator@roleDisabled.com', + birthday: '04/07/1995', + documentType: 'dni', + documentNumber: '35319150', + gender: 'female', + phone: '2234456999', + country: 'Argentina', + address: 'New America 123', + verify: true, + enable: true, + permissions: ['itemsSave'], + roles: [roleOperatorDisabled], + isSuperAdmin: false + }; + const userOperatorRoleDisabled: IUserDomain = new User(payloadUserOperatorRoleDisabled); + userOperatorRoleDisabled.password = await (new Password('1234567901', minLength, maxLength)).ready(); await this.userRepository.save(userOperatorRoleDisabled); } diff --git a/src/User/InterfaceAdapters/Payloads/UserAssignRoleBySlug.ts b/src/User/InterfaceAdapters/Payloads/UserAssignRoleBySlug.ts deleted file mode 100644 index ead82d70..00000000 --- a/src/User/InterfaceAdapters/Payloads/UserAssignRoleBySlug.ts +++ /dev/null @@ -1,8 +0,0 @@ - -interface UserAssignRoleBySlug -{ - getSlugRole(): string; - getEmail(): string; -} - -export default UserAssignRoleBySlug; diff --git a/src/User/InterfaceAdapters/Payloads/UserRepPayload.ts b/src/User/InterfaceAdapters/Payloads/UserRepPayload.ts deleted file mode 100644 index 5698a4e8..00000000 --- a/src/User/InterfaceAdapters/Payloads/UserRepPayload.ts +++ /dev/null @@ -1,23 +0,0 @@ -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; - -interface UserRepPayload -{ - getFirstName(): string; - getLastName(): string; - getEmail(): string; - getBirthday(): string; - getDocumentType(): string; - getDocumentNumber(): string; - getGender(): string; - getPhone(): string; - getCountry(): string; - getAddress(): string; - getEnable(): boolean; - getRoles(): IRoleDomain[]; - getPermissions(): string[]; - getConfirmationToken(): Promise; - getPasswordRequestedAt(): null; - getIsSuperAdmin(): boolean; -} - -export default UserRepPayload; diff --git a/src/User/Presentation/Commands/ActiveUserCommand.ts b/src/User/Presentation/Commands/ActiveUserCommand.ts index a74280f3..d9b0ff55 100644 --- a/src/User/Presentation/Commands/ActiveUserCommand.ts +++ b/src/User/Presentation/Commands/ActiveUserCommand.ts @@ -13,7 +13,7 @@ ActiveUserCommand const activeUserUseCase = new ActiveUserUseCase(); const request = { - getEmail: () => env.email + email: env.email }; await activeUserUseCase.handle(request); diff --git a/src/User/Presentation/Commands/AddUserCommand.ts b/src/User/Presentation/Commands/AddUserCommand.ts index 62840cbd..ff3247ca 100644 --- a/src/User/Presentation/Commands/AddUserCommand.ts +++ b/src/User/Presentation/Commands/AddUserCommand.ts @@ -1,7 +1,7 @@ import UserCommandSaveRequest from '../Requests/UserCommandSaveRequest'; import commander from 'commander'; import SaveUserUseCase from '../../Domain/UseCases/SaveUserUseCase'; -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; +import UserSavePayload from '../../Domain/Payloads/UserSavePayload'; import Logger from '../../../Shared/Logger/Logger'; const AddUserCommand = new commander.Command('addUser'); diff --git a/src/User/Presentation/Commands/AddUserRoleCommand.ts b/src/User/Presentation/Commands/AddUserRoleCommand.ts index 213b7fcc..01c7892d 100644 --- a/src/User/Presentation/Commands/AddUserRoleCommand.ts +++ b/src/User/Presentation/Commands/AddUserRoleCommand.ts @@ -1,11 +1,11 @@ -import RoleRepPayload from '../../../Role/InterfaceAdapters/Payloads/RoleRepPayload'; -import RoleCommandRepRequest from '../../../Role/Presentation/Requests/RoleUserCommandRepRequest'; import UserCommandSaveRequest from '../Requests/UserCommandSaveRequest'; import commander from 'commander'; import SaveUserUseCase from '../../Domain/UseCases/SaveUserUseCase'; import SaveRoleUseCase from '../../../Role/Domain/UseCases/SaveRoleUseCase'; -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; +import UserSavePayload from '../../Domain/Payloads/UserSavePayload'; import Logger from '../../../Shared/Logger/Logger'; +import RoleRepRequest from '../../../Role/Presentation/Requests/RoleRepRequest'; +import RoleRepPayload from '../../../Role/Domain/Payloads/RoleRepPayload'; const AddUserRoleCommand = new commander.Command('addUserRole'); @@ -30,7 +30,7 @@ AddUserRoleCommand const saveUserUseCase = new SaveUserUseCase(); const saveRoleUseCase = new SaveRoleUseCase(); - const roleCommandRepRequest: RoleRepPayload = new RoleCommandRepRequest(env); + const roleCommandRepRequest: RoleRepPayload = new RoleRepRequest(env); const role = await saveRoleUseCase.handle(roleCommandRepRequest); const userCommandRepRequest: UserSavePayload = new UserCommandSaveRequest(env, role); diff --git a/src/User/Presentation/Commands/AssingRoleToUserCommand.ts b/src/User/Presentation/Commands/AssingRoleToUserCommand.ts index 75f51c2b..93010f6d 100644 --- a/src/User/Presentation/Commands/AssingRoleToUserCommand.ts +++ b/src/User/Presentation/Commands/AssingRoleToUserCommand.ts @@ -1,6 +1,6 @@ import commander from 'commander'; import UserAssignRoleByCommandRequest from '../Requests/UserAssignRoleByCommandRequest'; -import UserAssignRoleBySlug from '../../InterfaceAdapters/Payloads/UserAssignRoleBySlug'; +import UserAssignRoleBySlug from '../../Domain/Payloads/UserAssignRoleBySlug'; import AssignRoleBySlugUseCase from '../../Domain/UseCases/AssignRoleBySlugUseCase'; import Logger from '../../../Shared/Logger/Logger'; diff --git a/src/User/Presentation/Controllers/UserControllers.ts b/src/User/Presentation/Controllers/UserControllers.ts index 075aed7f..b78ccec0 100644 --- a/src/User/Presentation/Controllers/UserControllers.ts +++ b/src/User/Presentation/Controllers/UserControllers.ts @@ -11,13 +11,13 @@ import UpdateUserUseCase from '../../Domain/UseCases/UpdateUserUseCase'; import ValidatorRequest from '../../../App/Presentation/Shared/ValidatorRequest'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import IdPayload from '../../../Shared/InterfaceAdapters/IdPayload'; -import UserUpdatePayload from '../../InterfaceAdapters/Payloads/UserUpdatePayload'; -import UserAssignRolePayload from '../../InterfaceAdapters/Payloads/UserAssignRolePayload'; -import ChangeMyPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeMyPasswordPayload'; -import ChangeUserPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeUserPasswordPayload'; -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; +import UserUpdatePayload from '../../Domain/Payloads/UserUpdatePayload'; +import UserAssignRolePayload from '../../Domain/Payloads/UserAssignRolePayload'; +import ChangeMyPasswordPayload from '../../Domain/Payloads/ChangeMyPasswordPayload'; +import ChangeUserPasswordPayload from '../../Domain/Payloads/ChangeUserPasswordPayload'; +import UserSavePayload from '../../Domain/Payloads/UserSavePayload'; class UserController diff --git a/src/User/Presentation/Handlers/Express/UserHandler.ts b/src/User/Presentation/Handlers/Express/UserHandler.ts index 18e5c81d..4d84e95a 100644 --- a/src/User/Presentation/Handlers/Express/UserHandler.ts +++ b/src/User/Presentation/Handlers/Express/UserHandler.ts @@ -18,7 +18,7 @@ import UserAssignRoleRequest from '../../Requests/UserAssignRoleRequest'; import ChangeUserPasswordRequest from '../../Requests/ChangeUserPasswordRequest'; import ChangeMyPasswordRequest from '../../Requests/ChangeMyPasswordRequest'; -import IUserDomain from '../../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../Domain/Entities/IUserDomain'; import UserController from '../../Controllers/UserControllers'; import UserSaveRequest from '../../Requests/UserSaveRequest'; import { AuthUser } from '../../../../Auth/Presentation/Helpers/AuthUser'; diff --git a/src/User/Presentation/Handlers/Koa/UserHandler.ts b/src/User/Presentation/Handlers/Koa/UserHandler.ts index 268a5468..e0491141 100644 --- a/src/User/Presentation/Handlers/Koa/UserHandler.ts +++ b/src/User/Presentation/Handlers/Koa/UserHandler.ts @@ -4,7 +4,7 @@ import { IPaginator, StatusCode } from '@digichanges/shared-experience'; import Responder from '../../../../App/Presentation/Shared/Koa/Responder'; import IdRequest from '../../../../App/Presentation/Requests/IdRequest'; import UserController from '../../Controllers/UserControllers'; -import IUserDomain from '../../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../../Domain/Entities/IUserDomain'; import UserRequestCriteria from '../../Requests/UserRequestCriteria'; import UserUpdateRequest from '../../Requests/UserUpdateRequest'; import UserSaveRequest from '../../Requests/UserSaveRequest'; diff --git a/src/User/Presentation/Requests/ChangeMyPasswordRequest.ts b/src/User/Presentation/Requests/ChangeMyPasswordRequest.ts index 1963719e..82c89941 100644 --- a/src/User/Presentation/Requests/ChangeMyPasswordRequest.ts +++ b/src/User/Presentation/Requests/ChangeMyPasswordRequest.ts @@ -1,33 +1,34 @@ import { IsString, IsUUID, Length } from 'class-validator'; import MainConfig from '../../../Config/mainConfig'; -import ChangeMyPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeMyPasswordPayload'; -import UserRepPasswordRequest from './UserRepPasswordRequest'; +import ChangeMyPasswordPayload from '../../Domain/Payloads/ChangeMyPasswordPayload'; +import UserPasswordRequest from './UserPasswordRequest'; -class ChangeMyPasswordRequest extends UserRepPasswordRequest implements ChangeMyPasswordPayload +class ChangeMyPasswordRequest extends UserPasswordRequest implements ChangeMyPasswordPayload { - @IsString() - @Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, - MainConfig.getInstance().getConfig().validationSettings.password.maxLength) - currentPassword: string; - - @IsUUID('4') - userId: string; + private readonly _currentPassword: string; + private readonly _id: string; constructor(data: Record, userId: string) { super(data); - this.currentPassword = data.currentPassword; - this.userId = userId; + this._currentPassword = data.currentPassword; + this._id = userId; } - getCurrentPassword(): string + @IsString() + @Length( + MainConfig.getInstance().getConfig().validationSettings.password.minLength, + MainConfig.getInstance().getConfig().validationSettings.password.maxLength + ) + get currentPassword(): string { - return this.currentPassword; + return this._currentPassword; } - getId(): any + @IsUUID('4') + get id(): string { - return this.userId; + return this._id; } } diff --git a/src/User/Presentation/Requests/ChangeUserPasswordRequest.ts b/src/User/Presentation/Requests/ChangeUserPasswordRequest.ts index 632ca57c..a8668ecf 100644 --- a/src/User/Presentation/Requests/ChangeUserPasswordRequest.ts +++ b/src/User/Presentation/Requests/ChangeUserPasswordRequest.ts @@ -1,14 +1,14 @@ -import ChangeUserPasswordPayload from '../../InterfaceAdapters/Payloads/ChangeUserPasswordPayload'; +import ChangeUserPasswordPayload from '../../Domain/Payloads/ChangeUserPasswordPayload'; import IdRequest from '../../../App/Presentation/Requests/IdRequest'; import { Mixin } from 'ts-mixer'; -import UserRepPasswordRequest from './UserRepPasswordRequest'; +import UserPasswordRequest from './UserPasswordRequest'; -class ChangeUserPasswordRequest extends Mixin(UserRepPasswordRequest, IdRequest) implements ChangeUserPasswordPayload +class ChangeUserPasswordRequest extends Mixin(UserPasswordRequest, IdRequest) implements ChangeUserPasswordPayload { constructor(data: Record, id: string) { super(data); - this.id = id; + this._id = id; } } diff --git a/src/User/Presentation/Requests/UserAssignRoleByCommandRequest.ts b/src/User/Presentation/Requests/UserAssignRoleByCommandRequest.ts index fbacef2f..68fa6df4 100644 --- a/src/User/Presentation/Requests/UserAssignRoleByCommandRequest.ts +++ b/src/User/Presentation/Requests/UserAssignRoleByCommandRequest.ts @@ -1,28 +1,27 @@ import { IsString } from 'class-validator'; -import UserAssignRoleBySlug from '../../InterfaceAdapters/Payloads/UserAssignRoleBySlug'; +import UserAssignRoleBySlug from '../../Domain/Payloads/UserAssignRoleBySlug'; class UserAssignRoleByCommandRequest implements UserAssignRoleBySlug { - @IsString() - private readonly slug: string; - - @IsString() - private readonly email: string; + private readonly _slug: string; + private readonly _email: string; constructor(env: any) { - this.slug = env.slug; - this.email = env.email; + this._slug = env.slug; + this._email = env.email; } - getSlugRole(): string + @IsString() + get slugRole(): string { - return this.slug; + return this._slug; } - getEmail(): string + @IsString() + get email(): string { - return this.email; + return this._email; } } diff --git a/src/User/Presentation/Requests/UserAssignRoleRequest.ts b/src/User/Presentation/Requests/UserAssignRoleRequest.ts index 26b29a3e..a36657d3 100644 --- a/src/User/Presentation/Requests/UserAssignRoleRequest.ts +++ b/src/User/Presentation/Requests/UserAssignRoleRequest.ts @@ -1,25 +1,25 @@ import { IsArray, IsUUID } from 'class-validator'; -import UserAssignRolePayload from '../../InterfaceAdapters/Payloads/UserAssignRolePayload'; +import UserAssignRolePayload from '../../Domain/Payloads/UserAssignRolePayload'; import IdRequest from '../../../App/Presentation/Requests/IdRequest'; class UserAssignRoleRequest extends IdRequest implements UserAssignRolePayload { - @IsArray() - @IsUUID('4', { - each: true - }) - rolesId: string[]; + private readonly _rolesId: string[]; constructor(data: Record, id: string) { super({ id }); - this.rolesId = data.rolesId; + this._rolesId = data.rolesId; } - getRolesId(): string[] + @IsArray() + @IsUUID('4', { + each: true + }) + get rolesId(): string[] { - return this.rolesId; + return this._rolesId; } } diff --git a/src/User/Presentation/Requests/UserCommandSaveRequest.ts b/src/User/Presentation/Requests/UserCommandSaveRequest.ts index 663c0020..ff9ddbb8 100644 --- a/src/User/Presentation/Requests/UserCommandSaveRequest.ts +++ b/src/User/Presentation/Requests/UserCommandSaveRequest.ts @@ -1,177 +1,163 @@ -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; import { ArrayMinSize, IsArray, IsBoolean, IsString, Length } from 'class-validator'; -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; +import UserSavePayload from '../../Domain/Payloads/UserSavePayload'; class UserCommandSaveRequest implements UserSavePayload { - @IsString() - firstName: string; - - @IsString() - lastName: string; - - @IsString() - email: string; - - @Length(3, 10) - @IsString() - birthday: string; - - @Length(2, 3) - @IsString() - documentType: string; - - @Length(3, 16) - @IsString() - documentNumber: string; - - @Length(1, 20) - @IsString() - gender: string; - - @Length(3, 20) - @IsString() - phone: string; - - @Length(2, 20) - @IsString() - country: string; - - @Length(3, 60) - @IsString() - address: string; - - @IsString() - password: string; - - @IsString() - passwordConfirmation: string; - - @IsBoolean() - enable: boolean; - - @IsArray() - @ArrayMinSize(0) - @IsString({ - each: true - }) - permissions: string[]; - - @IsArray() - roles: IRoleDomain[]; - - @IsBoolean() - isSuperAdmin: boolean; + private readonly _firstName: string; + private readonly _lastName: string; + private readonly _email: string; + private readonly _birthday: string; + private readonly _documentType: string; + private readonly _documentNumber: string; + private readonly _gender: string; + private readonly _phone: string; + private readonly _country: string; + private readonly _address: string; + private readonly _password: string; + private readonly _passwordConfirmation: string; + private readonly _enable: boolean; + private readonly _permissions: string[]; + private readonly _roles: IRoleDomain[]; + private readonly _isSuperAdmin: boolean; constructor(env: any, role: any = null) { - this.email = env.email; - this.firstName = env.firstName; - this.lastName = env.lastName; - this.password = env.password; - this.birthday = env.birthday; - this.documentType = env.documentType; - this.documentNumber = env.documentNumber; - this.password = env.password; - this.passwordConfirmation = env.passwordConfirmation; - this.gender = env.gender; - this.phone = env.phone; - this.country = env.country; - this.address = env.address; - this.enable = true; - this.roles = role ? [role] : []; - this.permissions = []; - this.isSuperAdmin = env.isSuperAdmin === 'true'; + this._email = env.email; + this._firstName = env.firstName; + this._lastName = env.lastName; + this._birthday = env.birthday; + this._documentType = env.documentType; + this._documentNumber = env.documentNumber; + this._password = env.password; + this._passwordConfirmation = env.passwordConfirmation; + this._gender = env.gender; + this._phone = env.phone; + this._country = env.country; + this._address = env.address; + this._enable = true; + this._roles = role ? [role] : []; + this._permissions = []; + this._isSuperAdmin = env.isSuperAdmin === 'true'; } - getFirstName(): string + @IsString() + get firstName(): string { - return this.firstName; + return this._firstName; } - getLastName(): string + @IsString() + get lastName(): string { - return this.lastName; + return this._lastName; } - getEmail(): string + @IsString() + get email(): string { - return this.email; + return this._email; } - getBirthday(): string + @Length(3, 10) + @IsString() + get birthday(): string { - return this.birthday; + return this._birthday; } - getDocumentNumber(): string + @Length(2, 3) + @IsString() + get documentNumber(): string { - return this.documentNumber; + return this._documentNumber; } - getDocumentType(): string + @Length(3, 16) + @IsString() + get documentType(): string { - return this.documentType; + return this._documentType; } - getGender(): string + @Length(1, 20) + @IsString() + get gender(): string { - return this.gender; + return this._gender; } - getPhone(): string + @Length(3, 20) + @IsString() + get phone(): string { - return this.phone; + return this._phone; } - getCountry(): string + @Length(2, 20) + @IsString() + get country(): string { - return this.country; + return this._country; } - getAddress(): string + @Length(3, 60) + @IsString() + get address(): string { - return this.address; + return this._address; } - getPassword(): string + @IsString() + get password(): string { - return this.password; + return this._password; } - getPasswordConfirmation(): string + @IsString() + get passwordConfirmation(): string { - return this.password; + return this._password; } - getEnable(): boolean + @IsBoolean() + get enable(): boolean { - return this.enable; + return this._enable; } - getConfirmationToken(): null + @IsArray() + @ArrayMinSize(0) + @IsString({ + each: true + }) + get confirmationToken(): null { return null; } - getPasswordRequestedAt(): null + @IsArray() + get passwordRequestedAt(): null { return null; } - getRoles(): IRoleDomain[] + @IsBoolean() + get roles(): IRoleDomain[] { - return this.roles; + return this._roles; } - getPermissions(): string[] + @IsArray() + get permissions(): string[] { - return this.permissions; + return this._permissions; } - getIsSuperAdmin(): boolean + @IsBoolean() + get isSuperAdmin(): boolean { - return this.isSuperAdmin; + return this._isSuperAdmin; } } diff --git a/src/User/Presentation/Requests/UserRepPasswordRequest.ts b/src/User/Presentation/Requests/UserPasswordRequest.ts similarity index 59% rename from src/User/Presentation/Requests/UserRepPasswordRequest.ts rename to src/User/Presentation/Requests/UserPasswordRequest.ts index 93111ba2..377fa31d 100644 --- a/src/User/Presentation/Requests/UserRepPasswordRequest.ts +++ b/src/User/Presentation/Requests/UserPasswordRequest.ts @@ -2,36 +2,35 @@ import { IsString, Length } from 'class-validator'; import { decorate } from 'ts-mixer'; import MainConfig from '../../../Config/mainConfig'; import { Match } from '../../../Shared/Decorators/match'; -import UserPasswordRepPayload from '../../InterfaceAdapters/Payloads/UserPasswordPayload'; +import UserPasswordRepPayload from '../../Domain/Payloads/UserPasswordPayload'; -class UserRepPasswordRequest implements UserPasswordRepPayload +class UserPasswordRequest implements UserPasswordRepPayload { - @decorate(Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, - MainConfig.getInstance().getConfig().validationSettings.password.maxLength)) - @decorate(IsString()) - password: string; - - @decorate(Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, - MainConfig.getInstance().getConfig().validationSettings.password.maxLength)) - @decorate(IsString()) - @decorate(Match('password')) - passwordConfirmation: string; + private readonly _password: string; + private readonly _passwordConfirmation: string; constructor(data: Record) { - this.password = data.password; - this.passwordConfirmation = data.passwordConfirmation; + this._password = data.password; + this._passwordConfirmation = data.passwordConfirmation; } - getPassword(): string + @decorate(Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, + MainConfig.getInstance().getConfig().validationSettings.password.maxLength)) + @decorate(IsString()) + get password(): string { - return this.password; + return this._password; } - getPasswordConfirmation(): string + @decorate(Length(MainConfig.getInstance().getConfig().validationSettings.password.minLength, + MainConfig.getInstance().getConfig().validationSettings.password.maxLength)) + @decorate(IsString()) + @decorate(Match('password')) + get passwordConfirmation(): string { - return this.passwordConfirmation; + return this._passwordConfirmation; } } -export default UserRepPasswordRequest; +export default UserPasswordRequest; diff --git a/src/User/Presentation/Requests/UserRepRequest.ts b/src/User/Presentation/Requests/UserRepRequest.ts index 37ef413c..375a77c0 100644 --- a/src/User/Presentation/Requests/UserRepRequest.ts +++ b/src/User/Presentation/Requests/UserRepRequest.ts @@ -1,35 +1,34 @@ -import UserRepPayload from '../../InterfaceAdapters/Payloads/UserRepPayload'; +import UserRepPayload from '../../Domain/Payloads/UserRepPayload'; import { ArrayMinSize, IsArray, IsBoolean, IsString } from 'class-validator'; import { decorate, Mixin } from 'ts-mixer'; import UserWithoutPermissionsRequest from './UserWithoutPermissionsRequest'; class UserRepRequest extends Mixin(UserWithoutPermissionsRequest) implements UserRepPayload { - @decorate(IsBoolean()) - enable: boolean; - - @decorate(IsArray()) - @decorate(ArrayMinSize(0)) - @decorate(IsString({ - each: true - })) - permissions: string[]; + private readonly _enable: boolean; + private readonly _permissions: string[]; constructor(data: Record) { super(data); - this.permissions = data.permissions; - this.enable = data?.enable ?? true; + this._permissions = data.permissions; + this._enable = data?.enable ?? true; } - getPermissions(): string[] + @decorate(IsArray()) + @decorate(ArrayMinSize(0)) + @decorate(IsString({ + each: true + })) + get permissions(): string[] { - return this.permissions; + return this._permissions; } - getEnable(): boolean + @decorate(IsBoolean()) + get enable(): boolean { - return this.enable; + return this._enable; } } diff --git a/src/User/Presentation/Requests/UserSaveRequest.ts b/src/User/Presentation/Requests/UserSaveRequest.ts index 40af2b41..354f2ee5 100644 --- a/src/User/Presentation/Requests/UserSaveRequest.ts +++ b/src/User/Presentation/Requests/UserSaveRequest.ts @@ -1,9 +1,9 @@ import { Mixin } from 'ts-mixer'; -import UserSavePayload from '../../InterfaceAdapters/Payloads/UserSavePayload'; -import UserRepPasswordRequest from './UserRepPasswordRequest'; +import UserSavePayload from '../../Domain/Payloads/UserSavePayload'; +import UserPasswordRequest from './UserPasswordRequest'; import UserRepRequest from './UserRepRequest'; -class UserSaveRequest extends Mixin(UserRepRequest, UserRepPasswordRequest) implements UserSavePayload +class UserSaveRequest extends Mixin(UserRepRequest, UserPasswordRequest) implements UserSavePayload { constructor(data: Record) { diff --git a/src/User/Presentation/Requests/UserUpdateRequest.ts b/src/User/Presentation/Requests/UserUpdateRequest.ts index cb96a690..d614f35a 100644 --- a/src/User/Presentation/Requests/UserUpdateRequest.ts +++ b/src/User/Presentation/Requests/UserUpdateRequest.ts @@ -2,23 +2,23 @@ import { decorate, Mixin } from 'ts-mixer'; import { IsUUID } from 'class-validator'; import UserRepRequest from './UserRepRequest'; import IdRequest from '../../../App/Presentation/Requests/IdRequest'; -import UserUpdatePayload from '../../InterfaceAdapters/Payloads/UserUpdatePayload'; +import UserUpdatePayload from '../../Domain/Payloads/UserUpdatePayload'; class UserUpdateRequest extends Mixin(UserRepRequest, IdRequest) implements UserUpdatePayload { - @decorate(IsUUID('4')) - userId: string; + private readonly _tokenUserId: string; constructor(data: Record, id: string, userId: string) { super(data); - this.id = id; - this.userId = userId; + this._id = id; + this._tokenUserId = userId; } - getTokenUserId(): string + @decorate(IsUUID('4')) + get tokenUserId(): string { - return this.userId; + return this._tokenUserId; } } diff --git a/src/User/Presentation/Requests/UserWithoutPermissionsRequest.ts b/src/User/Presentation/Requests/UserWithoutPermissionsRequest.ts index 8a24f5e3..dc8110a1 100644 --- a/src/User/Presentation/Requests/UserWithoutPermissionsRequest.ts +++ b/src/User/Presentation/Requests/UserWithoutPermissionsRequest.ts @@ -1,139 +1,131 @@ import { decorate } from 'ts-mixer'; -import { IsEmail, IsString, Length } from 'class-validator'; -import IRoleDomain from '../../../Role/InterfaceAdapters/IRoleDomain'; -import UserRepPayload from '../../InterfaceAdapters/Payloads/UserRepPayload'; +import { IsBoolean, IsEmail, IsString, Length } from 'class-validator'; +import IRoleDomain from '../../../Role/Domain/Entities/IRoleDomain'; +import UserRepPayload from '../../Domain/Payloads/UserRepPayload'; class UserWithoutPermissionsRequest implements UserRepPayload { - @decorate(Length(3, 50)) - @decorate(IsString()) - firstName: string; - - @decorate(Length(3, 50)) - @decorate(IsString()) - lastName: string; - - @decorate(IsEmail()) - email: string; - - @decorate(Length(3, 10)) - @decorate(IsString()) - birthday: string; - - @decorate(Length(2, 20)) - @decorate(IsString()) - documentType: string; - - @decorate(Length(3, 16)) - @decorate(IsString()) - documentNumber: string; - - @decorate(Length(3, 20)) - @decorate(IsString()) - gender: string; - - @decorate(Length(3, 20)) - @decorate(IsString()) - phone: string; - - @decorate(Length(2, 2)) - @decorate(IsString()) - country: string; - - @decorate(Length(10, 60)) - @decorate(IsString()) - address: string; + private readonly _firstName: string; + private readonly _lastName: string; + private readonly _email: string; + private readonly _birthday: string; + private readonly _documentType: string; + private readonly _documentNumber: string; + private readonly _gender: string; + private readonly _phone: string; + private readonly _country: string; + private readonly _address: string; constructor(data: Record) { - this.firstName = data.firstName; - this.lastName = data.lastName; - this.email = data.email; - this.birthday = data.birthday; - this.documentType = data.documentType; - this.documentNumber = data.documentNumber; - this.gender = data.gender; - this.phone = data.phone; - this.country = data.country; - this.address = data.address; + this._firstName = data.firstName; + this._lastName = data.lastName; + this._email = data.email; + this._birthday = data.birthday; + this._documentType = data.documentType; + this._documentNumber = data.documentNumber; + this._gender = data.gender; + this._phone = data.phone; + this._country = data.country; + this._address = data.address; } - getFirstName(): string + @decorate(Length(3, 50)) + @decorate(IsString()) + get firstName(): string { - return this.firstName; + return this._firstName; } - getLastName(): string + @decorate(Length(3, 50)) + @decorate(IsString()) + get lastName(): string { - return this.lastName; + return this._lastName; } - getEmail(): string + @decorate(IsEmail()) + get email(): string { - return this.email; + return this._email; } - getBirthday(): string + @decorate(Length(3, 10)) + @decorate(IsString()) + get birthday(): string { - return this.birthday; + return this._birthday; } - getDocumentType(): string + @decorate(Length(2, 20)) + @decorate(IsString()) + get documentType(): string { - return this.documentType; + return this._documentType; } - getDocumentNumber(): string + @decorate(Length(3, 16)) + @decorate(IsString()) + get documentNumber(): string { - return this.documentNumber; + return this._documentNumber; } - getGender(): string + @decorate(Length(3, 20)) + @decorate(IsString()) + get gender(): string { - return this.gender; + return this._gender; } - getPhone(): string + @decorate(Length(3, 20)) + @decorate(IsString()) + get phone(): string { - return this.phone; + return this._phone; } - getCountry(): string + @decorate(Length(2, 2)) + @decorate(IsString()) + get country(): string { - return this.country; + return this._country; } - getAddress(): string + @decorate(Length(10, 60)) + @decorate(IsString()) + get address(): string { - return this.address; + return this._address; } - getEnable(): boolean + @decorate(IsBoolean()) + get enable(): boolean { return false; } - getConfirmationToken(): Promise + get confirmationToken(): string | null { return null; } - getPasswordRequestedAt(): null + get passwordRequestedAt(): null { return null; } - getRoles(): IRoleDomain[] + get roles(): IRoleDomain[] { return []; } - getPermissions(): string[] + get permissions(): string[] { return []; } - getIsSuperAdmin(): boolean + get isSuperAdmin(): boolean { return false; } diff --git a/src/User/InterfaceAdapters/IUserMinimalDataTransformer.ts b/src/User/Presentation/Transformers/IUserMinimalDataTransformer.ts similarity index 100% rename from src/User/InterfaceAdapters/IUserMinimalDataTransformer.ts rename to src/User/Presentation/Transformers/IUserMinimalDataTransformer.ts diff --git a/src/User/Presentation/Transformers/IUserTransformer.ts b/src/User/Presentation/Transformers/IUserTransformer.ts index eaa046ac..64f04424 100644 --- a/src/User/Presentation/Transformers/IUserTransformer.ts +++ b/src/User/Presentation/Transformers/IUserTransformer.ts @@ -1,6 +1,6 @@ import IRoleTransformer from '../../../Role/Presentation/Transformers/IRoleTransformer'; import BaseTransformer, { BasePropertiesTransformer } from '../../../App/Presentation/Transformers/BaseTransformer'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; type IUserTransformer = BaseTransformer & BasePropertiesTransformer & { diff --git a/src/User/Presentation/Transformers/UserMinimalDataTransformer.ts b/src/User/Presentation/Transformers/UserMinimalDataTransformer.ts index 62834fb4..a31ab959 100644 --- a/src/User/Presentation/Transformers/UserMinimalDataTransformer.ts +++ b/src/User/Presentation/Transformers/UserMinimalDataTransformer.ts @@ -1,7 +1,7 @@ import { Transformer } from '@digichanges/shared-experience'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; -import IUserMinimalDataTransformer from '../../InterfaceAdapters/IUserMinimalDataTransformer'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; +import IUserMinimalDataTransformer from './IUserMinimalDataTransformer'; class UserMinimalDataTransformer extends Transformer { diff --git a/src/User/Presentation/Transformers/UserTransformer.ts b/src/User/Presentation/Transformers/UserTransformer.ts index fce3ebb1..c84c1774 100644 --- a/src/User/Presentation/Transformers/UserTransformer.ts +++ b/src/User/Presentation/Transformers/UserTransformer.ts @@ -1,7 +1,7 @@ import moment from 'moment'; import { Transformer } from '@digichanges/shared-experience'; -import IUserDomain from '../../InterfaceAdapters/IUserDomain'; +import IUserDomain from '../../Domain/Entities/IUserDomain'; import RoleTransformer from '../../../Role/Presentation/Transformers/RoleTransformer'; import IUserTransformer from './IUserTransformer'; diff --git a/src/User/Tests/user.handler.spec.ts b/src/User/Tests/user.handler.spec.ts index 8392346e..7f21313b 100644 --- a/src/User/Tests/user.handler.spec.ts +++ b/src/User/Tests/user.handler.spec.ts @@ -70,11 +70,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.firstName).toStrictEqual(payload.firstName); expect(data.email).toStrictEqual(payload.email); @@ -108,11 +106,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.firstName).toStrictEqual(payload.firstName); expect(data.email).toStrictEqual(payload.email); @@ -138,11 +134,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.firstName).toStrictEqual(payload.firstName); expect(data.email).toStrictEqual(payload.email); @@ -153,7 +147,7 @@ describe('Start User Test', () => const payload: any = { firstName: 'Jhon Update', lastName: 'Doe Update', - email: 'user2@update.com', + email: 'user2@updateRep.com', birthday: '04/08/1991', documentType: 'dni', documentNumber: '35319131', @@ -171,11 +165,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, data } } = response; + const { body: { data } } = response; expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(data.email).toStrictEqual(payload.email); expect(data.firstName).toStrictEqual(payload.firstName); @@ -203,12 +195,7 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode } } = response; - - expect(response.statusCode).toStrictEqual(201); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); payload = { email: 'user@node.com', @@ -221,8 +208,6 @@ describe('Start User Test', () => .send(payload); expect(response.statusCode).toStrictEqual(201); - expect(response.body.status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_CREATED'); expect(response.body.data.user.email).toStrictEqual('user@node.com'); expect(response.body.data.user.firstName).toStrictEqual('user'); @@ -261,11 +246,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data } } = deleteResponse; + const { body: { data } } = deleteResponse; expect(deleteResponse.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.firstName).toStrictEqual(payload.firstName); expect(data.email).toStrictEqual(payload.email); @@ -281,11 +264,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, pagination } } = response; + const { body: { pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(pagination.offset).toStrictEqual(0); expect(pagination.limit).toStrictEqual(5); @@ -310,11 +291,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, pagination } } = response; + const { body: { pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(pagination).not.toBeDefined(); }); @@ -327,11 +306,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data, pagination } } = response; + const { body: { data, pagination } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(data.length).toStrictEqual(1); expect(pagination.total).toStrictEqual(1); @@ -345,14 +322,12 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, data: [user1, user2] } } = response; + const { body: { data: [user1, user2] } } = response; expect(response.statusCode).toStrictEqual(200); - expect(status).toStrictEqual('success'); - expect(statusCode).toStrictEqual('HTTP_OK'); expect(user1.email).toStrictEqual('user@node.com'); - expect(user2.email).toStrictEqual('user2@update.com'); + expect(user2.email).toStrictEqual('user2@updateRep.com'); }); }); @@ -388,11 +363,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(error.property).toStrictEqual('permissions'); @@ -408,11 +381,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(error.property).toStrictEqual('id'); @@ -423,7 +394,7 @@ describe('Start User Test', () => test('Update User /users/:id', async() => { const payload = { - email: 'aaaa1@update.com', + email: 'aaaa1@updateRep.com', firstName: 150, lastName: 'Doe 1', birthday: '04/07/1990', @@ -442,11 +413,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(payload); - const { body: { status, statusCode, message, errors: [error] } } = response; + const { body: { message, errors: [error] } } = response; expect(response.statusCode).toStrictEqual(422); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_UNPROCESSABLE_ENTITY'); expect(message).toStrictEqual('Failed Request.'); expect(error.property).toStrictEqual('permissions'); @@ -462,11 +431,9 @@ describe('Start User Test', () => .set('Authorization', `Bearer ${token}`) .send(); - const { body: { status, statusCode, message } } = deleteErrorResponse; + const { body: { message } } = deleteErrorResponse; expect(deleteErrorResponse.statusCode).toStrictEqual(400); - expect(status).toStrictEqual('error'); - expect(statusCode).toStrictEqual('HTTP_BAD_REQUEST'); expect(message).toStrictEqual('User not found.'); }); }); diff --git a/src/index.ts b/src/index.ts index c35f9579..c71efa81 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ +import 'reflect-metadata'; import MainConfig from './Config/mainConfig'; import DatabaseFactory from './Shared/Factories/DatabaseFactory'; diff --git a/src/initTestServer.ts b/src/initTestServer.ts index 14b52eda..66ef57d8 100644 --- a/src/initTestServer.ts +++ b/src/initTestServer.ts @@ -11,7 +11,7 @@ import TokenMongoRepository from './Auth/Infrastructure/Repositories/TokenMongoR import TokenSqlRepository from './Auth/Infrastructure/Repositories/TokenSqlRepository'; import { validateEnv } from './Config/validateEnv'; import container from './inversify.config'; -import ITokenDomain from './Auth/InterfaceAdapters/ITokenDomain'; +import ITokenDomain from './Auth/Domain/Entities/ITokenDomain'; import SeedFactory from './Shared/Factories/SeedFactory'; import AppFactory from './App/Presentation/Factories/AppFactory'; import Locales from './App/Presentation/Shared/Locales'; @@ -35,10 +35,10 @@ const initTestServer = async(): Promise => void Locales.getInstance(); - const mainConfig = MainConfig.getInstance(); + const mainConfig = MainConfig.getInstance().getConfig(); container.unbind(REPOSITORIES.ITokenRepository); - container.bind>(REPOSITORIES.ITokenRepository).to(mainConfig.getConfig().dbConfig.default === 'Mongoose' + container.bind>(REPOSITORIES.ITokenRepository).to(mainConfig.dbConfig.default === 'Mongoose' ? TokenMongoRepository : TokenSqlRepository ); diff --git a/src/inversify.config.ts b/src/inversify.config.ts index 96000dd5..2bd72eca 100644 --- a/src/inversify.config.ts +++ b/src/inversify.config.ts @@ -1,4 +1,3 @@ -import 'reflect-metadata'; import { Container } from 'inversify'; import MainConfig from './Config/mainConfig'; @@ -6,9 +5,9 @@ import FormatResponder from './App/Presentation/Shared/FormatResponder'; import IFormatResponder from './Shared/InterfaceAdapters/IFormatResponder'; import Responder from './App/Presentation/Shared/Express/Responder'; -import IItemRepository from './Item/InterfaceAdapters/IItemRepository'; -import IUserRepository from './User/InterfaceAdapters/IUserRepository'; -import IRoleRepository from './Role/InterfaceAdapters/IRoleRepository'; +import IItemRepository from './Item/Infrastructure/Repositories/IItemRepository'; +import IUserRepository from './User/Infrastructure/Repositories/IUserRepository'; +import IRoleRepository from './Role/Infrastructure/Repositories/IRoleRepository'; import IFileRepository from './File/Infrastructure/Repositories/IFileRepository'; import { REPOSITORIES } from './Config/Injects/repositories'; @@ -25,7 +24,7 @@ import FileSqlRepository from './File/Infrastructure/Repositories/FileSqlReposit import RoleSqlRepository from './Role/Infrastructure/Repositories/RoleSqlRepository'; import TokenRedisRepository from './Auth/Infrastructure/Repositories/TokenRedisRepository'; import { ITokenRepository } from '@digichanges/shared-experience'; -import ITokenDomain from './Auth/InterfaceAdapters/ITokenDomain'; +import ITokenDomain from './Auth/Domain/Entities/ITokenDomain'; import INotificationRepository from './Notification/InterfaceAdapters/INotificationRepository'; import INotificationDomain from './Notification/InterfaceAdapters/INotificationDomain'; import NotificationMongoRepository from './Notification/Infrastructure/Repositories/NotificationMongoRepository'; @@ -46,26 +45,26 @@ container.bind(TYPES.IFormatResponder).to(FormatResponder); /* Repositories */ if (MainConfig.getInstance().getConfig().dbConfig.default === 'TypeORM') { - container.bind(REPOSITORIES.IItemRepository).to(ItemSqlRepository); - container.bind(REPOSITORIES.IUserRepository).to(UserSqlRepository); - container.bind(REPOSITORIES.IRoleRepository).to(RoleSqlRepository); - container.bind(REPOSITORIES.IFileRepository).to(FileSqlRepository); + container.bind(REPOSITORIES.IItemRepository).to(ItemSqlRepository).inSingletonScope(); + container.bind(REPOSITORIES.IUserRepository).to(UserSqlRepository).inSingletonScope(); + container.bind(REPOSITORIES.IRoleRepository).to(RoleSqlRepository).inSingletonScope(); + container.bind(REPOSITORIES.IFileRepository).to(FileSqlRepository).inSingletonScope(); } else if (MainConfig.getInstance().getConfig().dbConfig.default === 'Mongoose') { - container.bind(REPOSITORIES.IItemRepository).to(ItemMongoRepository); - container.bind(REPOSITORIES.IUserRepository).to(UserMongoRepository); - container.bind(REPOSITORIES.IRoleRepository).to(RoleMongoRepository); - container.bind(REPOSITORIES.IFileRepository).to(FileMongoRepository); - container.bind>(REPOSITORIES.INotificationRepository).to(NotificationMongoRepository); + container.bind(REPOSITORIES.IItemRepository).to(ItemMongoRepository).inSingletonScope(); + container.bind(REPOSITORIES.IUserRepository).to(UserMongoRepository).inSingletonScope(); + container.bind(REPOSITORIES.IRoleRepository).to(RoleMongoRepository).inSingletonScope(); + container.bind(REPOSITORIES.IFileRepository).to(FileMongoRepository).inSingletonScope(); + // container.bind>(REPOSITORIES.INotificationRepository).to(NotificationMongoRepository).inSingletonScope(); } else if (MainConfig.getInstance().getConfig().dbConfig.default === 'MikroORM') { - container.bind(REPOSITORIES.IItemRepository).to(ItemMikroSqlRepository); - container.bind(REPOSITORIES.IRoleRepository).to(RoleMikroSqlRepository); - container.bind(REPOSITORIES.IUserRepository).to(UserMikroSqlRepository); - container.bind(REPOSITORIES.IFileRepository).to(FileMikroSqlRepository); - // container.bind>(REPOSITORIES.INotificationRepository).to(NotificationMongoRepository); + container.bind(REPOSITORIES.IItemRepository).to(ItemMikroSqlRepository).inSingletonScope(); + container.bind(REPOSITORIES.IRoleRepository).to(RoleMikroSqlRepository).inSingletonScope(); + container.bind(REPOSITORIES.IUserRepository).to(UserMikroSqlRepository).inSingletonScope(); + container.bind(REPOSITORIES.IFileRepository).to(FileMikroSqlRepository).inSingletonScope(); + // container.bind>(REPOSITORIES.INotificationRepository).to(NotificationMongoRepository).inSingletonScope(); } container.bind>(REPOSITORIES.ITokenRepository).to(TokenRedisRepository); diff --git a/yarn-old.lock b/yarn-old.lock deleted file mode 100644 index 8e960d88..00000000 --- a/yarn-old.lock +++ /dev/null @@ -1,10775 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz" - integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.16.7", "@babel/generator@^7.7.2": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz" - integrity sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg== - dependencies: - "@babel/types" "^7.16.7" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/highlight@^7.16.7": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz" - integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.7.2": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz" - integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.7.2": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz" - integrity sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz" - integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@commitlint/cli@^13.2.1": - version "13.2.1" - resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-13.2.1.tgz" - integrity sha512-JGzYk2ay5JkRS5w+FLQzr0u/Kih52ds4HPpa3vnwVOQN8Q+S1VYr8Nk/6kRm6uNYsAcC1nejtuDxRdLcLh/9TA== - dependencies: - "@commitlint/format" "^13.2.0" - "@commitlint/lint" "^13.2.0" - "@commitlint/load" "^13.2.1" - "@commitlint/read" "^13.2.0" - "@commitlint/types" "^13.2.0" - lodash "^4.17.19" - resolve-from "5.0.0" - resolve-global "1.0.0" - yargs "^17.0.0" - -"@commitlint/config-conventional@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-13.2.0.tgz" - integrity sha512-7u7DdOiF+3qSdDlbQGfpvCH8DCQdLFvnI2+VucYmmV7E92iD6t9PBj+UjIoSQCaMAzYp27Vkall78AkcXBh6Xw== - dependencies: - conventional-changelog-conventionalcommits "^4.3.1" - -"@commitlint/ensure@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-13.2.0.tgz" - integrity sha512-rqhT62RehdLTRBu8OrPHnRCCd/7RmHEE4TiTlT4BLlr5ls5jlZhecOQWJ8np872uCNirrJ5NFjnjYYdbkNoW9Q== - dependencies: - "@commitlint/types" "^13.2.0" - lodash "^4.17.19" - -"@commitlint/execute-rule@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz" - integrity sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g== - -"@commitlint/format@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/format/-/format-13.2.0.tgz" - integrity sha512-yNBQJe6YFhM1pJAta4LvzQxccSKof6axJH7ALYjuhQqfT8AKlad7Y/2SuJ07ioyreNIqwOTuF2UfU8yJ7JzEIQ== - dependencies: - "@commitlint/types" "^13.2.0" - chalk "^4.0.0" - -"@commitlint/is-ignored@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-13.2.0.tgz" - integrity sha512-onnx4WctHFPPkHGFFAZBIWRSaNwuhixIIfbwPhcZ6IewwQX5n4jpjwM1GokA7vhlOnQ57W7AavbKUGjzIVtnRQ== - dependencies: - "@commitlint/types" "^13.2.0" - semver "7.3.5" - -"@commitlint/lint@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-13.2.0.tgz" - integrity sha512-5XYkh0e9ehHjA7BxAHFpjPgr1qqbFY8OFG1wpBiAhycbYBtJnQmculA2wcwqTM40YCUBqEvWFdq86jTG8fbkMw== - dependencies: - "@commitlint/is-ignored" "^13.2.0" - "@commitlint/parse" "^13.2.0" - "@commitlint/rules" "^13.2.0" - "@commitlint/types" "^13.2.0" - -"@commitlint/load@^13.2.1": - version "13.2.1" - resolved "https://registry.npmjs.org/@commitlint/load/-/load-13.2.1.tgz" - integrity sha512-qlaJkj0hfa9gtWRfCfbgFBTK3GYQRmjZhba4l9mUu4wV9lEZ4ICFlrLtd/8kaLXf/8xbrPhkAPkVFOAqM0YwUQ== - dependencies: - "@commitlint/execute-rule" "^13.2.0" - "@commitlint/resolve-extends" "^13.2.0" - "@commitlint/types" "^13.2.0" - "@endemolshinegroup/cosmiconfig-typescript-loader" "^3.0.2" - chalk "^4.0.0" - cosmiconfig "^7.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - typescript "^4.4.3" - -"@commitlint/message@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/message/-/message-13.2.0.tgz" - integrity sha512-+LlErJj2F2AC86xJb33VJIvSt25xqSF1I0b0GApSgoUtQBeJhx4SxIj1BLvGcLVmbRmbgTzAFq/QylwLId7EhA== - -"@commitlint/parse@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-13.2.0.tgz" - integrity sha512-AtfKSQJQADbDhW+kuC5PxOyBANsYCuuJlZRZ2PYslOz2rvWwZ93zt+nKjM4g7C9ETbz0uq4r7/EoOsTJ2nJqfQ== - dependencies: - "@commitlint/types" "^13.2.0" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" - -"@commitlint/read@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/read/-/read-13.2.0.tgz" - integrity sha512-7db5e1Bn3re6hQN0SqygTMF/QX6/MQauoJn3wJiUHE93lvwO6aFQxT3qAlYeyBPwfWsmDz/uSH454jtrSsv3Uw== - dependencies: - "@commitlint/top-level" "^13.2.0" - "@commitlint/types" "^13.2.0" - fs-extra "^10.0.0" - git-raw-commits "^2.0.0" - -"@commitlint/resolve-extends@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz" - integrity sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw== - dependencies: - import-fresh "^3.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-13.2.0.tgz" - integrity sha512-O3A9S7blOzvHfzrJrUQe9JxdtGy154ol/GXHwvd8WfMJ10y5ryBB4b6+0YZ1XhItWzrEASOfOKbD++EdLV90dQ== - dependencies: - "@commitlint/ensure" "^13.2.0" - "@commitlint/message" "^13.2.0" - "@commitlint/to-lines" "^13.2.0" - "@commitlint/types" "^13.2.0" - execa "^5.0.0" - -"@commitlint/to-lines@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-13.2.0.tgz" - integrity sha512-ZfWZix2y/CzewReCrj5g0nKOEfj5HW9eBMDrqjJJMPApve00CWv0tYrFCGXuGlv244lW4uvWJt6J/0HLRWsfyg== - -"@commitlint/top-level@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-13.2.0.tgz" - integrity sha512-knBvWYbIq6VV6VPHrVeDsxDiJq4Zq6cv5NIYU3iesKAsmK2KlLfsZPa+Ig96Y4AqAPU3zNJwjHxYkz9qxdBbfA== - dependencies: - find-up "^5.0.0" - -"@commitlint/types@^13.2.0": - version "13.2.0" - resolved "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz" - integrity sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ== - dependencies: - chalk "^4.0.0" - -"@digichanges/shared-experience@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@digichanges/shared-experience/-/shared-experience-0.8.0.tgz" - integrity sha512-3uCMNE7QVSqs23GNJF7d7XV+pBkiA2rxEtHInay4dqnW9PCZnqwqCvgEDqiEcSURxp+IC4ELU92YX7NMCgYqJg== - dependencies: - "@types/qs" "^6.9.6" - qs "^6.10.1" - -"@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz" - integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA== - dependencies: - lodash.get "^4" - make-error "^1" - ts-node "^9" - tslib "^2" - -"@eslint/eslintrc@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz" - integrity sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.3.1" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.3" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz" - integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^27.4.2": - version "27.4.2" - resolved "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz" - integrity sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.4.2" - jest-util "^27.4.2" - slash "^3.0.0" - -"@jest/core@^27.4.5": - version "27.4.5" - resolved "https://registry.npmjs.org/@jest/core/-/core-27.4.5.tgz" - integrity sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ== - dependencies: - "@jest/console" "^27.4.2" - "@jest/reporters" "^27.4.5" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.4.2" - jest-config "^27.4.5" - jest-haste-map "^27.4.5" - jest-message-util "^27.4.2" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-resolve-dependencies "^27.4.5" - jest-runner "^27.4.5" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - jest-watcher "^27.4.2" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.4.4": - version "27.4.4" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.4.4.tgz" - integrity sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ== - dependencies: - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.2" - -"@jest/fake-timers@^27.4.2": - version "27.4.2" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz" - integrity sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg== - dependencies: - "@jest/types" "^27.4.2" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.4.2" - jest-mock "^27.4.2" - jest-util "^27.4.2" - -"@jest/globals@^27.4.4": - version "27.4.4" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.4.4.tgz" - integrity sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/types" "^27.4.2" - expect "^27.4.2" - -"@jest/reporters@^27.4.5": - version "27.4.5" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.5.tgz" - integrity sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.4.2" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.4.5" - jest-resolve "^27.4.5" - jest-util "^27.4.2" - jest-worker "^27.4.5" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/source-map@^27.4.0": - version "27.4.0" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz" - integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^27.4.2": - version "27.4.2" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz" - integrity sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA== - dependencies: - "@jest/console" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.4.5": - version "27.4.5" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz" - integrity sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ== - dependencies: - "@jest/test-result" "^27.4.2" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-runtime "^27.4.5" - -"@jest/transform@^27.4.5": - version "27.4.5" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.4.5.tgz" - integrity sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.4.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-regex-util "^27.4.0" - jest-util "^27.4.2" - micromatch "^4.0.4" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.4.2": - version "27.4.2" - resolved "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz" - integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@koa/multer@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@koa/multer/-/multer-3.0.0.tgz" - integrity sha512-y+OQBmex5D1jIl723gAEUYcAWPEicIXppaAKw/zCMfpllQ08ZNweDPwoCLxEoatqd5pCu2XG6V8dl67JRq3RJw== - -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.8" - resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz" - integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg== - dependencies: - detect-libc "^1.0.3" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.5" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - -"@mikro-orm/core@^4.5.3": - version "4.5.10" - resolved "https://registry.npmjs.org/@mikro-orm/core/-/core-4.5.10.tgz" - integrity sha512-vnSSFGSR/JoGINJlci5fafGSqvLgHx+3Nt3XjnCTNLOjQ0WL7LsdUVwM9FE/W5FipcJRaQfWmY/iLXBqnaarGQ== - dependencies: - ansi-colors "4.1.1" - clone "2.1.2" - dotenv "8.2.0" - escaya "0.0.61" - fs-extra "9.1.0" - globby "11.0.3" - reflect-metadata "0.1.13" - strip-json-comments "3.1.1" - -"@mikro-orm/core@^5.0.0-dev.636": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@mikro-orm/core/-/core-5.0.3.tgz#666b871b7d2356c4c60ab56245cc7fd1df1bb14e" - integrity sha512-eIjaLCehjj57KyW6rzkbmAysed2U3IJQMzcnvysBrwJTy5ePMiLfIJaeONXAr5xaNGKTBno2kpEa3lWPaVy8Ag== - dependencies: - dotenv "16.0.0" - escaya "0.0.61" - fs-extra "10.0.0" - globby "11.0.4" - mikro-orm "^5.0.3" - reflect-metadata "0.1.13" - -"@mikro-orm/knex@^4.5.10": - version "4.5.10" - resolved "https://registry.npmjs.org/@mikro-orm/knex/-/knex-4.5.10.tgz" - integrity sha512-iYSsAlHVNC7m+yz7dDA3JwjBHxyNuGNwQijUpJ6n2Vt55PyorcW4I3wTnHHALUS30Fvjm4TnfZRdio+aQhynsA== - dependencies: - fs-extra "9.1.0" - knex "0.21.19" - sqlstring "2.3.2" - -"@mikro-orm/knex@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@mikro-orm/knex/-/knex-5.0.3.tgz#a8a39230a40a5fe70cc94e3bf19d39e6759e2381" - integrity sha512-eRu6D4K/f4hCBq5FDSBkGhI12Iy6SEAXvWpH5Ib0wrl99EyEBnqXM/vhPQObcwP6gSBAC/4pcy0QX8s7bXMGmg== - dependencies: - fs-extra "10.0.0" - knex "1.0.3" - sqlstring "2.3.2" - -"@mikro-orm/postgresql@^4.5.3": - version "4.5.10" - resolved "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-4.5.10.tgz" - integrity sha512-hVTW5rO43T3k4AN3e1tu2rUZIAN0VuBrizdf+sGYpKZ7xtLAOFXY10TCmLdv/B6euAwrXRSsCraOOT7JnOQyBg== - dependencies: - "@mikro-orm/knex" "^4.5.10" - pg "8.6.0" - -"@mikro-orm/postgresql@^5.0.0-dev.636": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@mikro-orm/postgresql/-/postgresql-5.0.3.tgz#fb97f653298568241d33d2a8bf0ca4356266eeb2" - integrity sha512-BdYO6DmSWKJC8GDuYkMVf1AOiEIcMXF1rXf0yGcjd+AmHWAOpzLA3c4fhej+d0mw0mdzCwcHpYxrCwGnzGMwbw== - dependencies: - "@mikro-orm/knex" "^5.0.3" - pg "8.7.3" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@parcel/bundler-default@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.3.2.tgz" - integrity sha512-JUrto4mjSD0ic9dEqRp0loL5o3HVYHja1ZIYSq+rBl2UWRV6/9cGTb07lXOCqqm0BWE+hQ4krUxB76qWaF0Lqw== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/hash" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/cache@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/cache/-/cache-2.3.2.tgz" - integrity sha512-Xxq+ekgcFEme6Fn1v7rEOBkyMOUOUu7eNqQw0l6HQS+INZ2Q7YzzfdW7pI8rEOAAICVg5BWKpmBQZpgJlT+HxQ== - dependencies: - "@parcel/fs" "2.3.2" - "@parcel/logger" "2.3.2" - "@parcel/utils" "2.3.2" - lmdb "^2.0.2" - -"@parcel/codeframe@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.3.2.tgz" - integrity sha512-ireQALcxxrTdIEpzTOoMo/GpfbFm1qlyezeGl3Hce3PMvHLg3a5S6u/Vcy7SAjdld5GfhHEqVY+blME6Z4CyXQ== - dependencies: - chalk "^4.1.0" - -"@parcel/compressor-raw@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.3.2.tgz" - integrity sha512-8dIoFwinYK6bOTpnZOAwwIv0v73y0ezsctPmfMnIqVQPn7wJwfhw/gbKVcmK5AkgQMkyid98hlLZoaZtGF1Mdg== - dependencies: - "@parcel/plugin" "2.3.2" - -"@parcel/config-default@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.3.2.tgz" - integrity sha512-E7/iA7fGCYvXU3u6zF9nxjeDVsgjCN6MVvDjymjaxYMoDWTIsPV245SBEXqzgtmzbMAV+VAl4rVWLMB4pzMt9g== - dependencies: - "@parcel/bundler-default" "2.3.2" - "@parcel/compressor-raw" "2.3.2" - "@parcel/namer-default" "2.3.2" - "@parcel/optimizer-cssnano" "2.3.2" - "@parcel/optimizer-htmlnano" "2.3.2" - "@parcel/optimizer-image" "2.3.2" - "@parcel/optimizer-svgo" "2.3.2" - "@parcel/optimizer-terser" "2.3.2" - "@parcel/packager-css" "2.3.2" - "@parcel/packager-html" "2.3.2" - "@parcel/packager-js" "2.3.2" - "@parcel/packager-raw" "2.3.2" - "@parcel/packager-svg" "2.3.2" - "@parcel/reporter-dev-server" "2.3.2" - "@parcel/resolver-default" "2.3.2" - "@parcel/runtime-browser-hmr" "2.3.2" - "@parcel/runtime-js" "2.3.2" - "@parcel/runtime-react-refresh" "2.3.2" - "@parcel/runtime-service-worker" "2.3.2" - "@parcel/transformer-babel" "2.3.2" - "@parcel/transformer-css" "2.3.2" - "@parcel/transformer-html" "2.3.2" - "@parcel/transformer-image" "2.3.2" - "@parcel/transformer-js" "2.3.2" - "@parcel/transformer-json" "2.3.2" - "@parcel/transformer-postcss" "2.3.2" - "@parcel/transformer-posthtml" "2.3.2" - "@parcel/transformer-raw" "2.3.2" - "@parcel/transformer-react-refresh-wrap" "2.3.2" - "@parcel/transformer-svg" "2.3.2" - -"@parcel/core@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/core/-/core-2.3.2.tgz" - integrity sha512-gdJzpsgeUhv9H8T0UKVmyuptiXdduEfKIUx0ci+/PGhq8cCoiFnlnuhW6H7oLr79OUc+YJStabDJuG4U2A6ysw== - dependencies: - "@parcel/cache" "2.3.2" - "@parcel/diagnostic" "2.3.2" - "@parcel/events" "2.3.2" - "@parcel/fs" "2.3.2" - "@parcel/graph" "2.3.2" - "@parcel/hash" "2.3.2" - "@parcel/logger" "2.3.2" - "@parcel/package-manager" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - "@parcel/workers" "2.3.2" - abortcontroller-polyfill "^1.1.9" - base-x "^3.0.8" - browserslist "^4.6.6" - clone "^2.1.1" - dotenv "^7.0.0" - dotenv-expand "^5.1.0" - json-source-map "^0.6.1" - json5 "^2.2.0" - msgpackr "^1.5.1" - nullthrows "^1.1.1" - semver "^5.7.1" - -"@parcel/diagnostic@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.3.2.tgz" - integrity sha512-/xW93Az4AOiifuYW/c4CDbUcu3lx5FcUDAj9AGiR9NSTsF/ROC/RqnxvQ3AGtqa14R7vido4MXEpY3JEp6FsqA== - dependencies: - json-source-map "^0.6.1" - nullthrows "^1.1.1" - -"@parcel/events@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/events/-/events-2.3.2.tgz" - integrity sha512-WiYIwXMo4Vd+pi58vRoHkul8TPE5VEfMY+3FYwVCKPl/LYqSD+vz6wMx9uG18mEbB1d/ofefv5ZFQNtPGKO4tQ== - -"@parcel/fs-search@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.3.2.tgz" - integrity sha512-u3DTEFnPtKuZvEtgGzfVjQUytegSSn3POi7WfwMwPIaeDPfYcyyhfl+c96z7VL9Gk/pqQ99/cGyAwFdFsnxxXA== - dependencies: - detect-libc "^1.0.3" - -"@parcel/fs@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/fs/-/fs-2.3.2.tgz" - integrity sha512-XV+OsnRpN01QKU37lBN0TFKvv7uPKfQGbqFqYOrMbXH++Ae8rBU0Ykz+Yu4tv2h7shMlde+AMKgRnRTAJZpWEQ== - dependencies: - "@parcel/fs-search" "2.3.2" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - "@parcel/watcher" "^2.0.0" - "@parcel/workers" "2.3.2" - -"@parcel/graph@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/graph/-/graph-2.3.2.tgz" - integrity sha512-ltTBM3IEqumgmy4ABBFETT8NtAwSsjD9mY3WCyJ5P8rUshfVCg093rvBPbpuJYMaH/TV1AHVaWfZqaZ4JQDIQQ== - dependencies: - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/hash@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/hash/-/hash-2.3.2.tgz" - integrity sha512-SMtYTsHihws/wqdVnOr0QAGyGYsW9rJSJkkoRujUxo8l2ctnBN1ztv89eOUrdtgHsmcnj/oz1yw6sN38X+BUng== - dependencies: - detect-libc "^1.0.3" - xxhash-wasm "^0.4.2" - -"@parcel/logger@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/logger/-/logger-2.3.2.tgz" - integrity sha512-jIWd8TXDQf+EnNWSa7Q10lSQ6C1LSH8OZkTlaINrfVIw7s+3tVxO3I4pjp7/ARw7RX2gdNPlw6fH4Gn/HvvYbw== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/events" "2.3.2" - -"@parcel/markdown-ansi@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.3.2.tgz" - integrity sha512-l01ggmag5QScCk9mYA0xHh5TWSffR84uPFP2KvaAMQQ9NLNufcFiU0mn/Mtr3pCb5L5dSzmJ+Oo9s7P1Kh/Fmg== - dependencies: - chalk "^4.1.0" - -"@parcel/namer-default@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.3.2.tgz" - integrity sha512-3QUMC0+5+3KMKfoAxYAbpZtuRqTgyZKsGDWzOpuqwemqp6P8ahAvNPwSCi6QSkGcTmvtYwBu9/NHPSONxIFOfg== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/plugin" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/node-resolver-core@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.3.2.tgz" - integrity sha512-wmrnMNzJN4GuHw2Ftho+BWgSWR6UCkW3XoMdphqcxpw/ieAdS2a+xYSosYkZgQZ6lGutSvLyJ1CkVvP6RLIdQQ== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/optimizer-cssnano@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.3.2.tgz" - integrity sha512-wTBOxMiBI38NAB9XIlQZRCjS59+EWjWR9M04D3TWyxl+dL5gYMc1cl4GNynUnmcPdz+3s1UbOdo5/8V90wjiiw== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - cssnano "^5.0.15" - postcss "^8.4.5" - -"@parcel/optimizer-htmlnano@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.3.2.tgz" - integrity sha512-U8C0TDSxsx8HmHaLW0Zc7ha1fXQynzhvBjCRMGYnOiLiw0MOfLQxzQ2WKVSeCotmdlF63ayCwxWsd6BuqStiKQ== - dependencies: - "@parcel/plugin" "2.3.2" - htmlnano "^2.0.0" - nullthrows "^1.1.1" - posthtml "^0.16.5" - svgo "^2.4.0" - -"@parcel/optimizer-image@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.3.2.tgz" - integrity sha512-HOk3r5qdvY/PmI7Q3i2qEgFH3kP2QWG4Wq3wmC4suaF1+c2gpiQc+HKHWp4QvfbH3jhT00c5NxQyqPhbXeNI9Q== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - "@parcel/workers" "2.3.2" - detect-libc "^1.0.3" - -"@parcel/optimizer-svgo@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.3.2.tgz" - integrity sha512-l7WvZ5+e7D1mVmLUxMVaSb29cviXzuvSY2OpQs0ukdPACDqag+C65hWMzwTiOSSRGPMIu96kQKpeVru2YjibhA== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - svgo "^2.4.0" - -"@parcel/optimizer-terser@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.3.2.tgz" - integrity sha512-dOapHhfy0xiNZa2IoEyHGkhhla07xsja79NPem14e5jCqY6Oi40jKNV4ab5uu5u1elWUjJuw69tiYbkDZWbKQw== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - terser "^5.2.0" - -"@parcel/package-manager@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.3.2.tgz" - integrity sha512-pAQfywKVORY8Ee+NHAyKzzQrKbnz8otWRejps7urwhDaTVLfAd5C/1ZV64ATZ9ALYP9jyoQ8bTaxVd4opcSuwg== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/fs" "2.3.2" - "@parcel/logger" "2.3.2" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - "@parcel/workers" "2.3.2" - semver "^5.7.1" - -"@parcel/packager-css@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.3.2.tgz" - integrity sha512-ByuF9xDnQnpVL1Hdu9aY6SpxOuZowd3TH7joh1qdRPLeMHTEvUywHBXoiAyNdrhnLGum8uPEdY8Ra5Xuo1U7kg== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/packager-html@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.3.2.tgz" - integrity sha512-YqAptdU+uqfgwSii76mRGcA/3TpuC6yHr8xG+11brqj/tEFLsurmX0naombzd7FgmrTE9w+kb0HUIMl2vRBn0A== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - posthtml "^0.16.5" - -"@parcel/packager-js@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.3.2.tgz" - integrity sha512-3OP0Ro9M1J+PIKZK4Ec2N5hjIPiqk++B2kMFeiUqvaNZjJgKrPPEICBhjS52rma4IE/NgmIMB3aI5pWqE/KwNA== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/hash" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/utils" "2.3.2" - globals "^13.2.0" - nullthrows "^1.1.1" - -"@parcel/packager-raw@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.3.2.tgz" - integrity sha512-RnoZ7WgNAFWkEPrEefvyDqus7xfv9XGprHyTbfLittPaVAZpl+4eAv43nXyMfzk77Cgds6KcNpkosj3acEpNIQ== - dependencies: - "@parcel/plugin" "2.3.2" - -"@parcel/packager-svg@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.3.2.tgz" - integrity sha512-iIC0VeczOXynS7M5jCi3naMBRyAznBVJ3iMg92/GaI9duxPlUMGAlHzLAKNtoXkc00HMXDH7rrmMb04VX6FYSg== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - posthtml "^0.16.4" - -"@parcel/plugin@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.3.2.tgz" - integrity sha512-SaLZAJX4KH+mrAmqmcy9KJN+V7L+6YNTlgyqYmfKlNiHu7aIjLL+3prX8QRcgGtjAYziCxvPj0cl1CCJssaiGg== - dependencies: - "@parcel/types" "2.3.2" - -"@parcel/reporter-cli@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.3.2.tgz" - integrity sha512-VYetmTXqW83npsvVvqlQZTbF3yVL3k/FCCl3kSWvOr9LZA0lmyqJWPjMHq37yIIOszQN/p5guLtgCjsP0UQw1Q== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - chalk "^4.1.0" - -"@parcel/reporter-dev-server@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.3.2.tgz" - integrity sha512-E7LtnjAX4iiWMw2qKUyFBi3+bDz0UGjqgHoPQylUYYLi6opXjJz/oC+cCcCy4e3RZlkrl187XonvagS59YjDxA== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - -"@parcel/resolver-default@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.3.2.tgz" - integrity sha512-y3r+xOwWsATrNGUWuZ6soA7q24f8E5tY1AZ9lHCufnkK2cdKZJ5O1cyd7ohkAiKZx2/pMd+FgmVZ/J3oxetXkA== - dependencies: - "@parcel/node-resolver-core" "2.3.2" - "@parcel/plugin" "2.3.2" - -"@parcel/runtime-browser-hmr@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.3.2.tgz" - integrity sha512-nRD6uOyF1+HGylP9GASbYmvUDOsDaNwvaxuGTSh8+5M0mmCgib+hVBiPEKbwdmKjGbUPt9wRFPyMa/JpeQZsIQ== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - -"@parcel/runtime-js@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.3.2.tgz" - integrity sha512-SJepcHvYO/7CEe/Q85sngk+smcJ6TypuPh4D2R8kN+cAJPi5WvbQEe7+x5BEgbN+5Jumi/Uo3FfOOE5mYh+F6g== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/runtime-react-refresh@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.3.2.tgz" - integrity sha512-P+GRPO2XVDSBQ4HmRSj2xfbHSQvL9+ahTE/AB74IJExLTITv5l4SHAV3VsiKohuHYUAYHW3A/Oe7tEFCAb6Cug== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - react-refresh "^0.9.0" - -"@parcel/runtime-service-worker@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.3.2.tgz" - integrity sha512-iREHj/eapphC4uS/zGUkiTJvG57q+CVbTrfE42kB8ECtf/RYNo5YC9htdvPZjRSXDPrEPc5NCoKp4X09ENNikw== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/source-map@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.0.tgz" - integrity sha512-njoUJpj2646NebfHp5zKJeYD1KwhsfQIoU9TnCTHmF9fGOaPbClmeq12G6/4ZqGASftRq+YhhukFBi/ncWKGvw== - dependencies: - detect-libc "^1.0.3" - globby "^11.0.3" - -"@parcel/transformer-babel@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.3.2.tgz" - integrity sha512-QpWfH2V6jJ+kcUBIMM/uBBG8dGFvNaOGS+8jD6b+eTP+1owzm83RoWgqhRV2D/hhv2qMXEQzIljoc/wg2y+X4g== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/utils" "2.3.2" - browserslist "^4.6.6" - json5 "^2.2.0" - nullthrows "^1.1.1" - semver "^5.7.0" - -"@parcel/transformer-css@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.3.2.tgz" - integrity sha512-8lzvDny+78DIAqhcXam2Bf9FyaUoqzHdUQdNFn+PuXTHroG/QGPvln1kvqngJjn4/cpJS9vYmAPVXe+nai3P8g== - dependencies: - "@parcel/hash" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - postcss "^8.4.5" - postcss-value-parser "^4.2.0" - semver "^5.7.1" - -"@parcel/transformer-html@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.3.2.tgz" - integrity sha512-idT1I/8WM65IFYBqzRwpwT7sf0xGur4EDQDHhuPX1w+pIVZnh0lkLMAnEqs6ar1SPRMys4chzkuDNnqh0d76hg== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/hash" "2.3.2" - "@parcel/plugin" "2.3.2" - nullthrows "^1.1.1" - posthtml "^0.16.5" - posthtml-parser "^0.10.1" - posthtml-render "^3.0.0" - semver "^5.7.1" - -"@parcel/transformer-image@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.3.2.tgz" - integrity sha512-0K7cJHXysli6hZsUz/zVGO7WCoaaIeVdzAxKpLA1Yl3LKw/ODiMyXKt08LiV/ljQ2xT5qb9EsXUWDRvcZ0b96A== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/workers" "2.3.2" - nullthrows "^1.1.1" - -"@parcel/transformer-js@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.3.2.tgz" - integrity sha512-U1fbIoAoqR5P49S+DMhH8BUd9IHRPwrTTv6ARYGsYnhuNsjTFhNYE0kkfRYboe/e0z7vEbeJICZXjnZ7eQDw5A== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/utils" "2.3.2" - "@parcel/workers" "2.3.2" - "@swc/helpers" "^0.2.11" - browserslist "^4.6.6" - detect-libc "^1.0.3" - nullthrows "^1.1.1" - regenerator-runtime "^0.13.7" - semver "^5.7.1" - -"@parcel/transformer-json@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.3.2.tgz" - integrity sha512-Pv2iPaxKINtFwOk5fDbHjQlSm2Vza/NLimQY896FLxiXPNAJxWGvMwdutgOPEBKksxRx9LZPyIOHiRVZ0KcA3w== - dependencies: - "@parcel/plugin" "2.3.2" - json5 "^2.2.0" - -"@parcel/transformer-postcss@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.3.2.tgz" - integrity sha512-Rpdxc1rt2aJFCh/y/ccaBc9J1crDjNY5o44xYoOemBoUNDMREsmg5sR5iO81qKKO5GxfoosGb2zh59aeTmywcg== - dependencies: - "@parcel/hash" "2.3.2" - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - clone "^2.1.1" - nullthrows "^1.1.1" - postcss-value-parser "^4.2.0" - semver "^5.7.1" - -"@parcel/transformer-posthtml@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.3.2.tgz" - integrity sha512-tMdVExfdM+1G8A9KSHDsjg+S9xEGbhH5mApF2NslPnNZ4ciLKRNuHU2sSV/v8i0a6kacKvDTrwQXYBQJGOodBw== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - nullthrows "^1.1.1" - posthtml "^0.16.5" - posthtml-parser "^0.10.1" - posthtml-render "^3.0.0" - semver "^5.7.1" - -"@parcel/transformer-raw@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.3.2.tgz" - integrity sha512-lY7eOCaALZ90+GH+4PZRmAPGQRXoZ66NakSdhEtH6JSSAYOmZKDvNLGTMRo/vK1oELzWMuAHGdqvbcPDtNLLVw== - dependencies: - "@parcel/plugin" "2.3.2" - -"@parcel/transformer-react-refresh-wrap@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.3.2.tgz" - integrity sha512-FZaderyCExn0SBZ6D+zHPWc8JSn9YDcbfibv0wkCl+D7sYfeWZ22i7MRp5NwCe/TZ21WuxDWySCggEp/Waz2xg== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/utils" "2.3.2" - react-refresh "^0.9.0" - -"@parcel/transformer-svg@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.3.2.tgz" - integrity sha512-k9My6bePsaGgUh+tidDjFbbVgKPTzwCAQfoloZRMt7y396KgUbvCfqDruk04k6k+cJn7Jl1o/5lUpTEruBze7g== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/hash" "2.3.2" - "@parcel/plugin" "2.3.2" - nullthrows "^1.1.1" - posthtml "^0.16.5" - posthtml-parser "^0.10.1" - posthtml-render "^3.0.0" - semver "^5.7.1" - -"@parcel/transformer-typescript-tsc@^2.3.1": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/transformer-typescript-tsc/-/transformer-typescript-tsc-2.3.2.tgz" - integrity sha512-29Y9eMnC+PbP2g6wKXhN6yPVarautsNrbSrRaJENQySAQavv52qxvAPC8LVremSYEeYbgxrg/3TT5rq48kt1Ng== - dependencies: - "@parcel/plugin" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/ts-utils" "2.3.2" - -"@parcel/ts-utils@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.3.2.tgz" - integrity sha512-jYCHoSmU+oVtFA4q0BygVf74FpVnCDSNtVfLzd1EfGVHlBFMo9GzSY5luMTG4qhnNCDEEco89bkMIgjPHQ3qnA== - dependencies: - nullthrows "^1.1.1" - -"@parcel/types@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/types/-/types-2.3.2.tgz" - integrity sha512-C77Ct1xNM7LWjPTfe/dQ/9rq1efdsX5VJu2o8/TVi6qoFh64Wp/c5/vCHwKInOTBZUTchVO6z4PGJNIZoUVJuA== - dependencies: - "@parcel/cache" "2.3.2" - "@parcel/diagnostic" "2.3.2" - "@parcel/fs" "2.3.2" - "@parcel/package-manager" "2.3.2" - "@parcel/source-map" "^2.0.0" - "@parcel/workers" "2.3.2" - utility-types "^3.10.0" - -"@parcel/utils@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/utils/-/utils-2.3.2.tgz" - integrity sha512-xzZ+0vWhrXlLzGoz7WlANaO5IPtyWGeCZruGtepUL3yheRWb1UU4zFN9xz7Z+j++Dmf1Fgkc3qdk/t4O8u9HLQ== - dependencies: - "@parcel/codeframe" "2.3.2" - "@parcel/diagnostic" "2.3.2" - "@parcel/hash" "2.3.2" - "@parcel/logger" "2.3.2" - "@parcel/markdown-ansi" "2.3.2" - "@parcel/source-map" "^2.0.0" - chalk "^4.1.0" - -"@parcel/watcher@^2.0.0": - version "2.0.5" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.5.tgz" - integrity sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw== - dependencies: - node-addon-api "^3.2.1" - node-gyp-build "^4.3.0" - -"@parcel/workers@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@parcel/workers/-/workers-2.3.2.tgz" - integrity sha512-JbOm+Ceuyymd1SuKGgodC2EXAiPuFRpaNUSJpz3NAsS3lVIt2TDAPMOWBivS7sML/KltspUfl/Q9YwO0TPUFNw== - dependencies: - "@parcel/diagnostic" "2.3.2" - "@parcel/logger" "2.3.2" - "@parcel/types" "2.3.2" - "@parcel/utils" "2.3.2" - chrome-trace-event "^1.0.2" - nullthrows "^1.1.1" - -"@shelf/jest-mongodb@^2.1.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@shelf/jest-mongodb/-/jest-mongodb-2.2.0.tgz" - integrity sha512-epYFMVlTI7rRK4u4ErVng1H2jNlUmGWvIjioUSbDmm3GaLVsfc7rvtNaAc3fLW+X5hLtEcnwJWY4JoqIEilTyw== - dependencies: - debug "4.3.2" - mongodb-memory-server "7.3.6" - uuid "8.3.2" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sqltools/formatter@^1.2.2": - version "1.2.3" - resolved "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz" - integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== - -"@swc/helpers@^0.2.11": - version "0.2.14" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.2.14.tgz" - integrity sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/accepts@*": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== - dependencies: - "@types/node" "*" - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.18" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/bcrypt@^3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-3.0.1.tgz" - integrity sha512-SwBrq5wb6jXP0o3O3jStdPWbKpimTImfdFD/OZE3uW+jhGpds/l5wMX9lfYOTDOa5Bod2QmOgo9ln+tMp2XP/w== - -"@types/bcryptjs@^2.4.2": - version "2.4.2" - resolved "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.2.tgz" - integrity sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ== - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bson@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@types/bson/-/bson-4.2.0.tgz" - integrity sha512-ELCPqAdroMdcuxqwMgUpifQyRoTpyYCNr1V9xKyF40VsBobsj+BbWNRvwGchMgBPGqkw655ypkjj2MEF5ywVwg== - dependencies: - bson "*" - -"@types/compression@^1.7.0": - version "1.7.2" - resolved "https://registry.npmjs.org/@types/compression/-/compression-1.7.2.tgz" - integrity sha512-lwEL4M/uAGWngWFLSG87ZDr2kLrbuR8p7X+QZB1OQlT+qkHsCPDVFnHPyXf4Vyl4yDDorNY+mAhosxkCvppatg== - dependencies: - "@types/express" "*" - -"@types/config@^0.0.38": - version "0.0.38" - resolved "https://registry.npmjs.org/@types/config/-/config-0.0.38.tgz" - integrity sha512-z2WizAfIFgSv8SQfQ8c0LlbDAcK47D/o93XW6bxZ9t3bs4fmmfAPjk1nhAIBTG84PBBCHfSPM+8g7vhLdbFokg== - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/content-disposition@*": - version "0.5.4" - resolved "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ== - -"@types/cookiejar@*": - version "2.1.2" - resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz" - integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== - -"@types/cookies@*": - version "0.7.7" - resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz" - integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/cors@^2.8.10": - version "2.8.12" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/dotenv@^8.2.0": - version "8.2.0" - resolved "https://registry.npmjs.org/@types/dotenv/-/dotenv-8.2.0.tgz" - integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw== - dependencies: - dotenv "*" - -"@types/express-handlebars@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@types/express-handlebars/-/express-handlebars-3.1.0.tgz" - integrity sha512-Bn6j/tfhAnZEAbMtcNUFk6ESu1I6PE2pYLbUn1PR1MyNonUuQErlQ71n9DPppHK7uAuMCfgcF0oT28Lh0ej4SQ== - -"@types/express-rate-limit@^5.1.1": - version "5.1.3" - resolved "https://registry.npmjs.org/@types/express-rate-limit/-/express-rate-limit-5.1.3.tgz" - integrity sha512-H+TYy3K53uPU2TqPGFYaiWc2xJV6+bIFkDd/Ma2/h67Pa6ARk9kWE0p/K9OH1Okm0et9Sfm66fmXoAxsH2PHXg== - dependencies: - "@types/express" "*" - -"@types/express-serve-static-core@^4.17.18": - version "4.17.27" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz" - integrity sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*", "@types/express@^4.17.11": - version "4.17.13" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/faker@^5.5.3": - version "5.5.9" - resolved "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz" - integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== - -"@types/fs-extra@^8.1.1": - version "8.1.2" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz" - integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== - dependencies: - "@types/node" "*" - -"@types/glob@*", "@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/helmet@^0.0.48": - version "0.0.48" - resolved "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.48.tgz" - integrity sha512-C7MpnvSDrunS1q2Oy1VWCY7CDWHozqSnM8P4tFeRTuzwqni+PYOjEredwcqWG+kLpYcgLsgcY3orHB54gbx2Jw== - dependencies: - "@types/express" "*" - -"@types/http-assert@*": - version "1.5.3" - resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz" - integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== - -"@types/http-errors@*": - version "1.8.1" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz" - integrity sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q== - -"@types/i18n@^0.13.0": - version "0.13.2" - resolved "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.2.tgz" - integrity sha512-FdzABEs0NNi99xN+FgWAAeCenaNo+5jolCxr2RhQrySinNPH8rkgjbw6OMGW9+HSgnGeuI7C6y2lC83m6JN3bg== - -"@types/inversify-inject-decorators@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/inversify-inject-decorators/-/inversify-inject-decorators-2.0.0.tgz" - integrity sha1-mlC5tHOluL1RpkV1QNEt293N8l4= - dependencies: - inversify-inject-decorators "*" - -"@types/ioredis@*": - version "4.28.5" - resolved "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.5.tgz" - integrity sha512-bp5mdpzscWZMEE/jLvvzze5TZFYGhynB1am69l/a0XPqZRXWpbswY6lb5buEht57jOnw5pPG5zL9pFUWw1nggw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^27.0.2": - version "27.4.0" - resolved "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz" - integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== - dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/jwt-simple@^0.5.33": - version "0.5.33" - resolved "https://registry.npmjs.org/@types/jwt-simple/-/jwt-simple-0.5.33.tgz" - integrity sha1-+4Ocq+gUN5VPfQzQF2CtgJbsUm4= - -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - -"@types/koa-bodyparser@^4.3.1": - version "4.3.5" - resolved "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.5.tgz" - integrity sha512-NRqqoTtt7cfdDk/KNo+EwCIKRuzPAu/wsaZ7tgIvSIBtNfxuZHYueaLoWdxX3ZftWavQv07NE46TcpyoZGqpgQ== - dependencies: - "@types/koa" "*" - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - -"@types/koa-cors@^0.0.2": - version "0.0.2" - resolved "https://registry.npmjs.org/@types/koa-cors/-/koa-cors-0.0.2.tgz" - integrity sha512-uNaDY26HUVO+2C6arK8ZFODs9mBjYprD8mlvkVe2bYdX9wzEeKtycVXPafXpUkePhMh4sffIMkhRDyedokG/QA== - dependencies: - "@types/koa" "*" - -"@types/koa-hbs@^1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/@types/koa-hbs/-/koa-hbs-1.0.7.tgz" - integrity sha512-xs+IdwMkEQmhLB2PqqkNrQm/0l/Ewh3o56unQncFqPUj8RIl9RjPmpMV5E3SvE7l86kvt7A+Kd7QXKhJwqNJKg== - dependencies: - "@types/koa" "*" - handlebars "^4.1.0" - -"@types/koa-pino-logger@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/koa-pino-logger/-/koa-pino-logger-3.0.1.tgz" - integrity sha512-KqGej3mNnP94KA8RBiSr4w0rqcQVUvInG6PjnGPIjKPex6iUWiVOL4c6UeoiUQYDMb/WQVZRmaC7dzPsev1IKw== - dependencies: - "@types/koa" "*" - "@types/pino" "6.3" - "@types/pino-http" "*" - -"@types/koa-ratelimit@^4.2.3": - version "4.2.4" - resolved "https://registry.npmjs.org/@types/koa-ratelimit/-/koa-ratelimit-4.2.4.tgz" - integrity sha512-rL+Q20Za2bqZ2koplBJbx7DpJXDi5uCLEYjJ01l+jVLkoQ14//Cg4x8Aqdmssbr95tJexHgwj91/29LSCRHUlw== - dependencies: - "@types/ioredis" "*" - "@types/koa" "*" - "@types/redis" "^2.8.0" - -"@types/koa-router@^7.4.2": - version "7.4.4" - resolved "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.4.4.tgz" - integrity sha512-3dHlZ6CkhgcWeF6wafEUvyyqjWYfKmev3vy1PtOmr0mBc3wpXPU5E8fBBd4YQo5bRpHPfmwC5yDaX7s4jhIN6A== - dependencies: - "@types/koa" "*" - -"@types/koa@*", "@types/koa@^2.13.3": - version "2.13.4" - resolved "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz" - integrity sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa__multer@^2.0.3": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/koa__multer/-/koa__multer-2.0.4.tgz" - integrity sha512-WRkshXhE5rpYFUbbtAjyMhdOOSdbu1XX+2AQlRNM6AZtgxd0/WXMU4lrP7e9tk5HWVTWbx8DOOsVBmfHjSGJ4w== - dependencies: - "@types/koa" "*" - -"@types/lodash@^4.14.168": - version "4.14.178" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz" - integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== - -"@types/md5@^2.3.0": - version "2.3.1" - resolved "https://registry.npmjs.org/@types/md5/-/md5-2.3.1.tgz" - integrity sha512-OK3oe+ALIoPSo262lnhAYwpqFNXbiwH2a+0+Z5YBnkQEwWD8fk5+PIeRhYA48PzvX9I4SGNpWy+9bLj8qz92RQ== - dependencies: - "@types/node" "*" - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/minio@^7.0.7": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/minio/-/minio-7.0.11.tgz" - integrity sha512-ltn30nGhtxytil4jFU1Tt6lvD+JnUyCYHfNBKsRjZ76ueSkrQdIByghcnhFvr15at3cnvj+tVn+euCqTX/5ejQ== - dependencies: - "@types/node" "*" - -"@types/mongodb@^4.0.7": - version "4.0.7" - resolved "https://registry.npmjs.org/@types/mongodb/-/mongodb-4.0.7.tgz" - integrity sha512-lPUYPpzA43baXqnd36cZ9xxorprybxXDzteVKCPAdp14ppHtFJHnXYvNpmBvtMUTb5fKXVv6sVbzo1LHkWhJlw== - dependencies: - mongodb "*" - -"@types/mongoose@^5.11.97": - version "5.11.97" - resolved "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.11.97.tgz" - integrity sha512-cqwOVYT3qXyLiGw7ueU2kX9noE8DPGRY6z8eUxudhXY8NZ7DMKYAxyZkLSevGfhCX3dO/AoX5/SO9lAzfjon0Q== - dependencies: - mongoose "*" - -"@types/multer@^1.4.5": - version "1.4.7" - resolved "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz" - integrity sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA== - dependencies: - "@types/express" "*" - -"@types/node-cron@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/node-cron/-/node-cron-3.0.0.tgz" - integrity sha512-RNBIyVwa/1v2r8/SqK8tadH2sJlFRAo5Ghac/cOcCv4Kp94m0I03UmAh9WVhCqS9ZdB84dF3x47p9aTw8E4c4A== - -"@types/node@*": - version "17.0.6" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.6.tgz" - integrity sha512-+XBAjfZmmivILUzO0HwBJoYkAyyySSLg5KCGBDFLomJo0sV6szvVLAf4ANZZ0pfWzgEds5KmGLG9D5hfEqOhaA== - -"@types/node@< 17.0.6": - version "17.0.5" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz" - integrity sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw== - -"@types/nodemailer@^6.4.1": - version "6.4.4" - resolved "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.4.tgz" - integrity sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw== - dependencies: - "@types/node" "*" - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/pg@^8.6.1": - version "8.6.3" - resolved "https://registry.npmjs.org/@types/pg/-/pg-8.6.3.tgz" - integrity sha512-P0RrXJcw1hPS+KF0nBCC3FEEdZBfRsHbYtAzbY2QTc0gC4jFQvjQxIKXs0X/NgPhPI4DbAzdeW7WMCjaWjT7Pg== - dependencies: - "@types/node" "*" - pg-protocol "*" - pg-types "^2.2.0" - -"@types/pino-http@*": - version "5.8.1" - resolved "https://registry.npmjs.org/@types/pino-http/-/pino-http-5.8.1.tgz" - integrity sha512-A9MW6VCnx5ii7s+Fs5aFIw+aSZcBCpsZ/atpxamu8tTsvWFacxSf2Hrn1Ohn1jkVRB/LiPGOapRXcFawDBnDnA== - dependencies: - "@types/pino" "6.3" - -"@types/pino-pretty@*": - version "4.7.4" - resolved "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-4.7.4.tgz" - integrity sha512-h//vRnIpr+9wzyzuwy1dtUNsPNGog/YvZJMEbwBUAVe5/wSHDLdy5qYV0k+TpRDqHYhOdAoLbw5K+wM24e/wHw== - dependencies: - "@types/node" "*" - "@types/pino" "6.3" - -"@types/pino-std-serializers@*": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz" - integrity sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ== - dependencies: - "@types/node" "*" - -"@types/pino@6.3": - version "6.3.12" - resolved "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz" - integrity sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw== - dependencies: - "@types/node" "*" - "@types/pino-pretty" "*" - "@types/pino-std-serializers" "*" - sonic-boom "^2.1.0" - -"@types/pino@^7.0.5": - version "7.0.5" - resolved "https://registry.npmjs.org/@types/pino/-/pino-7.0.5.tgz" - integrity sha512-wKoab31pknvILkxAF8ss+v9iNyhw5Iu/0jLtRkUD74cNfOOLJNnqfFKAv0r7wVaTQxRZtWrMpGfShwwBjOcgcg== - dependencies: - pino "*" - -"@types/prettier@^2.1.5": - version "2.4.2" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== - -"@types/qs@*", "@types/qs@^6.9.6": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/redis@^2.8.0": - version "2.8.32" - resolved "https://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz" - integrity sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w== - dependencies: - "@types/node" "*" - -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/shelljs@^0.8.8": - version "0.8.10" - resolved "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.10.tgz" - integrity sha512-nhBdUA/n0nRo1B6E4BuRnUvllYAqal4T9zd91ZDnBh+qQMQTwvxmJHx6xEn/0vdjP2kqEA5eVeLazs4nMxeuFg== - dependencies: - "@types/glob" "*" - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/superagent@*": - version "4.1.14" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.14.tgz" - integrity sha512-iiXaOL2wSbnSY4qg0mFPWJHL9iwyEsoNYwaHF2w58/fsVAQJlj+KUfFAFZu+nzbz+b7dUprJEAc+O9vhHHhQTA== - dependencies: - "@types/cookiejar" "*" - "@types/node" "*" - -"@types/supertest@^2.0.11": - version "2.0.11" - resolved "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.11.tgz" - integrity sha512-uci4Esokrw9qGb9bvhhSVEjd6rkny/dk5PK/Qz4yxKiyppEI+dOPlNrZBahE3i+PoKFYyDxChVXZ/ysS/nrm1Q== - dependencies: - "@types/superagent" "*" - -"@types/tmp@^0.2.0": - version "0.2.3" - resolved "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.3.tgz" - integrity sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA== - -"@types/uuid@^8.3.0": - version "8.3.3" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.3.tgz" - integrity sha512-0LbEEx1zxrYB3pgpd1M5lEhLcXjKJnYghvhTRgaBeUivLHMDM1TzF3IJ6hXU2+8uA4Xz+5BA63mtZo5DjVT8iA== - -"@types/validator@^13.7.0": - version "13.7.1" - resolved "https://registry.npmjs.org/@types/validator/-/validator-13.7.1.tgz" - integrity sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q== - -"@types/web-push@^3.3.0": - version "3.3.2" - resolved "https://registry.npmjs.org/@types/web-push/-/web-push-3.3.2.tgz" - integrity sha512-JxWGVL/m7mWTIg4mRYO+A6s0jPmBkr4iJr39DqJpRJAc+jrPiEe1/asmkwerzRon8ZZDxaZJpsxpv0Z18Wo9gw== - dependencies: - "@types/node" "*" - -"@types/webidl-conversions@*": - version "6.1.1" - resolved "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz" - integrity sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q== - -"@types/whatwg-url@^8.2.1": - version "8.2.1" - resolved "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz" - integrity sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ== - dependencies: - "@types/node" "*" - "@types/webidl-conversions" "*" - -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - -"@types/zen-observable@0.8.3": - version "0.8.3" - resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz" - integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== - -"@typescript-eslint/eslint-plugin@^5.10.2": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.0.tgz" - integrity sha512-fwCMkDimwHVeIOKeBHiZhRUfJXU8n6xW1FL9diDxAyGAFvKcH4csy0v7twivOQdQdA0KC8TDr7GGRd3L4Lv0rQ== - dependencies: - "@typescript-eslint/scope-manager" "5.12.0" - "@typescript-eslint/type-utils" "5.12.0" - "@typescript-eslint/utils" "5.12.0" - debug "^4.3.2" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.2.0" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.10.2": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.0.tgz" - integrity sha512-MfSwg9JMBojMUoGjUmX+D2stoQj1CBYTCP0qnnVtu9A+YQXVKNtLjasYh+jozOcrb/wau8TCfWOkQTiOAruBog== - dependencies: - "@typescript-eslint/scope-manager" "5.12.0" - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/typescript-estree" "5.12.0" - debug "^4.3.2" - -"@typescript-eslint/scope-manager@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.0.tgz" - integrity sha512-GAMobtIJI8FGf1sLlUWNUm2IOkIjvn7laFWyRx7CLrv6nLBI7su+B7lbStqVlK5NdLvHRFiJo2HhiDF7Ki01WQ== - dependencies: - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/visitor-keys" "5.12.0" - -"@typescript-eslint/type-utils@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.0.tgz" - integrity sha512-9j9rli3zEBV+ae7rlbBOotJcI6zfc6SHFMdKI9M3Nc0sy458LJ79Os+TPWeBBL96J9/e36rdJOfCuyRSgFAA0Q== - dependencies: - "@typescript-eslint/utils" "5.12.0" - debug "^4.3.2" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.0.tgz" - integrity sha512-JowqbwPf93nvf8fZn5XrPGFBdIK8+yx5UEGs2QFAYFI8IWYfrzz+6zqlurGr2ctShMaJxqwsqmra3WXWjH1nRQ== - -"@typescript-eslint/typescript-estree@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.0.tgz" - integrity sha512-Dd9gVeOqt38QHR0BEA8oRaT65WYqPYbIc5tRFQPkfLquVEFPD1HAtbZT98TLBkEcCkvwDYOAvuSvAD9DnQhMfQ== - dependencies: - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/visitor-keys" "5.12.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.0.tgz" - integrity sha512-k4J2WovnMPGI4PzKgDtQdNrCnmBHpMUFy21qjX2CoPdoBcSBIMvVBr9P2YDP8jOqZOeK3ThOL6VO/sy6jtnvzw== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.12.0" - "@typescript-eslint/types" "5.12.0" - "@typescript-eslint/typescript-estree" "5.12.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.12.0": - version "5.12.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.0.tgz" - integrity sha512-cFwTlgnMV6TgezQynx2c/4/tx9Tufbuo9LPzmWqyRC3QC4qTGkAG1C6pBr0/4I10PAI/FlYunI3vJjIcu+ZHMg== - dependencies: - "@typescript-eslint/types" "5.12.0" - eslint-visitor-keys "^3.0.0" - -"@zxing/text-encoding@0.9.0": - version "0.9.0" - resolved "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz" - integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== - -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abortcontroller-polyfill@^1.1.9: - version "1.7.3" - resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz" - integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== - -accepts@^1.3.5, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -agent-base@6: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@4.1.1, ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -any-promise@^1.0.0, any-promise@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== - -append-field@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" - integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -args@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/args/-/args-5.0.1.tgz" - integrity sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ== - dependencies: - camelcase "5.0.0" - chalk "2.4.2" - leven "2.1.0" - mri "1.1.4" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-each@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" - integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-slice@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" - integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== - -array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asn1.js@^5.2.0, asn1.js@^5.3.0: - version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert-options@0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz" - integrity sha512-7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-mutex@^0.3.0: - version "0.3.2" - resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz" - integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== - dependencies: - tslib "^2.3.1" - -async-ratelimiter@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/async-ratelimiter/-/async-ratelimiter-1.3.0.tgz" - integrity sha512-MvChExXc5nqaui7PQN7qroxe7mcmivBdYO3kDNAsmOnsptI36LeqUUrB5fLq5IQTW+d1ljvikSkxXVw8mCLlTw== - -async@^3.1.0: - version "3.2.2" - resolved "https://registry.npmjs.org/async/-/async-3.2.2.tgz" - integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -babel-jest@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.5.tgz" - integrity sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA== - dependencies: - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.4.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz" - integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz" - integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== - dependencies: - babel-plugin-jest-hoist "^27.4.0" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz" - integrity sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - node-addon-api "^3.1.0" - -bcryptjs@^2.4.3: - version "2.4.3" - resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" - integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bl@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz" - integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -block-stream2@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz" - integrity sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg== - dependencies: - readable-stream "^3.4.0" - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.1: - version "1.19.1" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== - dependencies: - bytes "3.1.1" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" - type-is "~1.6.18" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -bowser@2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz" - integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== - -boxen@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-or-node@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz" - integrity sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg== - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.6.6: - version "4.19.1" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -bson@*, bson@^4.2.2, bson@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/bson/-/bson-4.6.0.tgz" - integrity sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ== - dependencies: - buffer "^5.6.0" - -bson@^1.1.4: - version "1.1.6" - resolved "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz" - integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg== - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz" - integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= - dependencies: - dicer "0.2.5" - readable-stream "1.1.x" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-content-type@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz" - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== - dependencies: - mime-types "^2.1.18" - ylru "^1.2.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.1.0, camelcase@^6.2.0: - version "6.2.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== - -camelize@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz" - integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286: - version "1.0.30001294" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz" - integrity sha512-LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g== - -catch-decorator@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/catch-decorator/-/catch-decorator-2.0.0.tgz" - integrity sha512-Y4cmIy7zsYKOoYxY6U0qNxzzQiwjJuI4gdVJGcH0lKb7BZO3P/qZKWJZcE0bGICBzzGRTl7VL0R1dBiOjc5u8w== - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -child_process@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz" - integrity sha1-sffn/HPSXn/R1FWtyU4UODAYK1o= - -chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -class-validator@^0.13.1: - version "0.13.2" - resolved "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz" - integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== - dependencies: - libphonenumber-js "^1.9.43" - validator "^13.7.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-highlight@^2.1.11: - version "2.1.11" - resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz" - integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== - dependencies: - chalk "^4.0.0" - highlight.js "^10.7.1" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" - -cli-truncate@2.1.0, cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@2.1.2, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -co-body@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz" - integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== - dependencies: - inflation "^2.0.0" - qs "^6.5.2" - raw-body "^2.3.3" - type-is "^1.6.16" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -colord@^2.9.1: - version "2.9.2" - resolved "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz" - integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== - -colorette@1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colorette@2.0.16, colorette@^2.0.16, colorette@^2.0.7: - version "2.0.16" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - -colorette@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commander@^7.0.0, commander@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^8.2.0, commander@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - -component-emitter@^1.2.1, component-emitter@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concurrently@^6.3.0: - version "6.5.1" - resolved "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz" - integrity sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag== - dependencies: - chalk "^4.1.0" - date-fns "^2.16.1" - lodash "^4.17.21" - rxjs "^6.6.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^16.2.0" - -config@^3.3.6: - version "3.3.6" - resolved "https://registry.npmjs.org/config/-/config-3.3.6.tgz" - integrity sha512-Hj5916C5HFawjYJat1epbyY2PlAgLpBtDUlr0MxGLgo3p5+7kylyvnRY18PqJHgnNWXcdd0eWDemT7eYWuFgwg== - dependencies: - json5 "^2.1.1" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -content-disposition@0.5.4, content-disposition@~0.5.2: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-security-policy-builder@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz" - integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ== - -content-type@^1.0.4, content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -conventional-changelog-angular@^5.0.11: - version "5.0.13" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-conventionalcommits@^4.3.1: - version "4.6.3" - resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz" - integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-commits-parser@^3.2.2: - version "3.2.4" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -cookiejar@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -cookies@~0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz" - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== - dependencies: - depd "~2.0.0" - keygrip "~1.1.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-to@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz" - integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cors@^2.8.5: - version "2.8.5" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cp-file@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz" - integrity sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw== - dependencies: - graceful-fs "^4.1.2" - make-dir "^3.0.0" - nested-error-stacks "^2.0.0" - p-event "^4.1.0" - -cpy-cli@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/cpy-cli/-/cpy-cli-3.1.1.tgz" - integrity sha512-HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg== - dependencies: - cpy "^8.0.0" - meow "^6.1.1" - -cpy@^8.0.0: - version "8.1.2" - resolved "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz" - integrity sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg== - dependencies: - arrify "^2.0.1" - cp-file "^7.0.0" - globby "^9.2.0" - has-glob "^1.0.0" - junk "^3.1.0" - nested-error-stacks "^2.1.0" - p-all "^2.1.0" - p-filter "^2.1.0" - p-map "^3.0.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -crypto-browserify@^3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-declaration-sorter@^6.0.3: - version "6.1.4" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz" - integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== - dependencies: - timsort "^0.3.0" - -css-select@^4.1.3: - version "4.2.1" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz" - integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== - dependencies: - boolbase "^1.0.0" - css-what "^5.1.0" - domhandler "^4.3.0" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^5.1.12: - version "5.1.12" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz" - integrity sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^3.0.2" - postcss-calc "^8.2.0" - postcss-colormin "^5.2.5" - postcss-convert-values "^5.0.4" - postcss-discard-comments "^5.0.3" - postcss-discard-duplicates "^5.0.3" - postcss-discard-empty "^5.0.3" - postcss-discard-overridden "^5.0.4" - postcss-merge-longhand "^5.0.6" - postcss-merge-rules "^5.0.6" - postcss-minify-font-values "^5.0.4" - postcss-minify-gradients "^5.0.6" - postcss-minify-params "^5.0.5" - postcss-minify-selectors "^5.1.3" - postcss-normalize-charset "^5.0.3" - postcss-normalize-display-values "^5.0.3" - postcss-normalize-positions "^5.0.4" - postcss-normalize-repeat-style "^5.0.4" - postcss-normalize-string "^5.0.4" - postcss-normalize-timing-functions "^5.0.3" - postcss-normalize-unicode "^5.0.4" - postcss-normalize-url "^5.0.5" - postcss-normalize-whitespace "^5.0.4" - postcss-ordered-values "^5.0.5" - postcss-reduce-initial "^5.0.3" - postcss-reduce-transforms "^5.0.4" - postcss-svgo "^5.0.4" - postcss-unique-selectors "^5.0.4" - -cssnano-utils@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz" - integrity sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ== - -cssnano@^5.0.15: - version "5.0.17" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz" - integrity sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw== - dependencies: - cssnano-preset-default "^5.1.12" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - -dasherize@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz" - integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg= - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -date-fns@^2.16.1: - version "2.28.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== - -dateformat@^4.6.3: - version "4.6.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@4.3.3, debug@4.x, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: - version "4.3.3" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -debug@4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -denque@^1.4.1: - version "1.5.1" - resolved "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz" - integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== - -denque@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz" - integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== - -depd@2.0.0, depd@^2.0.0, depd@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@^1.0.4, destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz" - integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" - integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dont-sniff-mimetype@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz" - integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug== - -dot-prop@^5.1.0, dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@*: - version "10.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -dotenv@16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" - integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== - -dotenv@8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -dotenv@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz" - integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== - -dotenv@^8.2.0: - version "8.6.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexify@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -ecdsa-sig-formatter@1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.17: - version "1.4.31" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.31.tgz" - integrity sha512-t3XVQtk+Frkv6aTD4RRk0OqosU+VLe1dQFW83MDer78ZD6a52frgXuYOIsLYTQiH2Lm+JB2OKYcn7zrX+YGAiQ== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@^1.0.2, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -envalid@^7.2.1: - version "7.2.2" - resolved "https://registry.npmjs.org/envalid/-/envalid-7.2.2.tgz" - integrity sha512-bl/3VF5PhoF26HlDWiE0NRRHUbKT/+UDP/+0JtOFmhUwK3cUPS7JgWYGbE8ArvA61T+SyNquxscLCS6y4Wnpdw== - dependencies: - tslib "2.3.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escaya@0.0.61: - version "0.0.61" - resolved "https://registry.npmjs.org/escaya/-/escaya-0.0.61.tgz" - integrity sha512-WLLmvdG72Z0pCq8XUBd03GEJlAiMceXFanjdQeEzeSiuV1ZgrJqbkU7ZEe/hu0OsBlg5wLlySEeOvfzcGoO8mg== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.2: - version "2.7.3" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-import@^2.25.4: - version "2.25.4" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" - is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" - -eslint-plugin-prefer-arrow@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz" - integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.8.0: - version "8.9.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz" - integrity sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q== - dependencies: - "@eslint/eslintrc" "^1.1.0" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz" - integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== - dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^5.0.0, execa@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -expect@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz" - integrity sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg== - dependencies: - "@jest/types" "^27.4.2" - ansi-styles "^5.0.0" - jest-get-type "^27.4.0" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-regex-util "^27.4.0" - -express-handlebars@^5.3.0: - version "5.3.5" - resolved "https://registry.npmjs.org/express-handlebars/-/express-handlebars-5.3.5.tgz" - integrity sha512-r9pzDc94ZNJ7FVvtsxLfPybmN0eFAUnR61oimNPRpD0D7nkLcezrkpZzoXS5TI75wYHRbflPLTU39B62pwB4DA== - dependencies: - glob "^7.2.0" - graceful-fs "^4.2.8" - handlebars "^4.7.7" - -express-rate-limit@^5.2.6: - version "5.5.1" - resolved "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.5.1.tgz" - integrity sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg== - -express-throttle@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/express-throttle/-/express-throttle-2.0.0.tgz" - integrity sha1-NxzKNIqCzPK5JDeRGd9+c8Bfas8= - dependencies: - lru-cache "^4.0.1" - -express@^4.17.1: - version "4.17.2" - resolved "https://registry.npmjs.org/express/-/express-4.17.2.tgz" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.4.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.9.6" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" - setprototypeof "1.2.0" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -faker@^5.5.3: - version "5.5.3" - resolved "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz" - integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fast-redact@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz" - integrity sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg== - -fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: - version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fast-url-parser@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz" - integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= - dependencies: - punycode "^1.3.2" - -fast-xml-parser@^3.17.5: - version "3.21.1" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz" - integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg== - dependencies: - strnum "^1.0.4" - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -feature-policy@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz" - integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ== - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -fined@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" - integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== - dependencies: - expand-tilde "^2.0.2" - is-plain-object "^2.0.3" - object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" - -flagged-respawn@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" - integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatstr@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz" - integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== - -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -follow-redirects@^1.14.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@~0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-exists@*: - version "0.1.1" - resolved "https://registry.npmjs.org/fs-exists/-/fs-exists-0.1.1.tgz" - integrity sha1-oBJnYsXpQWo93mlYkc614p/H4TM= - -fs-extra@10.0.0, fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz" - integrity sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-promise@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz" - integrity sha1-9k5PhUvPaJqovdy6JokW2z20aFQ= - dependencies: - any-promise "^1.3.0" - fs-extra "^2.0.0" - mz "^2.6.0" - thenify-all "^1.6.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsp@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/fsp/-/fsp-0.1.2.tgz" - integrity sha1-QOLzPanutPpFO2EMkAddnxpSg2s= - dependencies: - fs-exists "*" - when ">=3.6.2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz" - integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== - -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getopts@2.2.5: - version "2.2.5" - resolved "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz" - integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA== - -getopts@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz" - integrity sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA== - -git-raw-commits@^2.0.0: - version "2.0.11" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - dependencies: - ini "2.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.2.0, globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== - dependencies: - type-fest "^0.20.2" - -globby@11.0.3: - version "11.0.3" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz" - integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@11.0.4, globby@^11.0.3, globby@^11.0.4: - version "11.0.4" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.8: - version "4.2.8" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -handlebars@^4.0.5, handlebars@^4.1.0, handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz" - integrity sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc= - dependencies: - is-glob "^3.0.0" - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -helmet-crossdomain@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz" - integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA== - -helmet-csp@2.10.0: - version "2.10.0" - resolved "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.10.0.tgz" - integrity sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w== - dependencies: - bowser "2.9.0" - camelize "1.0.0" - content-security-policy-builder "2.1.0" - dasherize "2.0.0" - -helmet@^3.23.3: - version "3.23.3" - resolved "https://registry.npmjs.org/helmet/-/helmet-3.23.3.tgz" - integrity sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA== - dependencies: - depd "2.0.0" - dont-sniff-mimetype "1.1.0" - feature-policy "0.3.0" - helmet-crossdomain "0.4.0" - helmet-csp "2.10.0" - hide-powered-by "1.1.0" - hpkp "2.0.0" - hsts "2.2.0" - nocache "2.1.0" - referrer-policy "1.2.0" - x-xss-protection "1.3.0" - -helmet@^4.4.1: - version "4.6.0" - resolved "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz" - integrity sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg== - -hide-powered-by@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz" - integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg== - -highlight.js@^10.7.1: - version "10.7.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== - dependencies: - lru-cache "^6.0.0" - -hpkp@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz" - integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI= - -hsts@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz" - integrity sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ== - dependencies: - depd "2.0.0" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -htmlnano@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.0.tgz" - integrity sha512-thKQfhcp2xgtsWNE27A2bliEeqVL5xjAgGn0wajyttvFFsvFWWah1ntV9aEX61gz0T6MBQ5xK/1lXuEumhJTcg== - dependencies: - cosmiconfig "^7.0.1" - posthtml "^0.16.5" - timsort "^0.3.0" - -htmlparser2@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz" - integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.2" - domutils "^2.8.0" - entities "^3.0.1" - -http-assert@^1.3.0: - version "1.5.0" - resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz" - integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w== - dependencies: - deep-equal "~1.0.1" - http-errors "~1.8.0" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@1.8.1, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: - version "1.8.1" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-status-codes@^2.1.4: - version "2.2.0" - resolved "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz" - integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== - -http_ece@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/http_ece/-/http_ece-1.1.0.tgz" - integrity sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA== - dependencies: - urlsafe-base64 "~1.0.0" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -husky@^7.0.4: - version "7.0.4" - resolved "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz" - integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== - -i18n@^0.13.2: - version "0.13.4" - resolved "https://registry.npmjs.org/i18n/-/i18n-0.13.4.tgz" - integrity sha512-GZnXWeA15jTi9gc1jfgrJcSrNYDg7qbJXSYMuibqPYb1ThORmGCeM+gL6LrDagYRHh87/q/D0jRSOhAfv6wAow== - dependencies: - debug "^4.3.3" - make-plural "^7.0.0" - math-interval-parser "^2.0.1" - messageformat "^2.3.0" - mustache "^4.2.0" - sprintf-js "^1.1.2" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= - -ignore@^4.0.3, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -immutable@^4.0.0-rc.12: - version "4.0.0" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflation@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz" - integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== - -inversify-express-utils@^6.4.2: - version "6.4.3" - resolved "https://registry.npmjs.org/inversify-express-utils/-/inversify-express-utils-6.4.3.tgz" - integrity sha512-7YvEXeZ912N9hAQ9x0+q9zGV670I1imaIQJzzaBXdPQQiodPEGCO6sq53ODczgyP6M6x4kkQNsu9MlzQbVCtAQ== - dependencies: - express "^4.17.1" - http-status-codes "^2.1.4" - inversify "^6.0.1" - -inversify-inject-decorators@*, inversify-inject-decorators@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.1.0.tgz" - integrity sha512-/seBlVp5bXrLQS3DpKEmlgeZL6C7Tf/QITd+IMQrbBBGuCbxb7k3hRAWu9XSreNpFzLgSboz3sClLSEmGwHphw== - -inversify@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz" - integrity sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5, is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^3.0.0, is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-json@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz" - integrity sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8= - -is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-npm@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" - integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - -is-typed-array@^1.1.3, is-typed-array@^1.1.7: - version "1.1.8" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz" - integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.18.5" - foreach "^2.0.5" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.1.3" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz" - integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== - dependencies: - "@jest/types" "^27.4.2" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.5.tgz" - integrity sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.4.2" - is-generator-fn "^2.0.0" - jest-each "^27.4.2" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - pretty-format "^27.4.2" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.5.tgz" - integrity sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg== - dependencies: - "@jest/core" "^27.4.5" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.4.5.tgz" - integrity sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.4.5" - "@jest/types" "^27.4.2" - babel-jest "^27.4.5" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.4.5" - jest-environment-jsdom "^27.4.4" - jest-environment-node "^27.4.4" - jest-get-type "^27.4.0" - jest-jasmine2 "^27.4.5" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-runner "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - micromatch "^4.0.4" - pretty-format "^27.4.2" - slash "^3.0.0" - -jest-diff@^27.0.0, jest-diff@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz" - integrity sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" - -jest-docblock@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz" - integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz" - integrity sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg== - dependencies: - "@jest/types" "^27.4.2" - chalk "^4.0.0" - jest-get-type "^27.4.0" - jest-util "^27.4.2" - pretty-format "^27.4.2" - -jest-environment-jsdom@^27.4.4: - version "27.4.4" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz" - integrity sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.2" - jest-util "^27.4.2" - jsdom "^16.6.0" - -jest-environment-node@^27.4.4: - version "27.4.4" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.4.tgz" - integrity sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.2" - jest-util "^27.4.2" - -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== - -jest-haste-map@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.5.tgz" - integrity sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q== - dependencies: - "@jest/types" "^27.4.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.4.0" - jest-serializer "^27.4.0" - jest-util "^27.4.2" - jest-worker "^27.4.5" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz" - integrity sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.4.4" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.4.2" - is-generator-fn "^2.0.0" - jest-each "^27.4.2" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - pretty-format "^27.4.2" - throat "^6.0.1" - -jest-leak-detector@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz" - integrity sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw== - dependencies: - jest-get-type "^27.4.0" - pretty-format "^27.4.2" - -jest-matcher-utils@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz" - integrity sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ== - dependencies: - chalk "^4.0.0" - jest-diff "^27.4.2" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" - -jest-message-util@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz" - integrity sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.4.2" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz" - integrity sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== - -jest-resolve-dependencies@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz" - integrity sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w== - dependencies: - "@jest/types" "^27.4.2" - jest-regex-util "^27.4.0" - jest-snapshot "^27.4.5" - -jest-resolve@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.5.tgz" - integrity sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw== - dependencies: - "@jest/types" "^27.4.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-pnp-resolver "^1.2.2" - jest-util "^27.4.2" - jest-validate "^27.4.2" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.5.tgz" - integrity sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg== - dependencies: - "@jest/console" "^27.4.2" - "@jest/environment" "^27.4.4" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.4.0" - jest-environment-jsdom "^27.4.4" - jest-environment-node "^27.4.4" - jest-haste-map "^27.4.5" - jest-leak-detector "^27.4.2" - jest-message-util "^27.4.2" - jest-resolve "^27.4.5" - jest-runtime "^27.4.5" - jest-util "^27.4.2" - jest-worker "^27.4.5" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.5.tgz" - integrity sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ== - dependencies: - "@jest/console" "^27.4.2" - "@jest/environment" "^27.4.4" - "@jest/globals" "^27.4.4" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-message-util "^27.4.2" - jest-mock "^27.4.2" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^16.2.0" - -jest-serializer@^27.4.0: - version "27.4.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz" - integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.5.tgz" - integrity sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.4.2" - graceful-fs "^4.2.4" - jest-diff "^27.4.2" - jest-get-type "^27.4.0" - jest-haste-map "^27.4.5" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-resolve "^27.4.5" - jest-util "^27.4.2" - natural-compare "^1.4.0" - pretty-format "^27.4.2" - semver "^7.3.2" - -jest-util@^27.0.0, jest-util@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz" - integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.4" - picomatch "^2.2.3" - -jest-validate@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz" - integrity sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A== - dependencies: - "@jest/types" "^27.4.2" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.4.0" - leven "^3.1.0" - pretty-format "^27.4.2" - -jest-watcher@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz" - integrity sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg== - dependencies: - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.4.2" - string-length "^4.0.1" - -jest-worker@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz" - integrity sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^27.4.5: - version "27.4.5" - resolved "https://registry.npmjs.org/jest/-/jest-27.4.5.tgz" - integrity sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg== - dependencies: - "@jest/core" "^27.4.5" - import-local "^3.0.2" - jest-cli "^27.4.5" - -joycon@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.0.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/json-source-map/-/json-source-map-0.6.1.tgz" - integrity sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz" - integrity sha1-GjhU4o0rvuqzHMfd9oPS3cVlJwg= - -json5@2.x, json5@^2.1.1, json5@^2.1.2, json5@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - -jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - -junk@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz" - integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== - -jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== - dependencies: - jwa "^1.4.1" - safe-buffer "^5.0.1" - -jws@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz" - integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== - dependencies: - jwa "^2.0.0" - safe-buffer "^5.0.1" - -jwt-simple@^0.5.6: - version "0.5.6" - resolved "https://registry.npmjs.org/jwt-simple/-/jwt-simple-0.5.6.tgz" - integrity sha512-40aUybvhH9t2h71ncA1/1SbtTNCVZHgsTsTgqPUxGWDmUDrXyDf2wMNQKEbdBjbf4AI+fQhbECNTV6lWxQKUzg== - -kareem@2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/kareem/-/kareem-2.3.3.tgz" - integrity sha512-uESCXM2KdtOQ8LOvKyTUXEeg0MkYp4wGglTIpGcYHvjJcS5sn2Wkfrfit8m4xSbaNDAw2KdI9elgkOxZbrFYbg== - -keygrip@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz" - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== - dependencies: - tsscmp "1.0.6" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -knex@0.21.19: - version "0.21.19" - resolved "https://registry.npmjs.org/knex/-/knex-0.21.19.tgz" - integrity sha512-6etvrq9XI1Ck6mEc/XiXFGVpD1Lmj6v9XWojqZgEbOvyMbW7XRvgZ99yIhN/kaBH+43FEy3xv/AcbRaH+1pJtw== - dependencies: - colorette "1.2.1" - commander "^6.2.0" - debug "4.3.1" - esm "^3.2.25" - getopts "2.2.5" - interpret "^2.2.0" - liftoff "3.1.0" - lodash "^4.17.20" - pg-connection-string "2.4.0" - tarn "^3.0.1" - tildify "2.0.0" - v8flags "^3.2.0" - -knex@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/knex/-/knex-1.0.3.tgz#a5f97aa98e5e036cfd0209a90d53b2a411280e84" - integrity sha512-rY1T7cgTQGHAUD9TshMka37bd+SEK+koPXXvZQEIoE8yjJ/E8ShsenaAmr3oaNNzqXuKD/SC0qlYtp7Js8tAXA== - dependencies: - colorette "2.0.16" - commander "^8.3.0" - debug "4.3.3" - escalade "^3.1.1" - esm "^3.2.25" - getopts "2.3.0" - interpret "^2.2.0" - lodash "^4.17.21" - pg-connection-string "2.5.0" - rechoir "^0.8.0" - resolve-from "^5.0.0" - tarn "^3.0.2" - tildify "2.0.0" - -koa-bodyparser@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz" - integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== - dependencies: - co-body "^6.0.0" - copy-to "^2.0.1" - -koa-compose@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz" - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== - -koa-convert@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz" - integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== - dependencies: - co "^4.6.0" - koa-compose "^4.1.0" - -koa-cors@^0.0.16: - version "0.0.16" - resolved "https://registry.npmjs.org/koa-cors/-/koa-cors-0.0.16.tgz" - integrity sha1-mBB5k6eQnjTAQphsXsYVbXfzQy4= - -koa-hbs@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/koa-hbs/-/koa-hbs-0.9.0.tgz" - integrity sha1-yKKvKTOkmsqkehl+LCefiy7Nt24= - dependencies: - glob "^7.0.5" - handlebars "^4.0.5" - -koa-helmet@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/koa-helmet/-/koa-helmet-6.1.0.tgz" - integrity sha512-WymEv4qo/7ghh15t+1qTjvZBmZkmVlTtfnpe5oxn8m8mO2Q2rKJ3eMvWuQGW/6yVxN9+hQ75evuWcg3XBbFLbg== - dependencies: - helmet "^4.4.1" - -koa-pino-logger@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz" - integrity sha512-teJsT88JLRBYH7pJACGAwAHfl2y/x5u5aSPD03Z/HW6QDMAWyRxk4dsY0/UbtM8wgaXIaxZgIFUxxvgiQFr6WQ== - dependencies: - pino-http "^5.0.1" - -koa-qs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/koa-qs/-/koa-qs-3.0.0.tgz" - integrity sha512-05IB5KirwMs3heWW26iTz46HuMAtrlrRMus/aNH1BRDocLyF/099EtCB0MIfQpRuT0TISvaTsWwSy2gctIWiGA== - dependencies: - merge-descriptors "^1.0.1" - qs "^6.9.4" - -koa-ratelimit@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/koa-ratelimit/-/koa-ratelimit-5.0.1.tgz" - integrity sha512-H7IEkNS/b18Uwtm3RIvAK3orJE8ew8wEBsnezlQWz7GTWqEnDtbTNfTedVXjj07gyh8gWTkEdODEXRquGCBqmg== - dependencies: - async-ratelimiter "^1.3.0" - debug "^4.1.1" - ms "^2.1.2" - -koa-router@^10.0.0: - version "10.1.1" - resolved "https://registry.npmjs.org/koa-router/-/koa-router-10.1.1.tgz" - integrity sha512-z/OzxVjf5NyuNO3t9nJpx7e1oR3FSBAauiwXtMQu4ppcnuNZzTaQ4p21P8A6r2Es8uJJM339oc4oVW+qX7SqnQ== - dependencies: - debug "^4.1.1" - http-errors "^1.7.3" - koa-compose "^4.1.0" - methods "^1.1.2" - path-to-regexp "^6.1.0" - -koa@^2.13.1: - version "2.13.4" - resolved "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz" - integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== - dependencies: - accepts "^1.3.5" - cache-content-type "^1.0.0" - content-disposition "~0.5.2" - content-type "^1.0.4" - cookies "~0.8.0" - debug "^4.3.2" - delegates "^1.0.0" - depd "^2.0.0" - destroy "^1.0.4" - encodeurl "^1.0.2" - escape-html "^1.0.3" - fresh "~0.5.2" - http-assert "^1.3.0" - http-errors "^1.6.3" - is-generator-function "^1.0.7" - koa-compose "^4.1.0" - koa-convert "^2.0.0" - on-finished "^2.3.0" - only "~0.0.2" - parseurl "^1.3.2" - statuses "^1.5.0" - type-is "^1.6.16" - vary "^1.1.2" - -latest-version@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -leven@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libphonenumber-js@^1.9.43: - version "1.9.44" - resolved "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz" - integrity sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g== - -liftoff@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz" - integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== - dependencies: - extend "^3.0.0" - findup-sync "^3.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - -lilconfig@^2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz" - integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lint-staged@^11.2.6: - version "11.2.6" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz" - integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== - dependencies: - cli-truncate "2.1.0" - colorette "^1.4.0" - commander "^8.2.0" - cosmiconfig "^7.0.1" - debug "^4.3.2" - enquirer "^2.3.6" - execa "^5.1.1" - listr2 "^3.12.2" - micromatch "^4.0.4" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "3.3.0" - supports-color "8.1.1" - -listr2@^3.12.2: - version "3.13.5" - resolved "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz" - integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.4.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - -lmdb@^2.0.2: - version "2.2.1" - resolved "https://registry.npmjs.org/lmdb/-/lmdb-2.2.1.tgz" - integrity sha512-tUlIjyJvbd4mqdotI9Xe+3PZt/jqPx70VKFDrKMYu09MtBWOT3y2PbuTajX+bJFDjbgLkQC0cTx2n6dithp/zQ== - dependencies: - msgpackr "^1.5.4" - nan "^2.14.2" - node-gyp-build "^4.2.3" - ordered-binary "^1.2.4" - weak-lru-cache "^1.2.2" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.get@^4, lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= - -lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= - -lodash.isinteger@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= - -lodash.isnumber@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - -lodash.memoize@4.x, lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.once@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@1.x, make-error@^1, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" - integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== - dependencies: - kind-of "^6.0.2" - -make-plural@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz" - integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== - optionalDependencies: - minimist "^1.2.0" - -make-plural@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/make-plural/-/make-plural-7.0.0.tgz" - integrity sha512-OTuzMnuhrc7G3LJU5upkhKy7EIAq/dRqANqTUh0B8au7jM5mXq9kVdla3sn3g2GCRIxgooCDQtSJ3s1fAjasbQ== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -math-interval-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz" - integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== - -md5-file@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz" - integrity sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memory-pager@^1.0.2: - version "1.5.0" - resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" - integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" - integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= - -meow@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz" - integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "^4.0.2" - normalize-package-data "^2.5.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-descriptors@1.0.1, merge-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -messageformat-formatters@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz" - integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== - -messageformat-parser@^4.1.2: - version "4.1.3" - resolved "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz" - integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== - -messageformat@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz" - integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== - dependencies: - make-plural "^4.3.0" - messageformat-formatters "^2.0.1" - messageformat-parser "^4.1.2" - -methods@^1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.0.4, micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mikro-orm@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/mikro-orm/-/mikro-orm-5.0.3.tgz#19771a9c52a4db38b50357f6dc29a5e08e6a37ec" - integrity sha512-6oL8219UkkDZytGXqaOD6UF1cWAvfGal9bg/RhLoO7O180MR2N4swHyb4jBUOMEag8kcC7TKa2U3CzlbmI8IYg== - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": - version "1.51.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.12, mime-types@^2.1.14, mime-types@^2.1.18, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.6: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0, minimist-options@^4.0.2: - version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minio@^7.0.12, minio@^7.0.18: - version "7.0.25" - resolved "https://registry.npmjs.org/minio/-/minio-7.0.25.tgz" - integrity sha512-5Ber8g7jd0XpVGgtj/7AcpHSoye7/bb6zGx5ts/xDgGpK3cuqH2f9lvh9pawegipoAca39JIaUYYmswFVVyznQ== - dependencies: - async "^3.1.0" - block-stream2 "^2.0.0" - browser-or-node "^1.3.0" - crypto-browserify "^3.12.0" - es6-error "^4.1.1" - fast-xml-parser "^3.17.5" - ipaddr.js "^2.0.1" - json-stream "^1.0.0" - lodash "^4.17.21" - mime-types "^2.1.14" - mkdirp "^0.5.1" - querystring "0.2.0" - through2 "^3.0.1" - web-encoding "^1.1.5" - xml "^1.0.0" - xml2js "^0.4.15" - -minipass@^3.0.0: - version "3.1.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -moment-timezone@^0.5.31: - version "0.5.34" - resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz" - integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== - dependencies: - moment ">= 2.9.0" - -"moment@>= 2.9.0", moment@^2.27.0, moment@^2.29.1: - version "2.29.1" - resolved "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== - -mongodb-connection-string-url@^2.3.2: - version "2.4.1" - resolved "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz" - integrity sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug== - dependencies: - "@types/whatwg-url" "^8.2.1" - whatwg-url "^11.0.0" - -mongodb-memory-server-core@7.3.6: - version "7.3.6" - resolved "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-7.3.6.tgz" - integrity sha512-dxprJ5Xqb0y/9nqv709BGf8Cz4dnInhG3sTuYvMJijK4cAHYxk0xkKrvZX2X9PrYiCQqKix59hHMBGyBetN3hg== - dependencies: - "@types/tmp" "^0.2.0" - async-mutex "^0.3.0" - camelcase "^6.1.0" - debug "^4.2.0" - find-cache-dir "^3.3.1" - get-port "^5.1.1" - https-proxy-agent "^5.0.0" - md5-file "^5.0.0" - mkdirp "^1.0.4" - mongodb "^3.6.9" - new-find-package-json "^1.1.0" - semver "^7.3.5" - tar-stream "^2.1.4" - tmp "^0.2.1" - tslib "^2.3.0" - uuid "^8.3.1" - yauzl "^2.10.0" - -mongodb-memory-server@7.3.6: - version "7.3.6" - resolved "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-7.3.6.tgz" - integrity sha512-JfuY7uJD9TZxq6C4YVuCjiP2v0V/NYb19Wki6rFovdJvkgxGp5/KXKaazu47leECYAtJc2ajW1c009M3hRM+6A== - dependencies: - mongodb-memory-server-core "7.3.6" - tslib "^2.3.0" - -mongodb@*, mongodb@4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/mongodb/-/mongodb-4.2.2.tgz" - integrity sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug== - dependencies: - bson "^4.6.0" - denque "^2.0.1" - mongodb-connection-string-url "^2.3.2" - optionalDependencies: - saslprep "^1.0.3" - -mongodb@^3.6.9: - version "3.7.3" - resolved "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz" - integrity sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw== - dependencies: - bl "^2.2.1" - bson "^1.1.4" - denque "^1.4.1" - optional-require "^1.1.8" - safe-buffer "^5.1.2" - optionalDependencies: - saslprep "^1.0.0" - -mongoose@*: - version "6.1.4" - resolved "https://registry.npmjs.org/mongoose/-/mongoose-6.1.4.tgz" - integrity sha512-RsNiMpGWo7OXFmq5xt0ZWYt2rabHLxNYr0oAiR0xDv23lHKCkXDqyDl71+sXF9rcWEe8BTHG+1IRQykiNBvaKQ== - dependencies: - bson "^4.2.2" - kareem "2.3.3" - mongodb "4.2.2" - mpath "0.8.4" - mquery "4.0.0" - ms "2.1.2" - regexp-clone "1.0.0" - sift "13.5.2" - sliced "1.0.1" - -mongoose@^6.1.5: - version "6.1.5" - resolved "https://registry.npmjs.org/mongoose/-/mongoose-6.1.5.tgz" - integrity sha512-0rRxTBoqMSuQF/YM3TEvbHn8Ybnd9dRjD7DItEjCXK0vwC/muLKXZ4rVCN4KAnWQAkwYzoWw2tXAy0YF6TUdEg== - dependencies: - "@types/node" "< 17.0.6" - bson "^4.2.2" - kareem "2.3.3" - mongodb "4.2.2" - mpath "0.8.4" - mquery "4.0.0" - ms "2.1.2" - regexp-clone "1.0.0" - sift "13.5.2" - sliced "1.0.1" - -moo@^0.5.0, moo@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== - -mpath@0.8.4: - version "0.8.4" - resolved "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz" - integrity sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g== - -mquery@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz" - integrity sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw== - dependencies: - debug "4.x" - regexp-clone "^1.0.0" - sliced "1.0.1" - -mri@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -msgpackr-extract@^1.0.14: - version "1.0.16" - resolved "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-1.0.16.tgz" - integrity sha512-fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA== - dependencies: - nan "^2.14.2" - node-gyp-build "^4.2.3" - -msgpackr@^1.5.1, msgpackr@^1.5.4: - version "1.5.4" - resolved "https://registry.npmjs.org/msgpackr/-/msgpackr-1.5.4.tgz" - integrity sha512-Z7w5Jg+2Q9z9gJxeM68d7tSuWZZGnFIRhZnyqcZCa/1dKkhOCNvR1TUV3zzJ3+vj78vlwKRzUgVDlW4jiSOeDA== - optionalDependencies: - msgpackr-extract "^1.0.14" - -multer@^1.4.3: - version "1.4.4" - resolved "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz" - integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== - dependencies: - append-field "^1.0.0" - busboy "^0.2.11" - concat-stream "^1.5.2" - mkdirp "^0.5.4" - object-assign "^4.1.1" - on-finished "^2.3.0" - type-is "^1.6.4" - xtend "^4.0.0" - -mustache@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" - integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== - -mz@^2.4.0, mz@^2.6.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nan@^2.14.2: - version "2.15.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nanoid@^3.2.0: - version "3.3.1" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -nearley@^2.19.5: - version "2.20.1" - resolved "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.6.0: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz" - integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== - -new-find-package-json@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-1.1.0.tgz" - integrity sha512-KOH3BNZcTKPzEkaJgG2iSUaurxKmefqRKmCOYH+8xqJytNIgjqU4J88BHfK+gy/UlEzlhccLyuJDJAcCgexSwA== - dependencies: - debug "^4.3.2" - tslib "^2.3.0" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -nocache@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz" - integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== - -node-addon-api@^3.1.0, node-addon-api@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - -node-cron@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/node-cron/-/node-cron-3.0.0.tgz" - integrity sha512-DDwIvvuCwrNiaU7HEivFDULcaQualDv7KoNlB/UU1wPW0n1tDEmBJKhEIE6DlF2FuoOHcNbLJ8ITL2Iv/3AWmA== - dependencies: - moment-timezone "^0.5.31" - -node-fetch@^2.6.5: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.2.3, node-gyp-build@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-minio@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/node-minio/-/node-minio-1.0.2.tgz" - integrity sha512-24/QnCRLxjdJdU/NYsjlwAvYb1/Gk+/+HVNyzHW+L8yrz5U2Cf8YEiLOQAfWnLd2e5Zqk8+U1tmxIqH0aA+UVw== - dependencies: - bluebird "^3.7.2" - fs-promise "^2.0.3" - fsp "^0.1.2" - minio "^7.0.12" - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -nodemailer@6.7.2: - version "6.7.2" - resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.2.tgz" - integrity sha512-Dz7zVwlef4k5R71fdmxwR8Q39fiboGbu3xgswkzGwczUfjp873rVxt1O46+Fh0j1ORnAC6L9+heI8uUpO6DT7Q== - -nodemon@^2.0.7: - version "2.0.15" - resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz" - integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA== - dependencies: - chokidar "^3.5.2" - debug "^3.2.7" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.8" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.5" - update-notifier "^5.1.0" - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^2.0.3: - version "2.2.0" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz" - integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.defaults@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= - dependencies: - array-each "^1.0.1" - array-slice "^1.0.0" - for-own "^1.0.0" - isobject "^3.0.0" - -object.map@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.pick@^1.2.0, object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -on-exit-leak-free@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz" - integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -only@~0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz" - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= - -optional-require@^1.1.8: - version "1.1.8" - resolved "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz" - integrity sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA== - dependencies: - require-at "^1.0.6" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -ordered-binary@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.4.tgz" - integrity sha512-A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg== - -p-all@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz" - integrity sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA== - dependencies: - p-map "^2.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-event@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== - dependencies: - p-timeout "^3.1.0" - -p-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz" - integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== - dependencies: - p-map "^2.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== - -parcel@^2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/parcel/-/parcel-2.3.2.tgz" - integrity sha512-4jhgoBcQaiGKmnmBvNyKyOvZrxCgzgUzdEoVup/fRCOP99hNmvYIN5IErIIJxsU9ObcG/RGCFF8wa4kVRsWfIg== - dependencies: - "@parcel/config-default" "2.3.2" - "@parcel/core" "2.3.2" - "@parcel/diagnostic" "2.3.2" - "@parcel/events" "2.3.2" - "@parcel/fs" "2.3.2" - "@parcel/logger" "2.3.2" - "@parcel/package-manager" "2.3.2" - "@parcel/reporter-cli" "2.3.2" - "@parcel/reporter-dev-server" "2.3.2" - "@parcel/utils" "2.3.2" - chalk "^4.1.0" - commander "^7.0.0" - get-port "^4.2.0" - v8-compile-cache "^2.0.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-filepath@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5@6.0.1, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parseurl@^1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= - dependencies: - path-root-regex "^0.1.0" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@^6.1.0: - version "6.2.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz" - integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -pg-connection-string@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz" - integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ== - -pg-connection-string@2.5.0, pg-connection-string@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz" - integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-mem@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/pg-mem/-/pg-mem-2.2.0.tgz" - integrity sha512-nMEGkGW/XysANrFBkuZOuzBh2UnZ/2N4P8rW/85igQjxejxwAhBCbrbR5oD63MH8iUQy5AI67XL1gBRk/vsK3g== - dependencies: - "@mikro-orm/core" "^4.5.3" - "@mikro-orm/postgresql" "^4.5.3" - functional-red-black-tree "^1.0.1" - immutable "^4.0.0-rc.12" - lru-cache "^6.0.0" - moment "^2.27.0" - object-hash "^2.0.3" - pgsql-ast-parser "^9.2.1" - -pg-minify@1.6.2: - version "1.6.2" - resolved "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz" - integrity sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg== - -pg-pool@^3.3.0, pg-pool@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz" - integrity sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ== - -pg-pool@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.1.tgz#f499ce76f9bf5097488b3b83b19861f28e4ed905" - integrity sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ== - -pg-promise@^10.11.1: - version "10.11.1" - resolved "https://registry.npmjs.org/pg-promise/-/pg-promise-10.11.1.tgz" - integrity sha512-HAv32WSKf2m2RqHerW5RmANn/mcXIwWXbg/gOfGQcoS0SE+8iBi3Jj4JmoR4PNzSEozo/y/npy4e6F16psOItw== - dependencies: - assert-options "0.7.0" - pg "8.7.1" - pg-minify "1.6.2" - spex "3.2.0" - -pg-protocol@*, pg-protocol@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz" - integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== - -pg-types@^2.1.0, pg-types@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@8.6.0: - version "8.6.0" - resolved "https://registry.npmjs.org/pg/-/pg-8.6.0.tgz" - integrity sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.5.0" - pg-pool "^3.3.0" - pg-protocol "^1.5.0" - pg-types "^2.1.0" - pgpass "1.x" - -pg@8.7.1, pg@^8.7.1: - version "8.7.1" - resolved "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz" - integrity sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.5.0" - pg-pool "^3.4.1" - pg-protocol "^1.5.0" - pg-types "^2.1.0" - pgpass "1.x" - -pg@8.7.3: - version "8.7.3" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.3.tgz#8a5bdd664ca4fda4db7997ec634c6e5455b27c44" - integrity sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.5.0" - pg-pool "^3.5.1" - pg-protocol "^1.5.0" - pg-types "^2.1.0" - pgpass "1.x" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - -pgsql-ast-parser@^9.2.1: - version "9.2.1" - resolved "https://registry.npmjs.org/pgsql-ast-parser/-/pgsql-ast-parser-9.2.1.tgz" - integrity sha512-poyC5hEwFyo6M1b1MFSH9uCeJ6rzjT/F7E0SZsLZZKvVmfrJ3sr8hW3AA35t4cZ7OuaMpCg4Qnmzspo+5Q/+zg== - dependencies: - moo "^0.5.1" - nearley "^2.19.5" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pino-abstract-transport@^0.5.0, pino-abstract-transport@v0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-express@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/pino-express/-/pino-express-1.1.1.tgz" - integrity sha512-jufadWCEk+EHGVzw+C3HeSD4F6bfDd8UMkBcOeNaBugDMbak+kvYL+3Rul71HAttvqV1BvJ7QkQVK6JqNPj6ng== - dependencies: - lodash.get "^4.4.2" - ms "^2.1.1" - -pino-http@^5.0.1: - version "5.8.0" - resolved "https://registry.npmjs.org/pino-http/-/pino-http-5.8.0.tgz" - integrity sha512-YwXiyRb9y0WCD1P9PcxuJuh3Dc5qmXde/paJE86UGYRdiFOi828hR9iUGmk5gaw6NBT9gLtKANOHFimvh19U5w== - dependencies: - fast-url-parser "^1.1.3" - pino "^6.13.0" - pino-std-serializers "^4.0.0" - -pino-multi-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/pino-multi-stream/-/pino-multi-stream-6.0.0.tgz" - integrity sha512-oCuTtaDSUB5xK1S45r9oWE0Dj8RWdHVvaGTft5pO/rmzgIqQRkilf5Ooilz3uRm0IYj8sPRho3lVx48LCmXjvQ== - dependencies: - pino "^7.0.0" - -pino-pretty@^7.2.0: - version "7.3.0" - resolved "https://registry.npmjs.org/pino-pretty/-/pino-pretty-7.3.0.tgz" - integrity sha512-HAhShJ2z2QzxXhYAn6XfwYpF13o1PQbjzSNA9q+30FAvhjOmeACit9lprhV/mCOw/8YFWSyyNk0YCq2EDYGYpw== - dependencies: - args "^5.0.1" - colorette "^2.0.7" - dateformat "^4.6.3" - fast-safe-stringify "^2.0.7" - joycon "^3.1.1" - pino-abstract-transport "^0.5.0" - pump "^3.0.0" - readable-stream "^3.6.0" - rfdc "^1.3.0" - secure-json-parse "^2.4.0" - sonic-boom "^2.2.0" - strip-json-comments "^3.1.1" - -pino-std-serializers@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz" - integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== - -pino-std-serializers@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz" - integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - -pino@*, pino@^7.0.0: - version "7.6.2" - resolved "https://registry.npmjs.org/pino/-/pino-7.6.2.tgz" - integrity sha512-GTzW+HHOzUTaPIyvK6tasky2jMXF1o3iw7Oc2ik7qFjcaexXfyn6ej72XwX4O+wuRyFCbp3oKpv00htrPddv5A== - dependencies: - fast-redact "^3.0.0" - on-exit-leak-free "^0.2.0" - pino-abstract-transport v0.5.0 - pino-std-serializers "^4.0.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.1.0" - safe-stable-stringify "^2.1.0" - sonic-boom "^2.2.1" - thread-stream "^0.13.0" - -pino@^6.13.0: - version "6.13.4" - resolved "https://registry.npmjs.org/pino/-/pino-6.13.4.tgz" - integrity sha512-g4tHSISmQJYUEKEMVdaZ+ZokWwFnTwZL5JPn+lnBVZ1BuBbrSchrXwQINknkM5+Q4fF6U9NjiI8PWwwMDHt9zA== - dependencies: - fast-redact "^3.0.0" - fast-safe-stringify "^2.0.8" - flatstr "^1.0.12" - pino-std-serializers "^3.1.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - sonic-boom "^1.0.2" - -pirates@^4.0.1: - version "4.0.4" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz" - integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^8.2.0: - version "8.2.4" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz" - integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== - dependencies: - postcss-selector-parser "^6.0.9" - postcss-value-parser "^4.2.0" - -postcss-colormin@^5.2.5: - version "5.2.5" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz" - integrity sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.2.0" - -postcss-convert-values@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz" - integrity sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-discard-comments@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz" - integrity sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q== - -postcss-discard-duplicates@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz" - integrity sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw== - -postcss-discard-empty@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz" - integrity sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA== - -postcss-discard-overridden@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz" - integrity sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg== - -postcss-merge-longhand@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz" - integrity sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.0.3" - -postcss-merge-rules@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz" - integrity sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^3.0.2" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz" - integrity sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^5.0.6: - version "5.0.6" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz" - integrity sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.0.2" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz" - integrity sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg== - dependencies: - browserslist "^4.16.6" - cssnano-utils "^3.0.2" - postcss-value-parser "^4.2.0" - -postcss-minify-selectors@^5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz" - integrity sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-normalize-charset@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz" - integrity sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA== - -postcss-normalize-display-values@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz" - integrity sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz" - integrity sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz" - integrity sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz" - integrity sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz" - integrity sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz" - integrity sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig== - dependencies: - browserslist "^4.16.6" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz" - integrity sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ== - dependencies: - normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz" - integrity sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-ordered-values@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz" - integrity sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ== - dependencies: - cssnano-utils "^3.0.2" - postcss-value-parser "^4.2.0" - -postcss-reduce-initial@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz" - integrity sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz" - integrity sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.9" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz" - integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz" - integrity sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg== - dependencies: - postcss-value-parser "^4.2.0" - svgo "^2.7.0" - -postcss-unique-selectors@^5.0.4: - version "5.0.4" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz" - integrity sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.4.5: - version "8.4.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz" - integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== - dependencies: - nanoid "^3.2.0" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz" - integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -posthtml-parser@^0.10.0, posthtml-parser@^0.10.1: - version "0.10.2" - resolved "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz" - integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg== - dependencies: - htmlparser2 "^7.1.1" - -posthtml-render@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz" - integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== - dependencies: - is-json "^2.0.1" - -posthtml@^0.16.4, posthtml@^0.16.5: - version "0.16.5" - resolved "https://registry.npmjs.org/posthtml/-/posthtml-0.16.5.tgz" - integrity sha512-1qOuPsywVlvymhTFIBniDXwUDwvlDri5KUQuBqjmCc8Jj4b/HDSVWU//P6rTWke5rzrk+vj7mms2w8e1vD0nnw== - dependencies: - posthtml-parser "^0.10.0" - posthtml-render "^3.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prettier@^2.2.1: - version "2.5.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== - -pretty-format@^27.0.0, pretty-format@^27.4.2: - version "27.4.2" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz" - integrity sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw== - dependencies: - "@jest/types" "^27.4.2" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - -promise-events@^0.2.4: - version "0.2.4" - resolved "https://registry.npmjs.org/promise-events/-/promise-events-0.2.4.tgz" - integrity sha512-GCM6DmJcSCC8XboZIzYJAlADwkIS1P54XFUJQYhB7dpE7rtXPzPrT13dsV4Qm0FMCKptwMTyF8ZCir803RfKzA== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pstree.remy@^1.1.8: - version "1.1.8" - resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pupa@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -q@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.9.6: - version "6.9.6" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== - -qs@^6.10.1, qs@^6.5.2, qs@^6.9.4: - version "6.10.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz" - integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw== - dependencies: - side-channel "^1.0.4" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.2, raw-body@^2.3.3: - version "2.4.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== - dependencies: - bytes "3.1.1" - http-errors "1.8.1" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-refresh@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz" - integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^2.2.2, readable-stream@^2.3.5: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -referrer-policy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz" - integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA== - -reflect-metadata@0.1.13, reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regenerator-runtime@^0.13.7: - version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-clone@1.0.0, regexp-clone@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz" - integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-at@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz" - integrity sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.1.7: - version "1.21.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz" - integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== - dependencies: - is-core-module "^2.8.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@^6.6.3: - version "6.6.7" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.4.0: - version "7.5.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz" - integrity sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ== - dependencies: - tslib "^2.1.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -safe-stable-stringify@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saslprep@^1.0.0, saslprep@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz" - integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== - dependencies: - sparse-bitfield "^3.0.3" - -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -secure-json-parse@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz" - integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.3.5, semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.17.2: - version "0.17.2" - resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "1.8.1" - mime "1.6.0" - ms "2.1.3" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.2" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1: - version "1.7.3" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== - -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sift@13.5.2: - version "13.5.2" - resolved "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz" - integrity sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA== - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.6" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -sliced@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz" - integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sonic-boom@^1.0.2: - version "1.4.1" - resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz" - integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== - dependencies: - atomic-sleep "^1.0.0" - flatstr "^1.0.12" - -sonic-boom@^2.1.0, sonic-boom@^2.2.0, sonic-boom@^2.2.1: - version "2.4.2" - resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.4.2.tgz" - integrity sha512-zlOmAKFLJzTI+MbvmkWhnOOJ++NYo0Iy7F93ARNPmvZvpWG2l8Ff3uwM3CkpHqRw8v3pcRROScM5E+vbeTeOKw== - dependencies: - atomic-sleep "^1.0.0" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -sparse-bitfield@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" - integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= - dependencies: - memory-pager "^1.0.2" - -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -spex@3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz" - integrity sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -split2@^4.0.0, split2@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sqlstring@2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz" - integrity sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg== - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.padend@^3.0.0: - version "3.1.3" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz" - integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strnum@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== - -stylehacks@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz" - integrity sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg== - dependencies: - browserslist "^4.16.6" - postcss-selector-parser "^6.0.4" - -superagent@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz" - integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.2" - debug "^4.1.1" - fast-safe-stringify "^2.0.7" - form-data "^3.0.0" - formidable "^1.2.2" - methods "^1.1.2" - mime "^2.4.6" - qs "^6.9.4" - readable-stream "^3.6.0" - semver "^7.3.2" - -supertest@^6.1.3: - version "6.1.6" - resolved "https://registry.npmjs.org/supertest/-/supertest-6.1.6.tgz" - integrity sha512-0hACYGNJ8OHRg8CRITeZOdbjur7NLuNs0mBjVhdpxi7hP6t3QIbOzLON5RTUmZcy2I9riuII3+Pr2C7yztrIIg== - dependencies: - methods "^1.1.2" - superagent "^6.1.0" - -supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svgo@^2.4.0, svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^6.1.11: - version "6.1.11" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - 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" - -tarn@^3.0.1, tarn@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz" - integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== - -tedis@^0.1.12: - version "0.1.12" - resolved "https://registry.npmjs.org/tedis/-/tedis-0.1.12.tgz" - integrity sha512-bxOKYWvdF1WsjkBYIfeO+2+xZuiqHmikqTTYPm3j/FYFpxQsX2JTBh6fFSlH6jDiCL4lfPcS2woIdD3FHopS/Q== - dependencies: - uuid "^3.3.2" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser@^5.2.0: - version "5.10.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thenify-all@^1.0.0, thenify-all@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -thread-stream@^0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-0.13.0.tgz" - integrity sha512-kTMZeX4Dzlb1zZ00/01aerGaTw2i8NE4sWF0TvF1uXewRhCiUjCvatQkvxIvFqauWG2ADFS2Wpd3qBeYL9i3dg== - dependencies: - real-require "^0.1.0" - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -through2@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz" - integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== - dependencies: - inherits "^2.0.4" - readable-stream "2 || 3" - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -"through@>=2.2.7 <3", through@^2.3.8: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tildify@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz" - integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -ts-jest@^27.0.7: - version "27.1.2" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.2.tgz" - integrity sha512-eSOiJOWq6Hhs6Khzk5wKC5sgWIXgXqOCiIl1+3lfnearu58Hj4QpE5tUhQcA3xtZrELbcvAGCsd6HB8OsaVaTA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-mixer@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz" - integrity sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ== - -ts-node@^8.9.1: - version "8.10.2" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -ts-node@^9: - version "9.1.1" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - -tslib@2.3.1, tslib@^2, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsscmp@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz" - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@^1.6.16, type-is@^1.6.4, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typeorm@^0.2.38: - version "0.2.41" - resolved "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz" - integrity sha512-/d8CLJJxKPgsnrZWiMyPI0rz2MFZnBQrnQ5XP3Vu3mswv2WPexb58QM6BEtmRmlTMYN5KFWUz8SKluze+wS9xw== - dependencies: - "@sqltools/formatter" "^1.2.2" - app-root-path "^3.0.0" - buffer "^6.0.3" - chalk "^4.1.0" - cli-highlight "^2.1.11" - debug "^4.3.1" - dotenv "^8.2.0" - glob "^7.1.6" - js-yaml "^4.0.0" - mkdirp "^1.0.4" - reflect-metadata "^0.1.13" - sha.js "^2.4.11" - tslib "^2.1.0" - xml2js "^0.4.23" - yargs "^17.0.1" - zen-observable-ts "^1.0.0" - -typescript@^4.4.3, typescript@^4.4.4: - version "4.5.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== - -uglify-js@^3.1.4: - version "3.14.5" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz" - integrity sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -undefsafe@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" - integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -update-notifier@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== - dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz" - integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@^0.12.3: - version "0.12.4" - resolved "https://registry.npmjs.org/util/-/util-0.12.4.tgz" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - -utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@8.3.2, uuid@^8.3.1, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@^2.0.0, v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -v8flags@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - -vary@^1, vary@^1.1.2, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -weak-lru-cache@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz" - integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== - -web-encoding@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz" - integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== - dependencies: - util "^0.12.3" - optionalDependencies: - "@zxing/text-encoding" "0.9.0" - -web-push@^3.4.4: - version "3.4.5" - resolved "https://registry.npmjs.org/web-push/-/web-push-3.4.5.tgz" - integrity sha512-2njbTqZ6Q7ZqqK14YpK1GGmaZs3NmuGYF5b7abCXulUIWFSlSYcZ3NBJQRFcMiQDceD7vQknb8FUuvI1F7Qe/g== - dependencies: - asn1.js "^5.3.0" - http_ece "1.1.0" - https-proxy-agent "^5.0.0" - jws "^4.0.0" - minimist "^1.2.5" - urlsafe-base64 "^1.0.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -when@>=3.6.2: - version "3.7.8" - resolved "https://registry.npmjs.org/when/-/when-3.7.8.tgz" - integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.2: - version "1.1.7" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz" - integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.18.5" - foreach "^2.0.5" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.7" - -which@^1.2.14, which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -x-xss-protection@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz" - integrity sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg== - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xml2js@^0.4.15, xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xml@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz" - integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xxhash-wasm@^0.4.2: - version "0.4.2" - resolved "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz" - integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0, yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== - -yargs@^16.0.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - 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" - -yargs@^17.0.0, yargs@^17.0.1: - version "17.3.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz" - integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -ylru@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz" - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zen-observable-ts@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz" - integrity sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA== - dependencies: - "@types/zen-observable" "0.8.3" - zen-observable "0.8.15" - -zen-observable@0.8.15: - version "0.8.15" - resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/yarn.lock b/yarn.lock index 8d799b44..6b907f30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -451,16 +451,16 @@ ts-node "^9" tslib "^2" -"@eslint/eslintrc@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" - integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== +"@eslint/eslintrc@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" + integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.3.1" globals "^13.9.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.0.4" @@ -1365,13 +1365,13 @@ chrome-trace-event "^1.0.2" nullthrows "^1.1.1" -"@shelf/jest-mongodb@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@shelf/jest-mongodb/-/jest-mongodb-2.2.0.tgz#716a66c1f986f33345400fa2a53eb748eafd70e1" - integrity sha512-epYFMVlTI7rRK4u4ErVng1H2jNlUmGWvIjioUSbDmm3GaLVsfc7rvtNaAc3fLW+X5hLtEcnwJWY4JoqIEilTyw== +"@shelf/jest-mongodb@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@shelf/jest-mongodb/-/jest-mongodb-2.2.1.tgz#cd9846195f5e1bca5815b9401f95e4d4402b2a92" + integrity sha512-5wvUkePp18Q/TzydClAu5x4+YAyxWu/sVKcaBArGWNLab0WZORl6G8Wt7TtL3mGeZXa75oftO7xCEVPbr0NI3w== dependencies: debug "4.3.2" - mongodb-memory-server "7.3.6" + mongodb-memory-server "7.6.3" uuid "8.3.2" "@sindresorhus/is@^0.14.0": @@ -1478,7 +1478,7 @@ "@types/connect" "*" "@types/node" "*" -"@types/bson@^4.2.0": +"@types/bson@*", "@types/bson@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@types/bson/-/bson-4.2.0.tgz#a2f71e933ff54b2c3bf267b67fa221e295a33337" integrity sha512-ELCPqAdroMdcuxqwMgUpifQyRoTpyYCNr1V9xKyF40VsBobsj+BbWNRvwGchMgBPGqkw655ypkjj2MEF5ywVwg== @@ -1678,9 +1678,9 @@ integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== "@types/koa-bodyparser@^4.3.1": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.5.tgz#0c5fa44d7150202ffc16b89bd730ce1b6c7bc250" - integrity sha512-NRqqoTtt7cfdDk/KNo+EwCIKRuzPAu/wsaZ7tgIvSIBtNfxuZHYueaLoWdxX3ZftWavQv07NE46TcpyoZGqpgQ== + version "4.3.6" + resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.6.tgz#99a7d215560fdc168334ebb6a259c6cec9381a56" + integrity sha512-keCpj2kmoooL2oHC9YIVvciN66uDT21uMp4rvrosyjLsHD1aAipn6cg3xSxav9tR2Ly/NMvs8jdlNPTTQvn8SA== dependencies: "@types/koa" "*" @@ -1706,15 +1706,6 @@ "@types/koa" "*" handlebars "^4.1.0" -"@types/koa-pino-logger@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/koa-pino-logger/-/koa-pino-logger-3.0.1.tgz#ebb99ad691a3686913864e84e537b6f7fc36db13" - integrity sha512-KqGej3mNnP94KA8RBiSr4w0rqcQVUvInG6PjnGPIjKPex6iUWiVOL4c6UeoiUQYDMb/WQVZRmaC7dzPsev1IKw== - dependencies: - "@types/koa" "*" - "@types/pino" "6.3" - "@types/pino-http" "*" - "@types/koa-ratelimit@^4.2.3": version "4.2.4" resolved "https://registry.yarnpkg.com/@types/koa-ratelimit/-/koa-ratelimit-4.2.4.tgz#f53b78d8f6c19904c2e8b18dc5e0c574000968b8" @@ -1784,6 +1775,14 @@ dependencies: "@types/node" "*" +"@types/mongodb@^3.6.20": + version "3.6.20" + resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-3.6.20.tgz#b7c5c580644f6364002b649af1c06c3c0454e1d2" + integrity sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ== + dependencies: + "@types/bson" "*" + "@types/node" "*" + "@types/mongodb@^4.0.7": version "4.0.7" resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-4.0.7.tgz#ebaa80c53b684ea52ccfe7721c0f5c9ef7b4f511" @@ -1833,53 +1832,14 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/pg@^8.6.1": - version "8.6.4" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.4.tgz#da1ae9d2f53f2dbfdd2b37e0eb478bf60d517f60" - integrity sha512-uYA7UMVzDFpJobCrqwW/iWkFmvizy6knIUgr0Quaw7K1Le3ZnF7hI3bKqFoxPZ+fju1Sc7zdTvOl9YfFZPcmeA== + version "8.6.5" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.5.tgz#2dce9cb468a6a5e0f1296a59aea3ac75dd27b702" + integrity sha512-tOkGtAqRVkHa/PVZicq67zuujI4Oorfglsr2IbKofDwBSysnaqSx7W1mDqFqdkGE6Fbgh+PZAl0r/BWON/mozw== dependencies: "@types/node" "*" pg-protocol "*" pg-types "^2.2.0" -"@types/pino-http@*": - version "5.8.1" - resolved "https://registry.yarnpkg.com/@types/pino-http/-/pino-http-5.8.1.tgz#ebb194750ad2f9245c3028b5d2c4e6d64f685ba9" - integrity sha512-A9MW6VCnx5ii7s+Fs5aFIw+aSZcBCpsZ/atpxamu8tTsvWFacxSf2Hrn1Ohn1jkVRB/LiPGOapRXcFawDBnDnA== - dependencies: - "@types/pino" "6.3" - -"@types/pino-pretty@*": - version "4.7.5" - resolved "https://registry.yarnpkg.com/@types/pino-pretty/-/pino-pretty-4.7.5.tgz#e4ade1e42b78b8b0c1c28010ff7eb6c439278b19" - integrity sha512-rfHe6VIknk14DymxGqc9maGsRe8/HQSvM2u46EAz2XrS92qsAJnW16dpdFejBuZKD8cRJX6Aw6uVZqIQctMpAg== - dependencies: - "@types/node" "*" - "@types/pino" "6.3" - -"@types/pino-std-serializers@*": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz#f8bd52a209c8b3c97d1533b1ba27f57c816382bf" - integrity sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ== - dependencies: - "@types/node" "*" - -"@types/pino@6.3": - version "6.3.12" - resolved "https://registry.yarnpkg.com/@types/pino/-/pino-6.3.12.tgz#4425db6ced806109c3df957100cba9dfcd73c228" - integrity sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw== - dependencies: - "@types/node" "*" - "@types/pino-pretty" "*" - "@types/pino-std-serializers" "*" - sonic-boom "^2.1.0" - -"@types/pino@^7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@types/pino/-/pino-7.0.5.tgz#1c84a81b924a6a9e263dbb581dffdbad7a3c60c4" - integrity sha512-wKoab31pknvILkxAF8ss+v9iNyhw5Iu/0jLtRkUD74cNfOOLJNnqfFKAv0r7wVaTQxRZtWrMpGfShwwBjOcgcg== - dependencies: - pino "*" - "@types/prettier@^2.1.5": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" @@ -1938,7 +1898,7 @@ dependencies: "@types/superagent" "*" -"@types/tmp@^0.2.0": +"@types/tmp@^0.2.2": version "0.2.3" resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.3.tgz#908bfb113419fd6a42273674c00994d40902c165" integrity sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA== @@ -1974,9 +1934,9 @@ "@types/webidl-conversions" "*" "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^16.0.0": version "16.0.4" @@ -1991,13 +1951,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.10.2": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz#2809052b85911ced9c54a60dac10e515e9114497" - integrity sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ== + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335" + integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w== dependencies: - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/type-utils" "5.13.0" - "@typescript-eslint/utils" "5.13.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/type-utils" "5.14.0" + "@typescript-eslint/utils" "5.14.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -2006,68 +1966,68 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.10.2": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.13.0.tgz#0394ed8f2f849273c0bf4b811994d177112ced5c" - integrity sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg== + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.14.0.tgz#7c79f898aa3cff0ceee6f1d34eeed0f034fb9ef3" + integrity sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw== dependencies: - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/typescript-estree" "5.13.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/typescript-estree" "5.14.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" - integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== +"@typescript-eslint/scope-manager@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" + integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== dependencies: - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/visitor-keys" "5.13.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/visitor-keys" "5.14.0" -"@typescript-eslint/type-utils@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz#b0efd45c85b7bab1125c97b752cab3a86c7b615d" - integrity sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg== +"@typescript-eslint/type-utils@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" + integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== dependencies: - "@typescript-eslint/utils" "5.13.0" + "@typescript-eslint/utils" "5.14.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" - integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== +"@typescript-eslint/types@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" + integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== -"@typescript-eslint/typescript-estree@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" - integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== +"@typescript-eslint/typescript-estree@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" + integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== dependencies: - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/visitor-keys" "5.13.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/visitor-keys" "5.14.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.13.0.tgz#2328feca700eb02837298339a2e49c46b41bd0af" - integrity sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ== +"@typescript-eslint/utils@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" + integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/typescript-estree" "5.13.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/typescript-estree" "5.14.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" - integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== +"@typescript-eslint/visitor-keys@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" + integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== dependencies: - "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/types" "5.14.0" eslint-visitor-keys "^3.0.0" "@zxing/text-encoding@0.9.0": @@ -2255,16 +2215,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -args@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/args/-/args-5.0.1.tgz#4bf298df90a4799a09521362c579278cc2fdd761" - integrity sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ== - dependencies: - camelcase "5.0.0" - chalk "2.4.2" - leven "2.1.0" - mri "1.1.4" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -2382,7 +2332,7 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-mutex@^0.3.0: +async-mutex@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== @@ -2414,11 +2364,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -2720,12 +2665,12 @@ browserify-sign@^4.0.0: safe-buffer "^5.2.0" browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.6.6: - version "4.19.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" - integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== + version "4.20.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== dependencies: - caniuse-lite "^1.0.30001312" - electron-to-chromium "^1.4.71" + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" escalade "^3.1.1" node-releases "^2.0.2" picocolors "^1.0.0" @@ -2878,11 +2823,6 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -2908,17 +2848,17 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001312: - version "1.0.30001312" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" - integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001313: + version "1.0.30001314" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596" + integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw== catch-decorator@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/catch-decorator/-/catch-decorator-2.0.0.tgz#4a04d600597add3ab054e7f63ca8db8d420cb08b" integrity sha512-Y4cmIy7zsYKOoYxY6U0qNxzzQiwjJuI4gdVJGcH0lKb7BZO3P/qZKWJZcE0bGICBzzGRTl7VL0R1dBiOjc5u8w== -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3141,7 +3081,7 @@ colorette@1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== -colorette@2.0.16, colorette@^2.0.16, colorette@^2.0.7: +colorette@2.0.16, colorette@^2.0.16: version "2.0.16" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== @@ -3536,52 +3476,52 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.12: - version "5.1.12" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz#64e2ad8e27a279e1413d2d2383ef89a41c909be9" - integrity sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w== +cssnano-preset-default@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.3.tgz#74f6be4b43b6a0a45f0efea33e30a8074660a2aa" + integrity sha512-e4pzD/FnsvRywKO3i2Ti4jgAcJO5MhQPudrex92HXAJoMyQfS8lZHIzzC1yZ1t+d2zdkLXFY1sHdsZaT7lKoCQ== dependencies: css-declaration-sorter "^6.0.3" - cssnano-utils "^3.0.2" - postcss-calc "^8.2.0" - postcss-colormin "^5.2.5" - postcss-convert-values "^5.0.4" - postcss-discard-comments "^5.0.3" - postcss-discard-duplicates "^5.0.3" - postcss-discard-empty "^5.0.3" - postcss-discard-overridden "^5.0.4" - postcss-merge-longhand "^5.0.6" - postcss-merge-rules "^5.0.6" - postcss-minify-font-values "^5.0.4" - postcss-minify-gradients "^5.0.6" - postcss-minify-params "^5.0.5" - postcss-minify-selectors "^5.1.3" - postcss-normalize-charset "^5.0.3" - postcss-normalize-display-values "^5.0.3" - postcss-normalize-positions "^5.0.4" - postcss-normalize-repeat-style "^5.0.4" - postcss-normalize-string "^5.0.4" - postcss-normalize-timing-functions "^5.0.3" - postcss-normalize-unicode "^5.0.4" - postcss-normalize-url "^5.0.5" - postcss-normalize-whitespace "^5.0.4" - postcss-ordered-values "^5.0.5" - postcss-reduce-initial "^5.0.3" - postcss-reduce-transforms "^5.0.4" - postcss-svgo "^5.0.4" - postcss-unique-selectors "^5.0.4" - -cssnano-utils@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.0.2.tgz#d82b4991a27ba6fec644b39bab35fe027137f516" - integrity sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ== + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.0" + postcss-discard-comments "^5.1.1" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.1" + postcss-merge-rules "^5.1.0" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.0" + postcss-minify-params "^5.1.1" + postcss-minify-selectors "^5.2.0" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.0" + postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.0" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.0" + postcss-reduce-initial "^5.1.0" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== cssnano@^5.0.15: - version "5.0.17" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.17.tgz#ff45713c05cfc780a1aeb3e663b6f224d091cabf" - integrity sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw== + version "5.1.3" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.3.tgz#cea179f91832b97135a5150850ee8bbbe7e8dc99" + integrity sha512-bdf+sY2w4XV+F5LOCEd7fWnSeMeKBO4lKgoAKVWZOSTR7CmWEk1UW/s9ibTMMnsTsinBmIdgZs755sAGa1eoXQ== dependencies: - cssnano-preset-default "^5.1.12" + cssnano-preset-default "^5.2.3" lilconfig "^2.0.3" yaml "^1.10.2" @@ -3633,11 +3573,6 @@ date-fns@^2.16.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== -dateformat@^4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -3972,16 +3907,6 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexify@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - ecdsa-sig-formatter@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -3994,10 +3919,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.4.71: - version "1.4.75" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd" - integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q== +electron-to-chromium@^1.4.76: + version "1.4.82" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.82.tgz#51e123ca434b1eba8c434ece2b54f095b304a651" + integrity sha512-Ks+ANzLoIrFDUOJdjxYMH6CMKB8UQo5modAwvSZTxgF+vEs/U7G5IbWFUp6dS4klPkTDVdxbORuk8xAXXhMsWw== elliptic@^6.5.3: version "6.5.4" @@ -4052,9 +3977,9 @@ entities@^3.0.1: integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== envalid@^7.2.1: - version "7.2.2" - resolved "https://registry.yarnpkg.com/envalid/-/envalid-7.2.2.tgz#f3219f85e692002dca0f28076740227d30c817e3" - integrity sha512-bl/3VF5PhoF26HlDWiE0NRRHUbKT/+UDP/+0JtOFmhUwK3cUPS7JgWYGbE8ArvA61T+SyNquxscLCS6y4Wnpdw== + version "7.3.0" + resolved "https://registry.yarnpkg.com/envalid/-/envalid-7.3.0.tgz#9d5eda789216cfdd8c55ff0d6fe30ddff38e52d5" + integrity sha512-RWAAXLU+s884YwbVQ+D8OYRIspo7hvF9zPTvjToVzqZknHwycAuGiiHG/XiI1UDY/PeYSlMwQvMUGb25n06iwA== dependencies: tslib "2.3.1" @@ -4225,12 +4150,12 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.8.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" - integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== +eslint@^8.10.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" + integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== dependencies: - "@eslint/eslintrc" "^1.2.0" + "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -4511,23 +4436,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-redact@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" - integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== - -fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: +fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fast-url-parser@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" - integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= - dependencies: - punycode "^1.3.2" - fast-xml-parser@^3.17.5: version "3.21.1" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736" @@ -4598,7 +4511,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^3.3.1: +find-cache-dir@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== @@ -4664,11 +4577,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flatstr@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" - integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== - flatted@^3.1.0: version "3.2.5" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" @@ -5136,9 +5044,9 @@ has-glob@^1.0.0: is-glob "^3.0.0" has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" @@ -5438,7 +5346,7 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= -ignore@^4.0.3, ignore@^4.0.6: +ignore@^4.0.3: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== @@ -6372,11 +6280,6 @@ jest@^27.4.5: import-local "^3.0.2" jest-cli "^27.5.1" -joycon@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -6698,13 +6601,6 @@ koa-helmet@^6.1.0: dependencies: helmet "^4.4.1" -koa-pino-logger@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba" - integrity sha512-teJsT88JLRBYH7pJACGAwAHfl2y/x5u5aSPD03Z/HW6QDMAWyRxk4dsY0/UbtM8wgaXIaxZgIFUxxvgiQFr6WQ== - dependencies: - pino-http "^5.0.1" - koa-qs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/koa-qs/-/koa-qs-3.0.0.tgz#390b0b5e9be0658b0f863ceb121da9a414b78d78" @@ -6733,7 +6629,7 @@ koa-router@^10.0.0: methods "^1.1.2" path-to-regexp "^6.1.0" -koa@^2.13.1: +koa@^2.13.4: version "2.13.4" resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== @@ -6769,11 +6665,6 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -leven@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -6859,9 +6750,9 @@ listr2@^3.12.2: wrap-ansi "^7.0.0" lmdb@^2.0.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.2.3.tgz#713ffa515c31e042808abf364b4aa0feaeaf6360" - integrity sha512-+OiHQpw22mBBxocb/9vcVNETqf0k5vgHA2r+KX7eCf8j5tSV50ZIv388iY1mnnrERIUhs2sjKQbZhPg7z4HyPQ== + version "2.2.5" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.2.5.tgz#37f08b5963a1b81da67f378c7084f59b84c3d443" + integrity sha512-yx+jtqSgp9uzp+2b3U3VTvS/g5hw4jXqvTAX+QU4Izdueq5O6MUTLwp/94R4F7SYq96zOfaGN/IUgiz6AWo+yg== dependencies: msgpackr "^1.5.4" nan "^2.14.2" @@ -6901,7 +6792,7 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.get@^4, lodash.get@^4.4.2: +lodash.get@^4: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= @@ -7359,7 +7250,7 @@ moment-timezone@^0.5.31: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -mongodb-connection-string-url@^2.3.2, mongodb-connection-string-url@^2.4.1: +mongodb-connection-string-url@^2.3.2, mongodb-connection-string-url@^2.4.1, mongodb-connection-string-url@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz#f075c8d529e8d3916386018b8a396aed4f16e5ed" integrity sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA== @@ -7367,21 +7258,22 @@ mongodb-connection-string-url@^2.3.2, mongodb-connection-string-url@^2.4.1: "@types/whatwg-url" "^8.2.1" whatwg-url "^11.0.0" -mongodb-memory-server-core@7.3.6: - version "7.3.6" - resolved "https://registry.yarnpkg.com/mongodb-memory-server-core/-/mongodb-memory-server-core-7.3.6.tgz#9c16cf120e498011a8702e7735271cbe878dd6e5" - integrity sha512-dxprJ5Xqb0y/9nqv709BGf8Cz4dnInhG3sTuYvMJijK4cAHYxk0xkKrvZX2X9PrYiCQqKix59hHMBGyBetN3hg== +mongodb-memory-server-core@7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/mongodb-memory-server-core/-/mongodb-memory-server-core-7.6.3.tgz#ba3ff2f50dc1cf5105683f15de54202976931af0" + integrity sha512-5rv79YlPoPvguRfFv1fvR78z69/QohGD+65f9UYWDfD70ykXpf6tAXPpWJ4ww/ues7FIVepkFCr3aiUvu6lA+A== dependencies: - "@types/tmp" "^0.2.0" - async-mutex "^0.3.0" + "@types/mongodb" "^3.6.20" + "@types/tmp" "^0.2.2" + async-mutex "^0.3.2" camelcase "^6.1.0" debug "^4.2.0" - find-cache-dir "^3.3.1" + find-cache-dir "^3.3.2" get-port "^5.1.1" https-proxy-agent "^5.0.0" md5-file "^5.0.0" mkdirp "^1.0.4" - mongodb "^3.6.9" + mongodb "^3.7.3" new-find-package-json "^1.1.0" semver "^7.3.5" tar-stream "^2.1.4" @@ -7390,23 +7282,23 @@ mongodb-memory-server-core@7.3.6: uuid "^8.3.1" yauzl "^2.10.0" -mongodb-memory-server@7.3.6: - version "7.3.6" - resolved "https://registry.yarnpkg.com/mongodb-memory-server/-/mongodb-memory-server-7.3.6.tgz#6df78425aaa01439556ba3f53e3042f82b3fa5c4" - integrity sha512-JfuY7uJD9TZxq6C4YVuCjiP2v0V/NYb19Wki6rFovdJvkgxGp5/KXKaazu47leECYAtJc2ajW1c009M3hRM+6A== +mongodb-memory-server@7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/mongodb-memory-server/-/mongodb-memory-server-7.6.3.tgz#8b2827363ca16aaf250cba07f7a2b49e502735d4" + integrity sha512-yHDE9FGxOpSRUzitF9Qx3JjEgayCSJI3JOW2wgeBH/5PAsUdisy2nRxRiNwwLDooQ7tohllWCRTXlWqyarUEMQ== dependencies: - mongodb-memory-server-core "7.3.6" + mongodb-memory-server-core "7.6.3" tslib "^2.3.0" mongodb@*: - version "4.4.0" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.4.0.tgz#3b14b9701067713d5c9afb6d6e4a86ca7b969824" - integrity sha512-1hPhutJj6yxxu0ymwsO0uEimTo+QTh3oQP6YHxmLneBFBOGydYFdnmDDuLiGWimAlMdRN9WuDXY+JGp47aeOwA== + version "4.4.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.4.1.tgz#e604cfbe2d5e125ae156ad04b52d261bed480b99" + integrity sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ== dependencies: bson "^4.6.1" denque "^2.0.1" - mongodb-connection-string-url "^2.4.1" - socks "^2.6.1" + mongodb-connection-string-url "^2.5.2" + socks "^2.6.2" optionalDependencies: saslprep "^1.0.3" @@ -7433,7 +7325,7 @@ mongodb@4.3.1: optionalDependencies: saslprep "^1.0.3" -mongodb@^3.6.9: +mongodb@^3.7.3: version "3.7.3" resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.3.tgz#b7949cfd0adc4cc7d32d3f2034214d4475f175a5" integrity sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw== @@ -7447,9 +7339,9 @@ mongodb@^3.6.9: saslprep "^1.0.0" mongoose@*, mongoose@^6.1.5: - version "6.2.4" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.2.4.tgz#c6ff4f84ab47b6c760e773424b0fd1f392d98563" - integrity sha512-3hA3IGxBzZdlp1+/I9qn53NjEAd01qvKAH2WUCPahjVO8+uAmR0B4m+1bC3x9a4r0ExY8QYQ2ryG3E/v5Tj+jA== + version "6.2.6" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.2.6.tgz#b30ae524b4ab9eeb33ed3988552d344f7b4b1962" + integrity sha512-OkPM1y7Ed9+Pa2/18mxegcD0OOe/aCXTQvOEyEn/MzVdaRsVSc+zE6myOS4LkWWi30c2tl4fpdJJvgC/MgXiww== dependencies: bson "^4.2.2" kareem "2.3.4" @@ -7476,11 +7368,6 @@ mquery@4.0.2: dependencies: debug "4.x" -mri@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -7505,9 +7392,9 @@ msgpackr-extract@^1.0.14: node-gyp-build "^4.2.3" msgpackr@^1.5.1, msgpackr@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.4.tgz#2b6ea6cb7d79c0ad98fc76c68163c48eda50cf0d" - integrity sha512-Z7w5Jg+2Q9z9gJxeM68d7tSuWZZGnFIRhZnyqcZCa/1dKkhOCNvR1TUV3zzJ3+vj78vlwKRzUgVDlW4jiSOeDA== + version "1.5.5" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.5.tgz#c0562abc2951d7e29f75d77a8656b01f103a042c" + integrity sha512-JG0V47xRIQ9pyUnx6Hb4+3TrQoia2nA3UIdmyTldhxaxtKFkekkKpUW/N6fwHwod9o4BGuJGtouxOk+yCP5PEA== optionalDependencies: msgpackr-extract "^1.0.14" @@ -7857,11 +7744,6 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" -on-exit-leak-free@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" - integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - on-finished@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -8386,95 +8268,6 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pino-abstract-transport@^0.5.0, pino-abstract-transport@v0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-express@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pino-express/-/pino-express-1.1.1.tgz#6a664a5aacbf2761566360399a50a3284e80ba24" - integrity sha512-jufadWCEk+EHGVzw+C3HeSD4F6bfDd8UMkBcOeNaBugDMbak+kvYL+3Rul71HAttvqV1BvJ7QkQVK6JqNPj6ng== - dependencies: - lodash.get "^4.4.2" - ms "^2.1.1" - -pino-http@^5.0.1: - version "5.8.0" - resolved "https://registry.yarnpkg.com/pino-http/-/pino-http-5.8.0.tgz#6e688fd5f965c5b6991f340eb660ea2927be9aa7" - integrity sha512-YwXiyRb9y0WCD1P9PcxuJuh3Dc5qmXde/paJE86UGYRdiFOi828hR9iUGmk5gaw6NBT9gLtKANOHFimvh19U5w== - dependencies: - fast-url-parser "^1.1.3" - pino "^6.13.0" - pino-std-serializers "^4.0.0" - -pino-multi-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pino-multi-stream/-/pino-multi-stream-6.0.0.tgz#2116bca740cb5eb606f430b20fd480f4944b2b99" - integrity sha512-oCuTtaDSUB5xK1S45r9oWE0Dj8RWdHVvaGTft5pO/rmzgIqQRkilf5Ooilz3uRm0IYj8sPRho3lVx48LCmXjvQ== - dependencies: - pino "^7.0.0" - -pino-pretty@^7.2.0: - version "7.5.1" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-7.5.1.tgz#4614b8c1077b718428c5a630749c905247951693" - integrity sha512-xEOUJiokdBGcZ9d0v7OY6SqEp+rrVH2drE3bHOUsK8elw44eh9V83InZqeL1dFwgD1IDnd6crUoec3hIXxfdBQ== - dependencies: - args "^5.0.1" - colorette "^2.0.7" - dateformat "^4.6.3" - fast-safe-stringify "^2.0.7" - joycon "^3.1.1" - pino-abstract-transport "^0.5.0" - pump "^3.0.0" - readable-stream "^3.6.0" - rfdc "^1.3.0" - secure-json-parse "^2.4.0" - sonic-boom "^2.2.0" - strip-json-comments "^3.1.1" - -pino-std-serializers@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" - integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== - -pino-std-serializers@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" - integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - -pino@*, pino@^7.0.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-7.8.0.tgz#cbd48121fba0e9e08acea440d27aa7baa91fd73c" - integrity sha512-Ynw2HRVapiyj+ZGfUcpms+SRgDKFIy0ztaFUf3X6IHh+vsysMvn+tpV/Ej3gyutPp4n9tgH6ZkkCAelSvP5zmQ== - dependencies: - fast-redact "^3.0.0" - on-exit-leak-free "^0.2.0" - pino-abstract-transport v0.5.0 - pino-std-serializers "^4.0.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.1.0" - safe-stable-stringify "^2.1.0" - sonic-boom "^2.2.1" - thread-stream "^0.13.0" - -pino@^6.13.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" - integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== - dependencies: - fast-redact "^3.0.0" - fast-safe-stringify "^2.0.8" - flatstr "^1.0.12" - pino-std-serializers "^3.1.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - sonic-boom "^1.0.2" - pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -8499,7 +8292,7 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^8.2.0: +postcss-calc@^8.2.3: version "8.2.4" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== @@ -8507,176 +8300,176 @@ postcss-calc@^8.2.0: postcss-selector-parser "^6.0.9" postcss-value-parser "^4.2.0" -postcss-colormin@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.5.tgz#d1fc269ac2ad03fe641d462b5d1dada35c69968a" - integrity sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg== +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" colord "^2.9.1" postcss-value-parser "^4.2.0" -postcss-convert-values@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz#3e74dd97c581f475ae7b4500bc0a7c4fb3a6b1b6" - integrity sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw== +postcss-convert-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz#f8d3abe40b4ce4b1470702a0706343eac17e7c10" + integrity sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g== dependencies: postcss-value-parser "^4.2.0" -postcss-discard-comments@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz#011acb63418d600fdbe18804e1bbecb543ad2f87" - integrity sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q== +postcss-discard-comments@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz#e90019e1a0e5b99de05f63516ce640bd0df3d369" + integrity sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ== -postcss-discard-duplicates@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz#10f202a4cfe9d407b73dfea7a477054d21ea0c1f" - integrity sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw== +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== -postcss-discard-empty@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz#ec185af4a3710b88933b0ff751aa157b6041dd6a" - integrity sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA== +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== -postcss-discard-overridden@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz#cc999d6caf18ea16eff8b2b58f48ec3ddee35c9c" - integrity sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg== +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== -postcss-merge-longhand@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz#090e60d5d3b3caad899f8774f8dccb33217d2166" - integrity sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg== +postcss-merge-longhand@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.1.tgz#847b3db946f05d7ceac7f37b60de514f0bf62758" + integrity sha512-JLtqAY1LvxiD2aej6hcAk/TkXvEPM+Gs1aOkOIZub2MDEiB5NMtpMe/Ir2seIMMM245bsuHggzIhQBv6qFBm4A== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^5.0.3" + stylehacks "^5.1.0" -postcss-merge-rules@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz#26b37411fe1e80202fcef61cab027265b8925f2b" - integrity sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ== +postcss-merge-rules@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz#a2d5117eba09c8686a5471d97bd9afcf30d1b41f" + integrity sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" - cssnano-utils "^3.0.2" + cssnano-utils "^3.1.0" postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz#627d824406b0712243221891f40a44fffe1467fd" - integrity sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA== +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz#b07cef51a93f075e94053fd972ff1cba2eaf6503" - integrity sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A== +postcss-minify-gradients@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz#de0260a67a13b7b321a8adc3150725f2c6612377" + integrity sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg== dependencies: colord "^2.9.1" - cssnano-utils "^3.0.2" + cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-minify-params@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz#86cb624358cd45c21946f8c317893f0449396646" - integrity sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg== +postcss-minify-params@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.1.tgz#c5f8e7dac565e577dd99904787fbec576cbdbfb2" + integrity sha512-WCpr+J9Uz8XzMpAfg3UL8z5rde6MifBbh5L8bn8S2F5hq/YDJJzASYCnCHvAB4Fqb94ys8v95ULQkW2EhCFvNg== dependencies: browserslist "^4.16.6" - cssnano-utils "^3.0.2" + cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz#6ac12d52aa661fd509469d87ab2cebb0a1e3a1b5" - integrity sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ== +postcss-minify-selectors@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz#17c2be233e12b28ffa8a421a02fc8b839825536c" + integrity sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA== dependencies: postcss-selector-parser "^6.0.5" -postcss-normalize-charset@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz#719fb9f9ca9835fcbd4fed8d6e0d72a79e7b5472" - integrity sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA== +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== -postcss-normalize-display-values@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz#94cc82e20c51cc4ffba6b36e9618adc1e50db8c1" - integrity sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ== +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz#4001f38c99675437b83277836fb4291887fcc6cc" - integrity sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ== +postcss-normalize-positions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" + integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz#d005adf9ee45fae78b673031a376c0c871315145" - integrity sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA== +postcss-normalize-repeat-style@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" + integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-string@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz#b5e00a07597e7aa8a871817bfeac2bfaa59c3333" - integrity sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ== +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz#47210227bfcba5e52650d7a18654337090de7072" - integrity sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g== +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz#02866096937005cdb2c17116c690f29505a1623d" - integrity sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig== +postcss-normalize-unicode@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75" + integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ== dependencies: browserslist "^4.16.6" postcss-value-parser "^4.2.0" -postcss-normalize-url@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz#c39efc12ff119f6f45f0b4f516902b12c8080e3a" - integrity sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ== +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== dependencies: normalize-url "^6.0.1" postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz#1d477e7da23fecef91fc4e37d462272c7b55c5ca" - integrity sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw== +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz#e878af822a130c3f3709737e24cb815ca7c6d040" - integrity sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ== +postcss-ordered-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz#04ef429e0991b0292bc918b135cd4c038f7b889f" + integrity sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA== dependencies: - cssnano-utils "^3.0.2" + cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-reduce-initial@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz#68891594defd648253703bbd8f1093162f19568d" - integrity sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA== +postcss-reduce-initial@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6" + integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" -postcss-reduce-transforms@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz#717e72d30befe857f7d2784dba10eb1157863712" - integrity sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g== +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== dependencies: postcss-value-parser "^4.2.0" @@ -8688,18 +8481,18 @@ postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.4.tgz#cfa8682f47b88f7cd75108ec499e133b43102abf" - integrity sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg== +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== dependencies: postcss-value-parser "^4.2.0" svgo "^2.7.0" -postcss-unique-selectors@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz#08e188126b634ddfa615fb1d6c262bafdd64826e" - integrity sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ== +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== dependencies: postcss-selector-parser "^6.0.5" @@ -8709,9 +8502,9 @@ postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.5: - version "8.4.7" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" - integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== + version "8.4.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032" + integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ== dependencies: nanoid "^3.3.1" picocolors "^1.0.0" @@ -8802,11 +8595,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - promise-events@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/promise-events/-/promise-events-0.2.4.tgz#3b46508b2dfbd0b0fd349a404f65bf279fc483eb" @@ -8863,11 +8651,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -8912,11 +8695,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -9062,11 +8840,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -9262,9 +9035,9 @@ rxjs@^6.6.3: tslib "^1.9.0" rxjs@^7.5.1: - version "7.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d" - integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" @@ -9285,11 +9058,6 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safe-stable-stringify@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -9314,11 +9082,6 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -secure-json-parse@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" - integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== - semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -9530,7 +9293,7 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socks@^2.6.1: +socks@^2.6.1, socks@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== @@ -9538,21 +9301,6 @@ socks@^2.6.1: ip "^1.1.5" smart-buffer "^4.2.0" -sonic-boom@^1.0.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" - integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== - dependencies: - atomic-sleep "^1.0.0" - flatstr "^1.0.12" - -sonic-boom@^2.1.0, sonic-boom@^2.2.0, sonic-boom@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.6.0.tgz#8786fc78be07c18a90381acd816d1d4afe3537a2" - integrity sha512-6xYZFRmDEtxGqfOKcDQ4cPLrNa0SPEDI+wlzDAHowXE6YV42NeXqg9mP2KkiM8JVu3lHfZ2iQKYlGOz+kTpphg== - dependencies: - atomic-sleep "^1.0.0" - source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -9569,7 +9317,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.17, source-map-support@^0.5.21, source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -9654,7 +9402,7 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" -split2@^4.0.0, split2@^4.1.0: +split2@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== @@ -9704,11 +9452,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - streamsearch@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" @@ -9833,10 +9576,10 @@ strnum@^1.0.4: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -stylehacks@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.3.tgz#2ef3de567bfa2be716d29a93bf3d208c133e8d04" - integrity sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg== +stylehacks@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" + integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q== dependencies: browserslist "^4.16.6" postcss-selector-parser "^6.0.4" @@ -9962,9 +9705,9 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser@^5.2.0: - version "5.11.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.11.0.tgz#2da5506c02e12cd8799947f30ce9c5b760be000f" - integrity sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A== + version "5.12.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== dependencies: acorn "^8.5.0" commander "^2.20.0" @@ -10004,13 +9747,6 @@ thenify-all@^1.0.0, thenify-all@^1.6.0: dependencies: any-promise "^1.0.0" -thread-stream@^0.13.0: - version "0.13.2" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.13.2.tgz#de8ea87584baee625c631947ec73494aa86131c8" - integrity sha512-woZFt0cLFkPdhsa+IGpRo1jiSouaHxMIljzTgt30CMjBWoUYbbcHqnunW5Yv+BXko9H05MVIcxMipI3Jblallw== - dependencies: - real-require "^0.1.0" - throat@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" @@ -10193,9 +9929,9 @@ ts-node@^9: yn "3.1.1" tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== + version "3.13.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz#f3e9b8f6876698581d94470c03c95b3a48c0e3d7" + integrity sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" @@ -10212,6 +9948,13 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslog@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/tslog/-/tslog-3.3.2.tgz#ceef419054a85d992cfdd923dc04aa0ea3539e24" + integrity sha512-K+XduMfa9+yiHE/vxbUD/dL7RAbw9yIfi9tMjQj3uQ8evkPRKkmw0mQgEkzmueyg23hJHGaOQmDnCEZoKEws+w== + dependencies: + source-map-support "^0.5.21" + tsscmp@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" @@ -10294,9 +10037,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typeorm@^0.2.38: - version "0.2.44" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.44.tgz#4cc07eb1eb7a0e7f3ec9e65ded9eb3c3aedbb3e1" - integrity sha512-yFyb9Ts73vGaS/O06TvLpzvT5U/ngO31GeciNc0eoH7P1QcG8kVZdOy9FHJqkTeDmIljMRgWjbYUoMw53ZY7Xw== + version "0.2.45" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.45.tgz#e5bbb3af822dc4646bad96cfa48cd22fa4687cea" + integrity sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" @@ -10316,15 +10059,15 @@ typeorm@^0.2.38: yargs "^17.0.1" zen-observable-ts "^1.0.0" -typescript@^4.4.3, typescript@^4.4.4: +typescript@^4.4.3, typescript@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== uglify-js@^3.1.4: - version "3.15.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.2.tgz#1ed2c976f448063b1f87adb68c741be79959f951" - integrity sha512-peeoTk3hSwYdoc9nrdiEJk+gx1ALCtTjdYuKSXMTDqq7n1W7dHPqWDdSi+BPL0ni2YMeHD7hKUSdbj3TZauY2A== + version "3.15.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.3.tgz#9aa82ca22419ba4c0137642ba0df800cb06e0471" + integrity sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg== unbox-primitive@^1.0.1: version "1.0.1"