From d9117c70761f35604d70321ae3f02222c718b94a Mon Sep 17 00:00:00 2001 From: milon27 Date: Mon, 22 Jan 2024 12:51:53 +0600 Subject: [PATCH] init --- .doc/doc.md | 1 + .dockerignore | 11 + .env.dev | 39 + .env.prod | 39 + .eslintrc.js | 44 + .gitignore | 11 + .husky/pre-commit | 5 + .husky/pre-push | 5 + .prettierrc.js | 11 + .vscode/express.code-snippets | 201 + .vscode/settings.json | 31 + Dockerfile | 57 + docker-compose.dev.yml | 15 + docker-compose.prod.yml | 11 + docker-compose.yml | 28 + drizzle.config.ts | 7 + package.json | 89 + pnpm-lock.yaml | 6896 +++++++++++++++++ public/fonts/hind/HindSiliguri-Bold.ttf | Bin 0 -> 284964 bytes public/fonts/hind/HindSiliguri-Light.ttf | Bin 0 -> 256576 bytes public/fonts/hind/HindSiliguri-Medium.ttf | Bin 0 -> 263696 bytes public/fonts/hind/HindSiliguri-Regular.ttf | Bin 0 -> 247356 bytes public/fonts/hind/HindSiliguri-SemiBold.ttf | Bin 0 -> 270032 bytes readme.md | 139 + .../0000_colossal_victor_mancha.sql | 23 + .../migrations/meta/0000_snapshot.json | 176 + .../drizzle/migrations/meta/_journal.json | 13 + resources/email-template/.gitkeep | 0 resources/firebase/account-key.sample.json | 13 + resources/i18n/.gitkeep | 0 resources/readme.md | 4 + src/__test__/auth/logged-in-user.test.ts | 44 + src/__test__/auth/login.test.ts | 59 + src/__test__/auth/logout.test.ts | 40 + src/__test__/auth/register.test.ts | 47 + src/__test__/data.ts | 17 + src/__test__/health-check.test.ts | 24 + src/__test__/init.md | 26 + src/__test__/test.util.ts | 71 + src/app.ts | 34 + src/common/dto/params.dto.ts | 26 + src/common/model/current-user.model.ts | 5 + src/common/model/date.type.ts | 1 + src/common/model/error.model.ts | 44 + src/common/module/db/db.service.ts | 10 + src/common/module/email/email.service.ts | 46 + src/common/module/email/send-email.util.ts | 52 + src/common/module/fcm/fcm.service.ts | 82 + src/common/module/json/my-json.service.ts | 28 + src/common/module/pdf/my-pdf.service.ts | 153 + src/config/constant/code.constant.ts | 22 + src/config/constant/common.constant.ts | 26 + src/config/constant/key.constant.ts | 10 + src/config/db/db.ts | 22 + src/config/db/schema/user/user.schema.ts | 38 + src/config/db/utils/migrator.ts | 21 + src/config/db/utils/seed.ts | 12 + src/config/db/utils/truncate.ts | 31 + src/config/env.config.ts | 56 + src/config/firebase.config.ts | 15 + src/config/logger/dev.logger.ts | 19 + src/config/logger/index.ts | 16 + src/config/logger/prod.logger.ts | 27 + src/config/redis/redis.config.ts | 28 + src/config/redis/utils/clean.ts | 15 + src/config/router/v1-router.config.ts | 12 + src/config/shutdown.config.ts | 27 + src/config/socket/socket.config.ts | 27 + src/feature/auth/auth.router.ts | 23 + .../dto/forget-password.dto.ts | 11 + .../forget-password.controller.ts | 52 + .../forget-password/forget-password.router.ts | 32 + .../auth/login-register/dto/login.dto.ts | 20 + .../auth/login-register/dto/register.dto.ts | 33 + .../login-register.controller.ts | 67 + .../login-register/login-register.router.ts | 35 + .../login-register/login-register.service.ts | 94 + src/feature/auth/logout/dto/logout.dto.ts | 9 + src/feature/auth/logout/logout.controller.ts | 33 + src/feature/auth/logout/logout.router.ts | 16 + src/feature/auth/token/token.controller.ts | 22 + src/feature/auth/token/token.router.ts | 15 + .../auth/verify-email/dto/verify-email.dto.ts | 10 + .../verify-email/verify-email.controller.ts | 51 + .../auth/verify-email/verify-email.router.ts | 31 + .../health-check/health-check.controller.ts | 99 + .../health-check/health-check.router.ts | 54 + src/feature/user/dto/user.dto.ts | 38 + src/feature/user/user.controller.ts | 77 + src/feature/user/user.router.ts | 37 + src/feature/user/user.service.ts | 128 + src/middleware/auth.mid.ts | 40 + src/middleware/error.mid.ts | 19 + src/middleware/info.mid.ts | 16 + src/middleware/limiter/email.limiter.ts | 34 + src/middleware/limiter/global-rete.limiter.ts | 16 + src/middleware/limiter/pdf.limiter.ts | 23 + src/middleware/logger.mid.ts | 7 + src/middleware/socket-auth.mid.ts | 18 + src/middleware/validate.mid.ts | 53 + src/server.ts | 23 + src/types/express/index.d.ts | 10 + src/types/socket.io/index.d.ts | 7 + src/utils/access-token.util.ts | 63 + src/utils/common.util.ts | 37 + src/utils/cookie.util.ts | 50 + src/utils/date.util.ts | 42 + src/utils/error-response.util.ts | 27 + src/utils/my-response.util.ts | 32 + src/utils/otp.util.ts | 36 + src/utils/redis.util.ts | 77 + src/utils/zod.util.ts | 64 + todo.md | 0 tsconfig.json | 24 + vitest.config.ts | 9 + 115 files changed, 10816 insertions(+) create mode 100644 .doc/doc.md create mode 100644 .dockerignore create mode 100644 .env.dev create mode 100644 .env.prod create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .husky/pre-commit create mode 100644 .husky/pre-push create mode 100644 .prettierrc.js create mode 100644 .vscode/express.code-snippets create mode 100644 .vscode/settings.json create mode 100644 Dockerfile create mode 100644 docker-compose.dev.yml create mode 100644 docker-compose.prod.yml create mode 100644 docker-compose.yml create mode 100644 drizzle.config.ts create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/fonts/hind/HindSiliguri-Bold.ttf create mode 100644 public/fonts/hind/HindSiliguri-Light.ttf create mode 100644 public/fonts/hind/HindSiliguri-Medium.ttf create mode 100644 public/fonts/hind/HindSiliguri-Regular.ttf create mode 100644 public/fonts/hind/HindSiliguri-SemiBold.ttf create mode 100644 readme.md create mode 100644 resources/drizzle/migrations/0000_colossal_victor_mancha.sql create mode 100644 resources/drizzle/migrations/meta/0000_snapshot.json create mode 100644 resources/drizzle/migrations/meta/_journal.json create mode 100644 resources/email-template/.gitkeep create mode 100644 resources/firebase/account-key.sample.json create mode 100644 resources/i18n/.gitkeep create mode 100644 resources/readme.md create mode 100644 src/__test__/auth/logged-in-user.test.ts create mode 100644 src/__test__/auth/login.test.ts create mode 100644 src/__test__/auth/logout.test.ts create mode 100644 src/__test__/auth/register.test.ts create mode 100644 src/__test__/data.ts create mode 100644 src/__test__/health-check.test.ts create mode 100644 src/__test__/init.md create mode 100644 src/__test__/test.util.ts create mode 100644 src/app.ts create mode 100644 src/common/dto/params.dto.ts create mode 100644 src/common/model/current-user.model.ts create mode 100644 src/common/model/date.type.ts create mode 100644 src/common/model/error.model.ts create mode 100644 src/common/module/db/db.service.ts create mode 100644 src/common/module/email/email.service.ts create mode 100644 src/common/module/email/send-email.util.ts create mode 100644 src/common/module/fcm/fcm.service.ts create mode 100644 src/common/module/json/my-json.service.ts create mode 100644 src/common/module/pdf/my-pdf.service.ts create mode 100644 src/config/constant/code.constant.ts create mode 100644 src/config/constant/common.constant.ts create mode 100644 src/config/constant/key.constant.ts create mode 100644 src/config/db/db.ts create mode 100644 src/config/db/schema/user/user.schema.ts create mode 100644 src/config/db/utils/migrator.ts create mode 100644 src/config/db/utils/seed.ts create mode 100644 src/config/db/utils/truncate.ts create mode 100644 src/config/env.config.ts create mode 100644 src/config/firebase.config.ts create mode 100644 src/config/logger/dev.logger.ts create mode 100644 src/config/logger/index.ts create mode 100644 src/config/logger/prod.logger.ts create mode 100644 src/config/redis/redis.config.ts create mode 100644 src/config/redis/utils/clean.ts create mode 100644 src/config/router/v1-router.config.ts create mode 100644 src/config/shutdown.config.ts create mode 100644 src/config/socket/socket.config.ts create mode 100644 src/feature/auth/auth.router.ts create mode 100644 src/feature/auth/forget-password/dto/forget-password.dto.ts create mode 100644 src/feature/auth/forget-password/forget-password.controller.ts create mode 100644 src/feature/auth/forget-password/forget-password.router.ts create mode 100644 src/feature/auth/login-register/dto/login.dto.ts create mode 100644 src/feature/auth/login-register/dto/register.dto.ts create mode 100644 src/feature/auth/login-register/login-register.controller.ts create mode 100644 src/feature/auth/login-register/login-register.router.ts create mode 100644 src/feature/auth/login-register/login-register.service.ts create mode 100644 src/feature/auth/logout/dto/logout.dto.ts create mode 100644 src/feature/auth/logout/logout.controller.ts create mode 100644 src/feature/auth/logout/logout.router.ts create mode 100644 src/feature/auth/token/token.controller.ts create mode 100644 src/feature/auth/token/token.router.ts create mode 100644 src/feature/auth/verify-email/dto/verify-email.dto.ts create mode 100644 src/feature/auth/verify-email/verify-email.controller.ts create mode 100644 src/feature/auth/verify-email/verify-email.router.ts create mode 100644 src/feature/health-check/health-check.controller.ts create mode 100644 src/feature/health-check/health-check.router.ts create mode 100644 src/feature/user/dto/user.dto.ts create mode 100644 src/feature/user/user.controller.ts create mode 100644 src/feature/user/user.router.ts create mode 100644 src/feature/user/user.service.ts create mode 100644 src/middleware/auth.mid.ts create mode 100644 src/middleware/error.mid.ts create mode 100644 src/middleware/info.mid.ts create mode 100644 src/middleware/limiter/email.limiter.ts create mode 100644 src/middleware/limiter/global-rete.limiter.ts create mode 100644 src/middleware/limiter/pdf.limiter.ts create mode 100644 src/middleware/logger.mid.ts create mode 100644 src/middleware/socket-auth.mid.ts create mode 100644 src/middleware/validate.mid.ts create mode 100644 src/server.ts create mode 100644 src/types/express/index.d.ts create mode 100644 src/types/socket.io/index.d.ts create mode 100644 src/utils/access-token.util.ts create mode 100644 src/utils/common.util.ts create mode 100644 src/utils/cookie.util.ts create mode 100644 src/utils/date.util.ts create mode 100644 src/utils/error-response.util.ts create mode 100644 src/utils/my-response.util.ts create mode 100644 src/utils/otp.util.ts create mode 100644 src/utils/redis.util.ts create mode 100644 src/utils/zod.util.ts create mode 100644 todo.md create mode 100644 tsconfig.json create mode 100644 vitest.config.ts diff --git a/.doc/doc.md b/.doc/doc.md new file mode 100644 index 0000000..22bcfb1 --- /dev/null +++ b/.doc/doc.md @@ -0,0 +1 @@ +# write postman link \ No newline at end of file diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..932356b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +/node_modules +/dist +.dockerignore +Dockerfile +*.md +.pnpm-debug.log +/uploads + +# .envs +.env +# .env.prod and account json for firebase should be allowed to copy into container otherwise how it will run \ No newline at end of file diff --git a/.env.dev b/.env.dev new file mode 100644 index 0000000..ccb8a09 --- /dev/null +++ b/.env.dev @@ -0,0 +1,39 @@ +# if you update this file, update .env.example and .env.config.ts +NODE_ENV=development +# test, development, production + +PORT=4000 +TZ=Etc/UTC + +# database +DATABASE_URL="mysql://root:myPassWord@localhost:3308/mm_db" # mm_db, test + +# redis +REDIS_URL="redis://default:1234567@localhost:6379" +# redis cluster (not used) +REDIS_CLUSTER_ENABLE='false' +REDIS_CLUSTER_URLS="one,two,three" +REDIS_CLUSTER_PORT="6379" + +# access token +ACCESS_TOKEN_VALIDITY=7 # in days + +# enable socket +ENABLE_SOCKET='false' + +# logger +LOKI_HOST="https://xxxxx.grafana.net" +LOKI_AUTH="xxxxxxxxxxxxxxxxxxxxxxxxx" + +# SMTP Mail +SMTP_HOST="smtp-relay.xxxx.com" +SMTP_PORT=587 +SMTP_USER="xxxxx@gmail.com" +SMTP_PASSWORD="xxxxxxx" +SMTP_EMAIL_FROM="NestPress " + +# google login +G_WEB_CLIENT_ID="XXXXX-XXXXX.apps.googleusercontent.com" +G_ANDROID_CLIENT_ID="XXXXX-XXXXX.apps.googleusercontent.com" +G_IOS_CLIENT_ID="XXXXX-XXXXX.apps.googleusercontent.com" # not used +G_SECRET_ID="XXX-XXXXX" # not used diff --git a/.env.prod b/.env.prod new file mode 100644 index 0000000..237756e --- /dev/null +++ b/.env.prod @@ -0,0 +1,39 @@ +# if you update this file, update .env.example and .env.config.ts +NODE_ENV=production +# test, development, production + +PORT=4000 +TZ=Etc/UTC + +# database +DATABASE_URL="mysql://root:myPassWord@localhost:3308/mm_db" # mm_db, test + +# redis +REDIS_URL="redis://default:1234567@localhost:6379" +# redis cluster (not used) +REDIS_CLUSTER_ENABLE='false' +REDIS_CLUSTER_URLS="one,two,three" +REDIS_CLUSTER_PORT="6379" + +# access token +ACCESS_TOKEN_VALIDITY=7 # in days + +# enable socket +ENABLE_SOCKET='false' + +# logger +LOKI_HOST="https://xxxxx.grafana.net" +LOKI_AUTH="xxxxxxxxxxxxxxxxxxxxxxxxx" + +# SMTP Mail +SMTP_HOST="smtp-relay.xxxx.com" +SMTP_PORT=587 +SMTP_USER="xxxxx@gmail.com" +SMTP_PASSWORD="xxxxxxx" +SMTP_EMAIL_FROM="NestPress " + +# google login +G_WEB_CLIENT_ID="XXXXX-XXXXX.apps.googleusercontent.com" +G_ANDROID_CLIENT_ID="XXXXX-XXXXX.apps.googleusercontent.com" +G_IOS_CLIENT_ID="XXXXX-XXXXX.apps.googleusercontent.com" # not used +G_SECRET_ID="XXX-XXXXX" # not used diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..90347b7 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,44 @@ +module.exports = { + env: { + node: true, + es2021: true, + }, + extends: [ + "airbnb-base", + "airbnb-typescript/base", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended", + ], + overrides: [], + parser: "@typescript-eslint/parser", + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + project: "./tsconfig.json", + }, + plugins: ["@typescript-eslint", "prettier"], + ignorePatterns: ["node_modules", "resources", "dist", "drizzle.config.ts", "vitest.config.ts"], + rules: { + "prettier/prettier": [ + "warn", + { + endOfLine: "auto", + }, + ], + "no-console": "warn", + "linebreak-style": "off", + "no-nested-ternary": "off", + radix: "off", + "no-underscore-dangle": "off", + "import/prefer-default-export": "off", + "class-methods-use-this": "off", + "@typescript-eslint/dot-notation": "off", + "require-await": ["error"], + "@typescript-eslint/no-floating-promises": ["error"], + "no-await-in-loop": ["off"], + "import/no-cycle": "warn", + "no-restricted-syntax": "off", + }, +} + +// if you change any rule then reload the window diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6ceb40e --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +node_modules +dist +.env + + +# few git ignore which we may include +# .env.dev +# .env.test +# .env.staging +# .env.prod +account-key.json \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..aa5c6b8 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,5 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +# Increment the version number without creating a new commit and tag +npm run version:inc \ No newline at end of file diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 0000000..0aba56b --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,5 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +# it will thorw error and stop commit if there is any linting error, it will ignore warning +npm run lint diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..b6e7062 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,11 @@ +// prettier.config.js or .prettierrc.js +module.exports = { + trailingComma: "es5", + tabWidth: 4, + printWidth: 115, + semi: false, + singleQuote: false, + ignore: ["**/*.md", "!/*.md"], +} + +// if you change any rule then reload the window diff --git a/.vscode/express.code-snippets b/.vscode/express.code-snippets new file mode 100644 index 0000000..017262b --- /dev/null +++ b/.vscode/express.code-snippets @@ -0,0 +1,201 @@ +{ + // todo: https://snippet-generator.app/ + "Test": { + "prefix": "test-whatever", + "body": ["$1 -> ${1/(.*)/${1:/capitalize}/}"], + "description": "test output to console" + }, + "Nestpress Router": { + "prefix": "npr", + "body": [ + "import { Router } from \"express\";", + "import { $1Controller } from \"./${1/(.*)/${1:/downcase}/}.controller\";", + "", + "const $1Router = Router()", + "", + "/**", + " * @description get all ${1/(.*)/${1:/downcase}/} with paginate", + " * @url {{BASE_URL}}/${1/(.*)/${1:/downcase}/}/", + " */", + "$1Router.get('/', $1Controller.getAllByPaginate)", + "", + "/**", + " * @description get single ${1/(.*)/${1:/downcase}/}", + " * @url {{BASE_URL}}/${1/(.*)/${1:/downcase}/}/:id", + " */", + "$1Router.get('/:id', $1Controller.getSingle$1)", + "", + "/**", + " * @description create a new ${1/(.*)/${1:/downcase}/}", + " * @url {{BASE_URL}}/${1/(.*)/${1:/downcase}/}/", + " */", + "$1Router.post('/', $1Controller.create$1)", + "", + "/**", + " * @description update a ${1/(.*)/${1:/downcase}/}", + " * @url {{BASE_URL}}/${1/(.*)/${1:/downcase}/}/:id", + " */", + "$1Router.put('/:id', $1Controller.update$1)", + "", + "/**", + " * @description delete a ${1/(.*)/${1:/downcase}/}", + " * @url {{BASE_URL}}/${1/(.*)/${1:/downcase}/}/:id", + " */", + "$1Router.delete('/:id', $1Controller.delete$1)", + "", + "", + "export default $1Router" + ], + "description": "Nestpress Router" + }, + "Nestpress Controller": { + "prefix": "npc", + "body": [ + "import { Request, Response, NextFunction } from \"express\"", + "", + "export const $1Controller = {", + " getAllByPaginate: (req: Request, res: Response, next: NextFunction) => {", + " try {", + " return res.status(StatusCode.OK).json(MyResponse(\"operation successful\", true));", + " } catch (e) {", + " return next(e);", + " }", + " },", + " getSingle$1: (req: Request, res: Response, next: NextFunction) => {", + " try {", + " return res.status(StatusCode.OK).json(MyResponse(\"operation successful\", true));", + " } catch (e) {", + " return next(e);", + " }", + " },", + " create$1: (req: Request, res: Response, next: NextFunction) => {", + " try {", + " return res.status(StatusCode.OK).json(MyResponse(\"operation successful\", true));", + " } catch (e) {", + " return next(e);", + " }", + " },", + " update$1: (req: Request, res: Response, next: NextFunction) => {", + " try {", + " return res.status(StatusCode.OK).json(MyResponse(\"operation successful\", true));", + " } catch (e) {", + " return next(e);", + " }", + " },", + " delete$1: (req: Request, res: Response, next: NextFunction) => {", + " try {", + " return res.status(StatusCode.OK).json(MyResponse(\"operation successful\", true));", + " } catch (e) {", + " return next(e);", + " }", + " },", + "}", + "" + ], + "description": "Express Controller" + }, + "update-me-later-based-on-project": { + "prefix": "xxxxxxxx", + "body": [ + "import { $1 } from \"@prisma/client\"", + "import { Request, Response, NextFunction } from \"express\"", + "import { $1Dto } from \"../models/dto/$1Dto\"", + "import { MyResponse } from \"../models/MyResponse\"", + "import Constant from \"../utils/Constant\"", + "import Helper from \"../utils/Helper\"", + "", + "const $1Controller = {", + " getAllByPaginate: async (req: Request, res: Response, next: NextFunction) => {", + " try {", + " const page = req.query.page as string || \"1\"", + " const page_size = req.query.page_size as string || Constant.PAGE_SIZE.toString()", + " const skip = (parseInt(page) - 1) * parseInt(page_size)", + " ", + " if (isNaN(skip)) {", + " throw new Error(\"Enter Valid Page Number and Page Size!\")", + " }", + " const count = await req.prisma.${1/(.*)/${1:/downcase}/}.count()", + " const list = await req.prisma.${1/(.*)/${1:/downcase}/}.findMany({", + " skip: skip,", + " take: parseInt(page_size),", + " orderBy: {", + " createdAt: \"desc\"", + " }", + " })", + " res.status(200).json(MyResponse<$1[]>(false, \"get data successfuly\", list,count))", + " } catch (e) {", + " console.log(\"getAllByPaginate: \", e)", + " return next(e)", + " }", + " },", + " getSingle$1: async (req: Request, res: Response, next: NextFunction) => {", + " try {", + " const { id } = req.params", + "", + " const ${1/(.*)/${1:/downcase}/} = await req.prisma.${1/(.*)/${1:/downcase}/}.findUnique({", + " where: {", + " id: id", + " }", + " })", + " if (!${1/(.*)/${1:/downcase}/}) {", + " throw new Error(\"No $1 Found!\")", + " }", + " res.status(200).json(MyResponse<$1>(false, \"get data successfuly\", ${1/(.*)/${1:/downcase}/}))", + " } catch (e) {", + " console.log(\"getSingle$1: \", e)", + " return next(e)", + " }", + " },", + " create$1: async (req: Request, res: Response, next: NextFunction) => {", + " try {", + " const { title, desc } = req.body as $1Dto", + " const ${1/(.*)/${1:/downcase}/} = await req.prisma.${1/(.*)/${1:/downcase}/}.create({", + " data: {", + " title, desc", + " }", + " })", + " res.status(200).json(MyResponse<$1>(false, \"created successfuly\", ${1/(.*)/${1:/downcase}/}))", + " } catch (e) {", + " console.log(\"create$1: \", e)", + " return next(e)", + " }", + " },", + " update$1: async (req: Request, res: Response, next: NextFunction) => {", + " try {", + " const { id } = req.params", + " const { title, desc } = req.body as Partial<$1Dto>", + " const ${1/(.*)/${1:/downcase}/} = await req.prisma.${1/(.*)/${1:/downcase}/}.update({", + " data: {", + " title: title || undefined,", + " desc: desc || undefined", + " },", + " where: {", + " id: id", + " }", + " })", + " res.status(200).json(MyResponse<$1>(false, \"updated successfuly\", ${1/(.*)/${1:/downcase}/}))", + " } catch (e) {", + " console.log(\"update$1: \", e)", + " return next(e)", + " }", + " },", + " delete$1: async (req: Request, res: Response, next: NextFunction) => {", + " try {", + " const { id } = req.params", + " const ${1/(.*)/${1:/downcase}/} = await req.prisma.${1/(.*)/${1:/downcase}/}.delete({", + " where: {", + " id: id", + " }", + " })", + " res.status(200).json(MyResponse<$1>(false, \"deleted successfuly\", ${1/(.*)/${1:/downcase}/}))", + " } catch (e) {", + " console.log(\"delete$1: \", e)", + " return next(e)", + " }", + " },", + "}", + "export $1Controller" + ], + "description": "ExpressControoler" + } +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3a9c22b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,31 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode", + "typescript.tsserver.maxTsServerMemory": 6144, + "workbench.colorCustomizations": { + "titleBar.activeBackground": "#649a5f", + "titleBar.inactiveBackground": "#649a5f" + }, + "cSpell.words": [ + "appleboy", + "bkash", + "bolditalics", + "datetime", + "eturino", + "expirable", + "flushall", + "IFNULL", + "jhon's", + "Karim's", + "Kidz", + "linebreak", + "milon", + "nagad", + "nestpress", + "okhttp", + "paralleldrive", + "Pdfmake", + "samesite", + "Siliguri", + "tolet" + ] +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..47746ff --- /dev/null +++ b/Dockerfile @@ -0,0 +1,57 @@ +FROM node:18.13.0-alpine as build +RUN npm install -g pnpm + +WORKDIR /app + +COPY package.json . +COPY pnpm-lock.yaml . + +RUN pnpm install + +COPY . . + +RUN npm run build + +# # ------------------dev ------------------- + +FROM node:18.13.0-alpine as dev +RUN npm install -g pnpm + +WORKDIR /app + +# (set in docker compose file) +COPY --from=build /app/.env.dev ./.env +COPY --from=build /app/package.json . +COPY --from=build /app/pnpm-lock.yaml . +COPY --from=build /app/resources ./resources +COPY --from=build /app/public ./public +COPY --from=build /app/node_modules/ ./node_modules/ +COPY --from=build /app/dist/ ./dist/ + +# migrate db to production(dev) +# seed the db (plan list) +# run the app + +CMD ["/bin/sh", "-c", "pnpm db:migrate:prod && pnpm db:seed:prod && node dist/src/server.js"] + +# # ------------------prod ------------------- + +FROM node:18.13.0-alpine as prod +RUN npm install -g pnpm + +WORKDIR /app + +# (set in docker compose file) +COPY --from=build /app/.env.prod ./.env +COPY --from=build /app/package.json . +COPY --from=build /app/pnpm-lock.yaml . +COPY --from=build /app/resources ./resources +COPY --from=build /app/public ./public +COPY --from=build /app/node_modules/ ./node_modules/ +COPY --from=build /app/dist/ ./dist/ + +# migrate db to production(dev) +# seed the db (plan list) +# run the app + +CMD ["/bin/sh", "-c", "pnpm db:migrate:prod && pnpm db:seed:prod && node dist/src/server.js"] \ No newline at end of file diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..f6d8f62 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,15 @@ +version: "3.9" +services: + mm_api: + container_name: mm_api + build: + context: . + dockerfile: Dockerfile + target: dev + # env_file: + # - .env.local + # depends_on: + # - postgres + # - redis + ports: + - 4000:4000 diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..58c41a2 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,11 @@ +version: "3.9" +services: + api: + container_name: api + build: + context: . + dockerfile: Dockerfile + target: prod + restart: always + ports: + - 4000:4000 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..074599b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.9" +services: + mysql: + container_name: mysql + image: mysql:8.0.33 + restart: always + environment: + - MYSQL_ROOT_PASSWORD=myPassWord + - MYSQL_DATABASE=mm_db + ports: + - 3308:3306 + volumes: + - db_vol:/var/lib/mysql + # - .backup-db:/docker-entrypoint-initdb.d + redis: + container_name: redis + image: redis:7.0.7-alpine + restart: always + volumes: + - redis_vol:/data + environment: + - REDIS_PASSWORD=1234567 + ports: + - 6379:6379 + +volumes: + db_vol: {} + redis_vol: {} diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 0000000..8acedcb --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,7 @@ +import type { Config } from "drizzle-kit" + +export default { + schema: "./src/config/db/schema/**/**", + out: "./resources/drizzle/migrations", + breakpoints: true, +} satisfies Config diff --git a/package.json b/package.json new file mode 100644 index 0000000..f79c917 --- /dev/null +++ b/package.json @@ -0,0 +1,89 @@ +{ + "name": "nestpress-server", + "version": "1.0.8", + "description": "Nestpress Server", + "main": "dist/src/server.js", + "scripts": { + "start": "node dist/src/server.js", + "dev": "cross-env NODE_ENV=development ts-node-dev ./src/server.ts", + "build": "tsc --outDir dist", + "lint": "npx eslint . --fix", + "lint:check": "npx eslint .", + "test": "cross-env NODE_ENV=test npm run db:clean && cross-env NODE_ENV=test npm run db:seed && cross-env NODE_ENV=test vitest --config ./vitest.config.ts", + "db:generate": "drizzle-kit generate:mysql", + "db:rollback": "drizzle-kit drop --config=drizzle.config.ts", + "db:migrate": "ts-node --files src/config/db/utils/migrator.ts", + "db:clean": "ts-node --files src/config/db/utils/truncate.ts", + "db:seed": "ts-node --files src/config/db/utils/seed.ts", + "db:migrate:prod": "node dist/src/config/db/utils/migrator.js", + "db:seed:prod": "node dist/src/config/db/utils/seed.js", + "redis:clean": "ts-node --files src/config/redis/utils/clean.ts", + "db:all:clean": "pnpm db:clean && pnpm redis:clean && pnpm db:seed", + "np": "nestpress ", + "version:inc": "npm version patch --no-git-tag-version && git add .", + "all:update": "pnpm update -i -L", + "prepare": "husky install" + }, + "keywords": [ + "express", + "nest", + "nestpress" + ], + "author": "milon27.com", + "license": "ISC", + "dependencies": { + "@paralleldrive/cuid2": "2.2.2", + "bcryptjs": "2.4.3", + "cookie-parser": "1.4.6", + "cors": "2.8.5", + "date-fns": "2.30.0", + "date-fns-tz": "2.0.0", + "dotenv": "16.3.1", + "drizzle-orm": "0.29.1", + "express": "4.18.2", + "express-rate-limit": "7.1.5", + "firebase-admin": "11.11.1", + "google-auth-library": "9.4.1", + "helmet": "7.1.0", + "ioredis": "5.3.2", + "mysql2": "3.6.5", + "nodemailer": "6.9.7", + "otp-generator": "4.0.1", + "pdfmake": "0.2.8", + "rate-limit-redis": "4.2.0", + "socket.io": "4.7.2", + "ulid": "2.3.0", + "winston": "3.11.0", + "winston-loki": "6.0.8", + "zod": "3.21.4" + }, + "devDependencies": { + "@types/bcryptjs": "2.4.6", + "@types/cookie-parser": "1.4.6", + "@types/cors": "2.8.17", + "@types/express": "4.17.21", + "@types/node": "18.16.3", + "@types/nodemailer": "6.4.14", + "@types/otp-generator": "4.0.2", + "@types/pdfmake": "0.2.8", + "@types/supertest": "2.0.16", + "@typescript-eslint/eslint-plugin": "6.13.1", + "@typescript-eslint/parser": "6.13.1", + "cross-env": "7.0.3", + "drizzle-kit": "0.20.6", + "eslint": "8.54.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-config-airbnb-typescript": "17.1.0", + "eslint-config-prettier": "9.0.0", + "eslint-plugin-import": "2.29.0", + "eslint-plugin-prettier": "5.0.1", + "husky": "8.0.3", + "nestpress": "0.1.3", + "prettier": "3.1.0", + "supertest": "6.3.3", + "ts-node": "10.9.1", + "ts-node-dev": "2.0.0", + "typescript": "5.1.3", + "vitest": "0.34.6" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..f726513 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6896 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@paralleldrive/cuid2': + specifier: 2.2.2 + version: 2.2.2 + bcryptjs: + specifier: 2.4.3 + version: 2.4.3 + cookie-parser: + specifier: 1.4.6 + version: 1.4.6 + cors: + specifier: 2.8.5 + version: 2.8.5 + date-fns: + specifier: 2.30.0 + version: 2.30.0 + date-fns-tz: + specifier: 2.0.0 + version: 2.0.0(date-fns@2.30.0) + dotenv: + specifier: 16.3.1 + version: 16.3.1 + drizzle-orm: + specifier: 0.29.1 + version: 0.29.1(mysql2@3.6.5) + express: + specifier: 4.18.2 + version: 4.18.2 + express-rate-limit: + specifier: 7.1.5 + version: 7.1.5(express@4.18.2) + firebase-admin: + specifier: 11.11.1 + version: 11.11.1 + google-auth-library: + specifier: 9.4.1 + version: 9.4.1 + helmet: + specifier: 7.1.0 + version: 7.1.0 + ioredis: + specifier: 5.3.2 + version: 5.3.2 + mysql2: + specifier: 3.6.5 + version: 3.6.5 + nodemailer: + specifier: 6.9.7 + version: 6.9.7 + otp-generator: + specifier: 4.0.1 + version: 4.0.1 + pdfmake: + specifier: 0.2.8 + version: 0.2.8 + rate-limit-redis: + specifier: 4.2.0 + version: 4.2.0(express-rate-limit@7.1.5) + socket.io: + specifier: 4.7.2 + version: 4.7.2 + ulid: + specifier: 2.3.0 + version: 2.3.0 + winston: + specifier: 3.11.0 + version: 3.11.0 + winston-loki: + specifier: 6.0.8 + version: 6.0.8 + zod: + specifier: 3.21.4 + version: 3.21.4 + +devDependencies: + '@types/bcryptjs': + specifier: 2.4.6 + version: 2.4.6 + '@types/cookie-parser': + specifier: 1.4.6 + version: 1.4.6 + '@types/cors': + specifier: 2.8.17 + version: 2.8.17 + '@types/express': + specifier: 4.17.21 + version: 4.17.21 + '@types/node': + specifier: 18.16.3 + version: 18.16.3 + '@types/nodemailer': + specifier: 6.4.14 + version: 6.4.14 + '@types/otp-generator': + specifier: 4.0.2 + version: 4.0.2 + '@types/pdfmake': + specifier: 0.2.8 + version: 0.2.8 + '@types/supertest': + specifier: 2.0.16 + version: 2.0.16 + '@typescript-eslint/eslint-plugin': + specifier: 6.13.1 + version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.1.3) + '@typescript-eslint/parser': + specifier: 6.13.1 + version: 6.13.1(eslint@8.54.0)(typescript@5.1.3) + cross-env: + specifier: 7.0.3 + version: 7.0.3 + drizzle-kit: + specifier: 0.20.6 + version: 0.20.6 + eslint: + specifier: 8.54.0 + version: 8.54.0 + eslint-config-airbnb-base: + specifier: 15.0.0 + version: 15.0.0(eslint-plugin-import@2.29.0)(eslint@8.54.0) + eslint-config-airbnb-typescript: + specifier: 17.1.0 + version: 17.1.0(@typescript-eslint/eslint-plugin@6.13.1)(@typescript-eslint/parser@6.13.1)(eslint-plugin-import@2.29.0)(eslint@8.54.0) + eslint-config-prettier: + specifier: 9.0.0 + version: 9.0.0(eslint@8.54.0) + eslint-plugin-import: + specifier: 2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) + eslint-plugin-prettier: + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0) + husky: + specifier: 8.0.3 + version: 8.0.3 + nestpress: + specifier: 0.1.3 + version: 0.1.3 + prettier: + specifier: 3.1.0 + version: 3.1.0 + supertest: + specifier: 6.3.3 + version: 6.3.3 + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@18.16.3)(typescript@5.1.3) + ts-node-dev: + specifier: 2.0.0 + version: 2.0.0(@types/node@18.16.3)(typescript@5.1.3) + typescript: + specifier: 5.1.3 + version: 5.1.3 + vitest: + specifier: 0.34.6 + version: 0.34.6 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dev: false + optional: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dev: false + optional: true + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + requiresBuild: true + dependencies: + '@babel/types': 7.23.6 + dev: false + optional: true + + /@babel/runtime@7.23.8: + resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: false + optional: true + + /@cloudflare/kv-asset-handler@0.2.0: + resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} + dependencies: + mime: 3.0.0 + dev: true + + /@cloudflare/workerd-darwin-64@1.20231218.0: + resolution: {integrity: sha512-547gOmTIVmRdDy7HNAGJUPELa+fSDm2Y0OCxqAtQOz0GLTDu1vX61xYmsb2rn91+v3xW6eMttEIpbYokKjtfJA==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-darwin-arm64@1.20231218.0: + resolution: {integrity: sha512-b39qrU1bKolCfmKFDAnX4vXcqzISkEUVE/V8sMBsFzxrIpNAbcUHBZAQPYmS/OHIGB94KjOVokvDi7J6UNurPw==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-linux-64@1.20231218.0: + resolution: {integrity: sha512-dMUF1wA+0mybm6hHNOCgY/WMNMwomPPs4I7vvYCgwHSkch0Q2Wb7TnxQZSt8d1PK/myibaBwadrlIxpjxmpz3w==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-linux-arm64@1.20231218.0: + resolution: {integrity: sha512-2s5uc8IHt0QmWyKxAr1Fy+4b8Xy0b/oUtlPnm5MrKi2gDRlZzR7JvxENPJCpCnYENydS8lzvkMiAFECPBccmyQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-windows-64@1.20231218.0: + resolution: {integrity: sha512-oN5hz6TXUDB5YKUN5N3QWAv6cYz9JjTZ9g16HVyoegVFEL6/zXU3tV19MBX2IvlE11ab/mRogEv9KXVIrHfKmA==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + dev: false + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + dev: false + + /@drizzle-team/studio@0.0.35: + resolution: {integrity: sha512-t5LTNOVf+L7Bb/wdssOIPx0ueNvhyaIXdrvKgoHR4wK0GD7SRmILcCTzn6N6Ltr1VnFzQZG/bzn6HMagn17Jtw==} + dependencies: + superjson: 2.2.1 + dev: true + + /@esbuild-kit/core-utils@3.3.2: + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} + dependencies: + esbuild: 0.18.20 + source-map-support: 0.5.21 + dev: true + + /@esbuild-kit/esm-loader@2.6.5: + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} + dependencies: + '@esbuild-kit/core-utils': 3.3.2 + get-tsconfig: 4.7.2 + dev: true + + /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19): + resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} + peerDependencies: + esbuild: '*' + dependencies: + esbuild: 0.17.19 + dev: true + + /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): + resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} + peerDependencies: + esbuild: '*' + dependencies: + esbuild: 0.17.19 + escape-string-regexp: 4.0.0 + rollup-plugin-node-polyfills: 0.2.1 + dev: true + + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.54.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@fastify/busboy@1.2.1: + resolution: {integrity: sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==} + engines: {node: '>=14'} + dependencies: + text-decoding: 1.0.0 + dev: false + + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + engines: {node: '>=14'} + dev: true + + /@firebase/app-types@0.9.0: + resolution: {integrity: sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==} + dev: false + + /@firebase/auth-interop-types@0.2.1: + resolution: {integrity: sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==} + dev: false + + /@firebase/component@0.6.4: + resolution: {integrity: sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==} + dependencies: + '@firebase/util': 1.9.3 + tslib: 2.6.2 + dev: false + + /@firebase/database-compat@0.3.4: + resolution: {integrity: sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==} + dependencies: + '@firebase/component': 0.6.4 + '@firebase/database': 0.14.4 + '@firebase/database-types': 0.10.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.6.2 + dev: false + + /@firebase/database-types@0.10.4: + resolution: {integrity: sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==} + dependencies: + '@firebase/app-types': 0.9.0 + '@firebase/util': 1.9.3 + dev: false + + /@firebase/database@0.14.4: + resolution: {integrity: sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==} + dependencies: + '@firebase/auth-interop-types': 0.2.1 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + faye-websocket: 0.11.4 + tslib: 2.6.2 + dev: false + + /@firebase/logger@0.4.0: + resolution: {integrity: sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==} + dependencies: + tslib: 2.6.2 + dev: false + + /@firebase/util@1.9.3: + resolution: {integrity: sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==} + dependencies: + tslib: 2.6.2 + dev: false + + /@foliojs-fork/fontkit@1.9.1: + resolution: {integrity: sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==} + dependencies: + '@foliojs-fork/restructure': 2.0.2 + brfs: 2.0.2 + brotli: 1.3.3 + browserify-optional: 1.0.1 + clone: 1.0.4 + deep-equal: 1.1.2 + dfa: 1.2.0 + tiny-inflate: 1.0.3 + unicode-properties: 1.4.1 + unicode-trie: 2.0.0 + dev: false + + /@foliojs-fork/linebreak@1.1.1: + resolution: {integrity: sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==} + dependencies: + base64-js: 1.3.1 + brfs: 2.0.2 + unicode-trie: 2.0.0 + dev: false + + /@foliojs-fork/pdfkit@0.14.0: + resolution: {integrity: sha512-nMOiQAv6id89MT3tVTCgc7HxD5ZMANwio2o5yvs5sexQkC0KI3BLaLakpsrHmFfeGFAhqPmZATZGbJGXTUebpg==} + dependencies: + '@foliojs-fork/fontkit': 1.9.1 + '@foliojs-fork/linebreak': 1.1.1 + crypto-js: 4.2.0 + png-js: 1.0.0 + dev: false + + /@foliojs-fork/restructure@2.0.2: + resolution: {integrity: sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==} + dev: false + + /@google-cloud/firestore@6.8.0: + resolution: {integrity: sha512-JRpk06SmZXLGz0pNx1x7yU3YhkUXheKgH5hbDZ4kMsdhtfV5qPLJLRI4wv69K0cZorIk+zTMOwptue7hizo0eA==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + fast-deep-equal: 3.1.3 + functional-red-black-tree: 1.0.1 + google-gax: 3.6.1 + protobufjs: 7.2.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /@google-cloud/paginator@3.0.7: + resolution: {integrity: sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + arrify: 2.0.1 + extend: 3.0.2 + dev: false + optional: true + + /@google-cloud/projectify@3.0.0: + resolution: {integrity: sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dev: false + optional: true + + /@google-cloud/promisify@3.0.1: + resolution: {integrity: sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA==} + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + /@google-cloud/storage@6.12.0: + resolution: {integrity: sha512-78nNAY7iiZ4O/BouWMWTD/oSF2YtYgYB3GZirn0To6eBOugjXVoK+GXgUXOl+HlqbAOyHxAVXOlsj3snfbQ1dw==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + '@google-cloud/paginator': 3.0.7 + '@google-cloud/projectify': 3.0.0 + '@google-cloud/promisify': 3.0.1 + abort-controller: 3.0.0 + async-retry: 1.3.3 + compressible: 2.0.18 + duplexify: 4.1.2 + ent: 2.2.0 + extend: 3.0.2 + fast-xml-parser: 4.3.3 + gaxios: 5.1.3 + google-auth-library: 8.9.0 + mime: 3.0.0 + mime-types: 2.1.35 + p-limit: 3.1.0 + retry-request: 5.0.2 + teeny-request: 8.0.3 + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /@grpc/grpc-js@1.8.21: + resolution: {integrity: sha512-KeyQeZpxeEBSqFVTi3q2K7PiPXmgBfECc4updA1ejCLjYmoAlvvM3ZMp5ztTDUCUQmoY3CpDxvchjO1+rFkoHg==} + engines: {node: ^8.13.0 || >=10.10.0} + requiresBuild: true + dependencies: + '@grpc/proto-loader': 0.7.10 + '@types/node': 18.16.3 + dev: false + optional: true + + /@grpc/proto-loader@0.7.10: + resolution: {integrity: sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==} + engines: {node: '>=6'} + hasBin: true + requiresBuild: true + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.2.5 + yargs: 17.7.2 + dev: false + optional: true + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@ioredis/commands@1.2.0: + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + dev: false + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jsdoc/salty@0.2.7: + resolution: {integrity: sha512-mh8LbS9d4Jq84KLw8pzho7XC2q2/IJGiJss3xwRoLD1A+EE16SjN4PfaG4jRCzKegTFLlN0Zd8SdUPE6XdoPFg==} + engines: {node: '>=v12.0.0'} + requiresBuild: true + dependencies: + lodash: 4.17.21 + dev: false + optional: true + + /@napi-rs/snappy-android-arm-eabi@7.2.2: + resolution: {integrity: sha512-H7DuVkPCK5BlAr1NfSU8bDEN7gYs+R78pSHhDng83QxRnCLmVIZk33ymmIwurmoA1HrdTxbkbuNl+lMvNqnytw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-android-arm64@7.2.2: + resolution: {integrity: sha512-2R/A3qok+nGtpVK8oUMcrIi5OMDckGYNoBLFyli3zp8w6IArPRfg1yOfVUcHvpUDTo9T7LOS1fXgMOoC796eQw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-darwin-arm64@7.2.2: + resolution: {integrity: sha512-USgArHbfrmdbuq33bD5ssbkPIoT7YCXCRLmZpDS6dMDrx+iM7eD2BecNbOOo7/v1eu6TRmQ0xOzeQ6I/9FIi5g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-darwin-x64@7.2.2: + resolution: {integrity: sha512-0APDu8iO5iT0IJKblk2lH0VpWSl9zOZndZKnBYIc+ei1npw2L5QvuErFOTeTdHBtzvUHASB+9bvgaWnQo4PvTQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-freebsd-x64@7.2.2: + resolution: {integrity: sha512-mRTCJsuzy0o/B0Hnp9CwNB5V6cOJ4wedDTWEthsdKHSsQlO7WU9W1yP7H3Qv3Ccp/ZfMyrmG98Ad7u7lG58WXA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-linux-arm-gnueabihf@7.2.2: + resolution: {integrity: sha512-v1uzm8+6uYjasBPcFkv90VLZ+WhLzr/tnfkZ/iD9mHYiULqkqpRuC8zvc3FZaJy5wLQE9zTDkTJN1IvUcZ+Vcg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-linux-arm64-gnu@7.2.2: + resolution: {integrity: sha512-LrEMa5pBScs4GXWOn6ZYXfQ72IzoolZw5txqUHVGs8eK4g1HR9HTHhb2oY5ySNaKakG5sOgMsb1rwaEnjhChmQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-linux-arm64-musl@7.2.2: + resolution: {integrity: sha512-3orWZo9hUpGQcB+3aTLW7UFDqNCQfbr0+MvV67x8nMNYj5eAeUtMmUE/HxLznHO4eZ1qSqiTwLbVx05/Socdlw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-linux-x64-gnu@7.2.2: + resolution: {integrity: sha512-jZt8Jit/HHDcavt80zxEkDpH+R1Ic0ssiVCoueASzMXa7vwPJeF4ZxZyqUw4qeSy7n8UUExomu8G8ZbP6VKhgw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-linux-x64-musl@7.2.2: + resolution: {integrity: sha512-Dh96IXgcZrV39a+Tej/owcd9vr5ihiZ3KRix11rr1v0MWtVb61+H1GXXlz6+Zcx9y8jM1NmOuiIuJwkV4vZ4WA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-win32-arm64-msvc@7.2.2: + resolution: {integrity: sha512-9No0b3xGbHSWv2wtLEn3MO76Yopn1U2TdemZpCaEgOGccz1V+a/1d16Piz3ofSmnA13HGFz3h9NwZH9EOaIgYA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-win32-ia32-msvc@7.2.2: + resolution: {integrity: sha512-QiGe+0G86J74Qz1JcHtBwM3OYdTni1hX1PFyLRo3HhQUSpmi13Bzc1En7APn+6Pvo7gkrcy81dObGLDSxFAkQQ==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/snappy-win32-x64-msvc@7.2.2: + resolution: {integrity: sha512-a43cyx1nK0daw6BZxVcvDEXxKMFLSBSDTAhsFD0VqSKcC7MGUBMaqyoWUcMiI7LBSz4bxUmxDWKfCYzpEmeb3w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@noble/hashes@1.3.3: + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + dev: true + + /@paralleldrive/cuid2@2.2.2: + resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} + dependencies: + '@noble/hashes': 1.3.3 + dev: false + + /@pkgr/core@0.1.0: + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + + /@rollup/rollup-android-arm-eabi@4.9.5: + resolution: {integrity: sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.5: + resolution: {integrity: sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.5: + resolution: {integrity: sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.5: + resolution: {integrity: sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.5: + resolution: {integrity: sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.5: + resolution: {integrity: sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.5: + resolution: {integrity: sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.5: + resolution: {integrity: sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.5: + resolution: {integrity: sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.5: + resolution: {integrity: sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.5: + resolution: {integrity: sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.5: + resolution: {integrity: sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.5: + resolution: {integrity: sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@socket.io/component-emitter@3.1.0: + resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + dev: false + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + requiresBuild: true + dev: false + optional: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/bcryptjs@2.4.6: + resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} + dev: true + + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 18.16.3 + + /@types/chai-subset@1.3.5: + resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} + dependencies: + '@types/chai': 4.3.11 + dev: true + + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + dev: true + + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 18.16.3 + + /@types/cookie-parser@1.4.6: + resolution: {integrity: sha512-KoooCrD56qlLskXPLGUiJxOMnv5l/8m7cQD2OxJ73NPMhuSz9PmvwRD6EpjDyKBVrdJDdQ4bQK7JFNHnNmax0w==} + dependencies: + '@types/express': 4.17.21 + dev: true + + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: false + + /@types/cookiejar@2.1.5: + resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} + dev: true + + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 18.16.3 + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/express-serve-static-core@4.17.41: + resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} + dependencies: + '@types/node': 18.16.3 + '@types/qs': 6.9.11 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.17.41 + '@types/qs': 6.9.11 + '@types/serve-static': 1.15.5 + + /@types/glob@8.1.0: + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + requiresBuild: true + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 18.16.3 + dev: false + optional: true + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/jsonwebtoken@9.0.5: + resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} + dependencies: + '@types/node': 18.16.3 + dev: false + + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + requiresBuild: true + dev: false + optional: true + + /@types/long@4.0.2: + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + requiresBuild: true + dev: false + optional: true + + /@types/markdown-it@12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + requiresBuild: true + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: false + optional: true + + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + requiresBuild: true + dev: false + optional: true + + /@types/methods@1.1.4: + resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} + dev: true + + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + requiresBuild: true + dev: false + optional: true + + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/node@18.16.3: + resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} + + /@types/nodemailer@6.4.14: + resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/otp-generator@4.0.2: + resolution: {integrity: sha512-9+qqWzuFb332hXPbLgjUyOXlbcaTQkmkmqQjTduvNuOmPV5fW+iLv70JsVEhdUy0DWi4kY34++HDCaWl6N0AYg==} + dev: true + + /@types/pdfkit@0.13.3: + resolution: {integrity: sha512-CN0prCV0n1HssBg34izaTAcWRmq0916SnsmpTsRqIxlbdS6QkDYsZ5/cm6/a5V2MO3501fbZHkv9DLjJCh9W4Q==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/pdfmake@0.2.8: + resolution: {integrity: sha512-9HavCBXKri7lhfwnM4qK012ru2qGYXvV1BVgYuNwa+vX6KFfI2Pfd0YoJ2l8m2UhE2yd8d1KuIBku6+9igDr+Q==} + dependencies: + '@types/node': 18.16.3 + '@types/pdfkit': 0.13.3 + dev: true + + /@types/qs@6.9.11: + resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + /@types/rimraf@3.0.2: + resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} + requiresBuild: true + dependencies: + '@types/glob': 8.1.0 + '@types/node': 18.16.3 + dev: false + optional: true + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 18.16.3 + + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/mime': 3.0.4 + '@types/node': 18.16.3 + + /@types/strip-bom@3.0.0: + resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} + dev: true + + /@types/strip-json-comments@0.0.30: + resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} + dev: true + + /@types/superagent@8.1.1: + resolution: {integrity: sha512-YQyEXA4PgCl7EVOoSAS3o0fyPFU6erv5mMixztQYe1bqbWmmn8c+IrqoxjQeZe4MgwXikgcaZPiI/DsbmOVlzA==} + dependencies: + '@types/cookiejar': 2.1.5 + '@types/methods': 1.1.4 + '@types/node': 18.16.3 + dev: true + + /@types/supertest@2.0.16: + resolution: {integrity: sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==} + dependencies: + '@types/superagent': 8.1.1 + dev: true + + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + dev: false + + /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.1.3): + resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + '@typescript-eslint/visitor-keys': 6.13.1 + debug: 4.3.4 + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.1.3) + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.1.3): + resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.1.3) + '@typescript-eslint/visitor-keys': 6.13.1 + debug: 4.3.4 + eslint: 8.54.0 + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.13.1: + resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 + dev: true + + /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.1.3): + resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.1.3) + '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + debug: 4.3.4 + eslint: 8.54.0 + ts-api-utils: 1.0.3(typescript@5.1.3) + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.13.1: + resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.13.1(typescript@5.1.3): + resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/visitor-keys': 6.13.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.1.3) + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.1.3): + resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.13.1 + '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.1.3) + eslint: 8.54.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.13.1: + resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.13.1 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + dependencies: + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.4.1 + dev: true + + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + dependencies: + '@vitest/utils': 0.34.6 + p-limit: 4.0.0 + pathe: 1.1.2 + dev: true + + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + dependencies: + magic-string: 0.30.5 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + dependencies: + tinyspy: 2.2.0 + dev: true + + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + requiresBuild: true + dependencies: + event-target-shim: 5.0.1 + dev: false + optional: true + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + + /acorn-node@1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + dev: false + + /acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: false + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + requiresBuild: true + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} + engines: {node: '>=0.4.2'} + requiresBuild: true + dev: false + optional: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: false + + /array-from@2.1.1: + resolution: {integrity: sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==} + dev: false + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + /as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + dependencies: + printable-characters: 1.0.42 + dev: true + + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /ast-transform@0.0.0: + resolution: {integrity: sha512-e/JfLiSoakfmL4wmTGPjv0HpTICVmxwXgYOB8x+mzozHL8v+dSfCbrJ8J8hJ0YBP0XcYu1aLZ6b/3TnxNK3P2A==} + dependencies: + escodegen: 1.2.0 + esprima: 1.0.4 + through: 2.3.8 + dev: false + + /ast-types@0.7.8: + resolution: {integrity: sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q==} + engines: {node: '>= 0.6'} + dev: false + + /async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + dev: false + + /async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + requiresBuild: true + dependencies: + retry: 0.13.1 + dev: false + optional: true + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: false + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js@1.3.1: + resolution: {integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==} + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: false + + /bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + dev: false + + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /blake3-wasm@2.1.5: + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + requiresBuild: true + dev: false + optional: true + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /brfs@2.0.2: + resolution: {integrity: sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==} + hasBin: true + dependencies: + quote-stream: 1.0.2 + resolve: 1.22.8 + static-module: 3.0.4 + through2: 2.0.5 + dev: false + + /brotli@1.3.3: + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} + dependencies: + base64-js: 1.5.1 + dev: false + + /browser-resolve@1.11.3: + resolution: {integrity: sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==} + dependencies: + resolve: 1.1.7 + dev: false + + /browserify-optional@1.0.1: + resolution: {integrity: sha512-VrhjbZ+Ba5mDiSYEuPelekQMfTbhcA2DhLk2VQWqdcCROWeFqlTcXZ7yfRkXCIl8E+g4gINJYJiRB7WEtfomAQ==} + dependencies: + ast-transform: 0.0.0 + ast-types: 0.7.8 + browser-resolve: 1.11.3 + dev: false + + /btoa@1.2.1: + resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==} + engines: {node: '>= 0.4.0'} + hasBin: true + dev: false + + /buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + dev: false + + /buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + dev: false + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.2.0 + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: true + + /capnp-ts@0.7.0: + resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} + dependencies: + debug: 4.3.4 + tslib: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /catharsis@0.9.0: + resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} + engines: {node: '>= 10'} + requiresBuild: true + dependencies: + lodash: 4.17.21 + dev: false + optional: true + + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /cli-color@2.0.3: + resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + memoizee: 0.4.15 + timers-ext: 0.1.7 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + optional: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: false + + /cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + dev: false + + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + dev: false + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + dev: true + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + requiresBuild: true + dependencies: + mime-db: 1.52.0 + dev: false + optional: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + dev: false + + /confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: false + + /cookie-parser@1.4.6: + resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} + engines: {node: '>= 0.8.0'} + dependencies: + cookie: 0.4.1 + cookie-signature: 1.0.6 + dev: false + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: false + + /cookie@0.4.1: + resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} + engines: {node: '>= 0.6'} + dev: false + + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + + /cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + dev: true + + /copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.16 + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: false + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: false + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + + /dash-ast@2.0.1: + resolution: {integrity: sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==} + dev: false + + /data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + dev: true + + /date-fns-tz@2.0.0(date-fns@2.30.0): + resolution: {integrity: sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==} + peerDependencies: + date-fns: '>=2.0.0' + dependencies: + date-fns: 2.30.0 + dev: false + + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.23.8 + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} + engines: {node: '>= 0.4'} + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.5 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.1 + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + dev: true + + /dfa@1.2.0: + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} + dev: false + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /difflib@0.2.4: + resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + dependencies: + heap: 0.2.7 + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + engines: {node: '>=12'} + dev: false + + /dreamopt@0.8.0: + resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} + engines: {node: '>=0.4.0'} + dependencies: + wordwrap: 1.0.0 + dev: true + + /drizzle-kit@0.20.6: + resolution: {integrity: sha512-+AYQY+tJUnfMJYIeh6aEjI21mpMCekqz0LEu2QdFdc/3zSmjyfEhH5dkXlRFME8v1rtisiHfp7bP+gVVKDPiUg==} + hasBin: true + dependencies: + '@drizzle-team/studio': 0.0.35 + '@esbuild-kit/esm-loader': 2.6.5 + camelcase: 7.0.1 + chalk: 5.3.0 + commander: 9.5.0 + esbuild: 0.19.11 + esbuild-register: 3.5.0(esbuild@0.19.11) + glob: 8.1.0 + hanji: 0.0.5 + json-diff: 0.9.0 + minimatch: 7.4.6 + semver: 7.5.4 + wrangler: 3.22.4 + zod: 3.21.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /drizzle-orm@0.29.1(mysql2@3.6.5): + resolution: {integrity: sha512-yItc4unfHnk8XkDD3/bdC63vdboTY7e7I03lCF1OJYABXSIfQYU9BFTQJXMMovVeb3T1/OJWwfW/70T1XPnuUA==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=3' + '@libsql/client': '*' + '@neondatabase/serverless': '>=0.1' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/sql.js': '*' + '@vercel/postgres': '*' + better-sqlite3: '>=7' + bun-types: '*' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@libsql/client': + optional: true + '@neondatabase/serverless': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + dependencies: + mysql2: 3.6.5 + dev: false + + /duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + dependencies: + readable-stream: 2.3.8 + dev: false + + /duplexify@4.1.2: + resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} + requiresBuild: true + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.2 + dev: false + optional: true + + /dynamic-dedupe@0.3.0: + resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} + dependencies: + xtend: 4.0.2 + dev: true + + /ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + requiresBuild: true + dev: false + optional: true + + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + requiresBuild: true + dependencies: + once: 1.4.0 + dev: false + optional: true + + /engine.io-parser@5.2.1: + resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} + engines: {node: '>=10.0.0'} + dev: false + + /engine.io@6.5.4: + resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 18.16.3 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.4 + engine.io-parser: 5.2.1 + ws: 8.11.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /ent@2.2.0: + resolution: {integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==} + requiresBuild: true + dev: false + optional: true + + /entities@2.1.0: + resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} + requiresBuild: true + dev: false + optional: true + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.2 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + + /es6-map@0.1.5: + resolution: {integrity: sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-set: 0.1.6 + es6-symbol: 3.1.3 + event-emitter: 0.3.5 + dev: false + + /es6-set@0.1.6: + resolution: {integrity: sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==} + engines: {node: '>=0.12'} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + event-emitter: 0.3.5 + type: 2.7.2 + dev: false + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.7.0 + + /es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + dev: true + + /esbuild-register@3.5.0(esbuild@0.19.11): + resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + peerDependencies: + esbuild: '>=0.12 <1' + dependencies: + debug: 4.3.4 + esbuild: 0.19.11 + transitivePeerDependencies: + - supports-color + dev: true + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + requiresBuild: true + dev: false + optional: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: false + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escodegen@1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: false + + /escodegen@1.2.0: + resolution: {integrity: sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA==} + engines: {node: '>=0.4.0'} + hasBin: true + dependencies: + esprima: 1.0.4 + estraverse: 1.5.1 + esutils: 1.0.0 + optionalDependencies: + source-map: 0.1.43 + dev: false + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: false + + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.0)(eslint@8.54.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.54.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) + object.assign: 4.1.5 + object.entries: 1.1.7 + semver: 6.3.1 + dev: true + + /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.13.1)(@typescript-eslint/parser@6.13.1)(eslint-plugin-import@2.29.0)(eslint@8.54.0): + resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 + '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + dependencies: + '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.1.3) + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + eslint: 8.54.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0)(eslint@8.54.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) + dev: true + + /eslint-config-prettier@9.0.0(eslint@8.54.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + debug: 3.2.7 + eslint: 8.54.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.1.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.54.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.54.0 + eslint-config-prettier: 9.0.0(eslint@8.54.0) + prettier: 3.1.0 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.54.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + + /esprima@1.0.4: + resolution: {integrity: sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@1.5.1: + resolution: {integrity: sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==} + engines: {node: '>=0.4.0'} + dev: false + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /estree-is-function@1.0.0: + resolution: {integrity: sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==} + dev: false + + /estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + dev: true + + /esutils@1.0.0: + resolution: {integrity: sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==} + engines: {node: '>=0.10.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: false + + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + requiresBuild: true + dev: false + optional: true + + /exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + dev: true + + /express-rate-limit@7.1.5(express@4.18.2): + resolution: {integrity: sha512-/iVogxu7ueadrepw1bS0X0kaRC/U0afwiYRSLg68Ts+p4Dc85Q5QKsOnPS/QUjPMHvOJQtBDrZgvkOzf8ejUYw==} + engines: {node: '>= 16'} + peerDependencies: + express: 4 || 5 || ^5.0.0-beta.1 + dependencies: + express: 4.18.2 + dev: false + + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.2 + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: true + + /fast-text-encoding@1.0.6: + resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} + requiresBuild: true + dev: false + optional: true + + /fast-xml-parser@4.3.3: + resolution: {integrity: sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg==} + hasBin: true + requiresBuild: true + dependencies: + strnum: 1.0.5 + dev: false + optional: true + + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: false + + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /firebase-admin@11.11.1: + resolution: {integrity: sha512-UyEbq+3u6jWzCYbUntv/HuJiTixwh36G1R9j0v71mSvGAx/YZEWEW7uSGLYxBYE6ckVRQoKMr40PYUEzrm/4dg==} + engines: {node: '>=14'} + dependencies: + '@fastify/busboy': 1.2.1 + '@firebase/database-compat': 0.3.4 + '@firebase/database-types': 0.10.4 + '@types/node': 18.16.3 + jsonwebtoken: 9.0.2 + jwks-rsa: 3.1.0 + node-forge: 1.3.1 + uuid: 9.0.1 + optionalDependencies: + '@google-cloud/firestore': 6.8.0 + '@google-cloud/storage': 6.12.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /formidable@2.1.2: + resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} + dependencies: + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.11.2 + dev: true + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + requiresBuild: true + dev: false + optional: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + /gaxios@5.1.3: + resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + extend: 3.0.2 + https-proxy-agent: 5.0.1 + is-stream: 2.0.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /gaxios@6.1.1: + resolution: {integrity: sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==} + engines: {node: '>=14'} + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.2 + is-stream: 2.0.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /gcp-metadata@5.3.0: + resolution: {integrity: sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + gaxios: 5.1.3 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /gcp-metadata@6.1.0: + resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} + engines: {node: '>=14'} + dependencies: + gaxios: 6.1.1 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + dependencies: + is-property: 1.0.2 + dev: false + + /get-assigned-identifiers@1.2.0: + resolution: {integrity: sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==} + dev: false + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + requiresBuild: true + dev: false + optional: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + /get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /google-auth-library@8.9.0: + resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + arrify: 2.0.1 + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + fast-text-encoding: 1.0.6 + gaxios: 5.1.3 + gcp-metadata: 5.3.0 + gtoken: 6.1.2 + jws: 4.0.0 + lru-cache: 6.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /google-auth-library@9.4.1: + resolution: {integrity: sha512-Chs7cuzDuav8W/BXOoRgSXw4u0zxYtuqAHETDR5Q6dG1RwNwz7NUKjsDDHAsBV3KkiiJBtJqjbzy1XU1L41w1g==} + engines: {node: '>=14'} + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 6.1.1 + gcp-metadata: 6.1.0 + gtoken: 7.0.1 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /google-gax@3.6.1: + resolution: {integrity: sha512-g/lcUjGcB6DSw2HxgEmCDOrI/CByOwqRvsuUvNalHUK2iPPPlmAIpbMbl62u0YufGMr8zgE3JL7th6dCb1Ry+w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + dependencies: + '@grpc/grpc-js': 1.8.21 + '@grpc/proto-loader': 0.7.10 + '@types/long': 4.0.2 + '@types/rimraf': 3.0.2 + abort-controller: 3.0.0 + duplexify: 4.1.2 + fast-text-encoding: 1.0.6 + google-auth-library: 8.9.0 + is-stream-ended: 0.1.4 + node-fetch: 2.7.0 + object-hash: 3.0.0 + proto3-json-serializer: 1.1.1 + protobufjs: 7.2.4 + protobufjs-cli: 1.1.1(protobufjs@7.2.4) + retry-request: 5.0.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /google-p12-pem@4.0.1: + resolution: {integrity: sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==} + engines: {node: '>=12.0.0'} + hasBin: true + requiresBuild: true + dependencies: + node-forge: 1.3.1 + dev: false + optional: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + requiresBuild: true + dev: false + optional: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /gtoken@6.1.2: + resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + gaxios: 5.1.3 + google-p12-pem: 4.0.1 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /gtoken@7.0.1: + resolution: {integrity: sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==} + engines: {node: '>=14.0.0'} + dependencies: + gaxios: 6.1.1 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /hanji@0.0.5: + resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} + dependencies: + lodash.throttle: 4.1.1 + sisteransi: 1.0.5 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + dev: false + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /heap@0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + dev: true + + /helmet@7.1.0: + resolution: {integrity: sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==} + engines: {node: '>=16.0.0'} + dev: false + + /hexoid@1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + dev: true + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: false + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + requiresBuild: true + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + requiresBuild: true + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /ioredis@5.3.2: + resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} + engines: {node: '>=12.22.0'} + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.4 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + + /is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-stream-ended@0.1.4: + resolution: {integrity: sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==} + requiresBuild: true + dev: false + optional: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /jose@4.15.4: + resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /js2xmlparser@4.0.2: + resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} + requiresBuild: true + dependencies: + xmlcreate: 2.0.4 + dev: false + optional: true + + /jsdoc@4.0.2: + resolution: {integrity: sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==} + engines: {node: '>=12.0.0'} + hasBin: true + requiresBuild: true + dependencies: + '@babel/parser': 7.23.6 + '@jsdoc/salty': 0.2.7 + '@types/markdown-it': 12.2.3 + bluebird: 3.7.2 + catharsis: 0.9.0 + escape-string-regexp: 2.0.0 + js2xmlparser: 4.0.2 + klaw: 3.0.0 + markdown-it: 12.3.2 + markdown-it-anchor: 8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2) + marked: 4.3.0 + mkdirp: 1.0.4 + requizzle: 0.2.4 + strip-json-comments: 3.1.1 + underscore: 1.13.6 + dev: false + optional: true + + /json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + dependencies: + bignumber.js: 9.1.2 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-diff@0.9.0: + resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} + hasBin: true + dependencies: + cli-color: 2.0.3 + difflib: 0.2.4 + dreamopt: 0.8.0 + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + 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.1.1 + ms: 2.1.3 + semver: 7.5.4 + dev: false + + /jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jwa@2.0.0: + resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jwks-rsa@3.1.0: + resolution: {integrity: sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==} + engines: {node: '>=14'} + dependencies: + '@types/express': 4.17.21 + '@types/jsonwebtoken': 9.0.5 + debug: 4.3.4 + jose: 4.15.4 + limiter: 1.1.5 + lru-memoizer: 2.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: false + + /jws@4.0.0: + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} + dependencies: + jwa: 2.0.0 + safe-buffer: 5.2.1 + dev: false + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /klaw@3.0.0: + resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} + requiresBuild: true + dependencies: + graceful-fs: 4.2.11 + dev: false + optional: true + + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + dev: false + + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /limiter@1.1.5: + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} + dev: false + + /linkify-it@3.0.3: + resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} + requiresBuild: true + dependencies: + uc.micro: 1.0.6 + dev: false + optional: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + requiresBuild: true + dev: false + optional: true + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + dev: false + + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + + /lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + dev: false + + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + requiresBuild: true + dev: false + optional: true + + /logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.4.3 + triple-beam: 1.4.1 + dev: false + + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /lru-cache@4.0.2: + resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: false + + /lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + dev: false + + /lru-memoizer@2.2.0: + resolution: {integrity: sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==} + dependencies: + lodash.clonedeep: 4.5.0 + lru-cache: 4.0.2 + dev: false + + /lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} + dependencies: + es5-ext: 0.10.62 + dev: true + + /magic-string@0.25.1: + resolution: {integrity: sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==} + dependencies: + sourcemap-codec: 1.4.8 + dev: false + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /markdown-it-anchor@8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2): + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + requiresBuild: true + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + dependencies: + '@types/markdown-it': 12.2.3 + markdown-it: 12.3.2 + dev: false + optional: true + + /markdown-it@12.3.2: + resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} + hasBin: true + requiresBuild: true + dependencies: + argparse: 2.0.1 + entities: 2.1.0 + linkify-it: 3.0.3 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: false + optional: true + + /marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + requiresBuild: true + dev: false + optional: true + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + + /memoizee@0.4.15: + resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-weak-map: 2.0.3 + event-emitter: 0.3.5 + is-promise: 2.2.2 + lru-queue: 0.1.0 + next-tick: 1.1.0 + timers-ext: 0.1.7 + dev: true + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: false + + /merge-source-map@1.0.4: + resolution: {integrity: sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==} + dependencies: + source-map: 0.5.7 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + /miniflare@3.20231218.1: + resolution: {integrity: sha512-rl/wADgaRLpbl7EMobwbAt6BgVqkOoWsVQJAliIIUCRzC0s0xg7ZVeoV+DuQD4ffN4RySXsPnP97hp7ksc7ylA==} + engines: {node: '>=16.13'} + hasBin: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.11.3 + acorn-walk: 8.3.2 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + stoppable: 1.1.0 + undici: 5.28.2 + workerd: 1.20231218.0 + ws: 8.16.0 + youch: 3.3.3 + zod: 3.21.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + /mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + dev: true + + /mysql2@3.6.5: + resolution: {integrity: sha512-pS/KqIb0xlXmtmqEuTvBXTmLoQ5LmAz5NW/r8UyQ1ldvnprNEj3P9GbmuQQ2J0A4LO+ynotGi6TbscPa8OUb+w==} + engines: {node: '>= 8.0'} + dependencies: + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.6.3 + long: 5.2.3 + lru-cache: 8.0.5 + named-placeholders: 1.1.3 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + dev: false + + /named-placeholders@1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} + engines: {node: '>=12.0.0'} + dependencies: + lru-cache: 7.18.3 + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + + /nestpress@0.1.3: + resolution: {integrity: sha512-ThavuMEAVctopwMAhJU6MnfNShyVxJKyOOBcI5B8Oj8ASxja3/jck3ATFSczgRWZ0Ru6yTPCm7KKbjvEIWG6Dg==} + hasBin: true + dependencies: + commander: 10.0.1 + dev: true + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + /nodemailer@6.9.7: + resolution: {integrity: sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==} + engines: {node: '>=6.0.0'} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + requiresBuild: true + dev: false + optional: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + dependencies: + fn.name: 1.1.0 + dev: false + + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /otp-generator@4.0.1: + resolution: {integrity: sha512-2TJ52vUftA0+J3eque4wwVtpaL4/NdIXDL0gFWFJFVUAZwAN7+9tltMhL7GCNYaHJtuONoier8Hayyj4HLbSag==} + engines: {node: '>=14.10.0'} + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: false + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /pdfmake@0.2.8: + resolution: {integrity: sha512-lI+amfIaUL8CrPhndxFdhIgMj9JB49Sj4DARltKC1gLm/5NsPohZqfB+D+II8HymtPB6eugUFD5oBxmzO57qHA==} + engines: {node: '>=12'} + dependencies: + '@foliojs-fork/linebreak': 1.1.1 + '@foliojs-fork/pdfkit': 0.14.0 + iconv-lite: 0.6.3 + xmldoc: 1.3.0 + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.5.0 + pathe: 1.1.2 + dev: true + + /png-js@1.0.0: + resolution: {integrity: sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==} + dev: false + + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: false + + /proto3-json-serializer@1.1.1: + resolution: {integrity: sha512-AwAuY4g9nxx0u52DnSMkqqgyLHaW/XaPLtaAo3y/ZCfeaQB/g4YDH4kb8Wc/mWzWvu0YjOznVnfn373MVZZrgw==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + protobufjs: 7.2.5 + dev: false + optional: true + + /protobufjs-cli@1.1.1(protobufjs@7.2.4): + resolution: {integrity: sha512-VPWMgIcRNyQwWUv8OLPyGQ/0lQY/QTQAVN5fh+XzfDwsVw1FZ2L3DM/bcBf8WPiRz2tNpaov9lPZfNcmNo6LXA==} + engines: {node: '>=12.0.0'} + hasBin: true + requiresBuild: true + peerDependencies: + protobufjs: ^7.0.0 + dependencies: + chalk: 4.1.2 + escodegen: 1.14.3 + espree: 9.6.1 + estraverse: 5.3.0 + glob: 8.1.0 + jsdoc: 4.0.2 + minimist: 1.2.8 + protobufjs: 7.2.4 + semver: 7.5.4 + tmp: 0.2.1 + uglify-js: 3.17.4 + dev: false + optional: true + + /protobufjs@7.2.4: + resolution: {integrity: sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.16.3 + long: 5.2.3 + dev: false + optional: true + + /protobufjs@7.2.5: + resolution: {integrity: sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.16.3 + long: 5.2.3 + dev: false + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: false + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: false + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: false + + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quote-stream@1.0.2: + resolution: {integrity: sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==} + hasBin: true + dependencies: + buffer-equal: 0.0.1 + minimist: 1.2.8 + through2: 2.0.5 + dev: false + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: false + + /rate-limit-redis@4.2.0(express-rate-limit@7.1.5): + resolution: {integrity: sha512-wV450NQyKC24NmPosJb2131RoczLdfIJdKCReNwtVpm5998U8SgKrAZrIHaN/NfQgqOHaan8Uq++B4sa5REwjA==} + engines: {node: '>= 16'} + peerDependencies: + express-rate-limit: '>= 6' + dependencies: + express-rate-limit: 7.1.5(express@4.18.2) + dev: false + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + dev: false + + /redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + dependencies: + redis-errors: 1.2.0 + dev: false + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: false + optional: true + + /requizzle@0.2.4: + resolution: {integrity: sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==} + requiresBuild: true + dependencies: + lodash: 4.17.21 + dev: false + optional: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + + /resolve@1.1.7: + resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + dev: false + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /retry-request@5.0.2: + resolution: {integrity: sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + debug: 4.3.4 + extend: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + requiresBuild: true + dev: false + optional: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rollup-plugin-inject@3.0.2: + resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. + dependencies: + estree-walker: 0.6.1 + magic-string: 0.25.9 + rollup-pluginutils: 2.8.2 + dev: true + + /rollup-plugin-node-polyfills@0.2.1: + resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} + dependencies: + rollup-plugin-inject: 3.0.2 + dev: true + + /rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + dependencies: + estree-walker: 0.6.1 + dev: true + + /rollup@4.9.5: + resolution: {integrity: sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.5 + '@rollup/rollup-android-arm64': 4.9.5 + '@rollup/rollup-darwin-arm64': 4.9.5 + '@rollup/rollup-darwin-x64': 4.9.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.5 + '@rollup/rollup-linux-arm64-gnu': 4.9.5 + '@rollup/rollup-linux-arm64-musl': 4.9.5 + '@rollup/rollup-linux-riscv64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-musl': 4.9.5 + '@rollup/rollup-win32-arm64-msvc': 4.9.5 + '@rollup/rollup-win32-ia32-msvc': 4.9.5 + '@rollup/rollup-win32-x64-msvc': 4.9.5 + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: false + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: false + + /safe-regex-test@1.0.2: + resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: false + + /scope-analyzer@2.1.2: + resolution: {integrity: sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==} + dependencies: + array-from: 2.1.1 + dash-ast: 2.0.1 + es6-map: 0.1.5 + es6-set: 0.1.6 + es6-symbol: 3.1.3 + estree-is-function: 1.0.0 + get-assigned-identifiers: 1.2.0 + dev: false + + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + dev: false + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: false + + /set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /shallow-copy@0.0.1: + resolution: {integrity: sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==} + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /snappy@7.2.2: + resolution: {integrity: sha512-iADMq1kY0v3vJmGTuKcFWSXt15qYUz7wFkArOrsSg0IFfI3nJqIJvK2/ZbEIndg7erIJLtAVX2nSOqPz7DcwbA==} + engines: {node: '>= 10'} + requiresBuild: true + optionalDependencies: + '@napi-rs/snappy-android-arm-eabi': 7.2.2 + '@napi-rs/snappy-android-arm64': 7.2.2 + '@napi-rs/snappy-darwin-arm64': 7.2.2 + '@napi-rs/snappy-darwin-x64': 7.2.2 + '@napi-rs/snappy-freebsd-x64': 7.2.2 + '@napi-rs/snappy-linux-arm-gnueabihf': 7.2.2 + '@napi-rs/snappy-linux-arm64-gnu': 7.2.2 + '@napi-rs/snappy-linux-arm64-musl': 7.2.2 + '@napi-rs/snappy-linux-x64-gnu': 7.2.2 + '@napi-rs/snappy-linux-x64-musl': 7.2.2 + '@napi-rs/snappy-win32-arm64-msvc': 7.2.2 + '@napi-rs/snappy-win32-ia32-msvc': 7.2.2 + '@napi-rs/snappy-win32-x64-msvc': 7.2.2 + dev: false + optional: true + + /socket.io-adapter@2.5.2: + resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} + dependencies: + ws: 8.11.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + dependencies: + '@socket.io/component-emitter': 3.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /socket.io@4.7.2: + resolution: {integrity: sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.4 + engine.io: 6.5.4 + socket.io-adapter: 2.5.2 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.1.43: + resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} + engines: {node: '>=0.8.0'} + requiresBuild: true + dependencies: + amdefine: 1.0.1 + dev: false + optional: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + /sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + dev: false + + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: false + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 + dev: true + + /standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + dev: false + + /static-eval@2.1.1: + resolution: {integrity: sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==} + dependencies: + escodegen: 2.1.0 + dev: false + + /static-module@3.0.4: + resolution: {integrity: sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==} + dependencies: + acorn-node: 1.8.2 + concat-stream: 1.6.2 + convert-source-map: 1.9.0 + duplexer2: 0.1.4 + escodegen: 1.14.3 + has: 1.0.4 + magic-string: 0.25.1 + merge-source-map: 1.0.4 + object-inspect: 1.13.1 + readable-stream: 2.3.8 + scope-analyzer: 2.1.2 + shallow-copy: 0.0.1 + static-eval: 2.1.1 + through2: 2.0.5 + dev: false + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true + + /stoppable@1.1.0: + resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} + engines: {node: '>=4', npm: '>=6'} + dev: true + + /stream-events@1.0.5: + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} + requiresBuild: true + dependencies: + stubs: 3.0.0 + dev: false + optional: true + + /stream-shift@1.0.2: + resolution: {integrity: sha512-rV4Bovi9xx0BFzOb/X0B2GqoIjvqPCttZdu0Wgtx2Dxkj7ETyWl9gmqJ4EutWRLvtZWm8dxE+InQZX1IryZn/w==} + requiresBuild: true + dev: false + optional: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: false + optional: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: false + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.11.3 + dev: true + + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + requiresBuild: true + dev: false + optional: true + + /stubs@3.0.0: + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + requiresBuild: true + dev: false + optional: true + + /superagent@8.1.2: + resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} + engines: {node: '>=6.4.0 <13 || >=14'} + dependencies: + component-emitter: 1.3.1 + cookiejar: 2.1.4 + debug: 4.3.4 + fast-safe-stringify: 2.1.1 + form-data: 4.0.0 + formidable: 2.1.2 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.11.2 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + dependencies: + copy-anything: 3.0.5 + dev: true + + /supertest@6.3.3: + resolution: {integrity: sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==} + engines: {node: '>=6.4.0'} + dependencies: + methods: 1.1.2 + superagent: 8.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.0 + tslib: 2.6.2 + dev: true + + /teeny-request@8.0.3: + resolution: {integrity: sha512-jJZpA5He2y52yUhA7pyAGZlgQpcB+xLjcN0eUFxr9c8hP/H7uOXbBNVo/O0C/xVfJLJs680jvkFgVJEEvk9+ww==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + stream-events: 1.0.5 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + optional: true + + /text-decoding@1.0.0: + resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==} + dev: false + + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: false + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: false + + /timers-ext@0.1.7: + resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + dependencies: + es5-ext: 0.10.62 + next-tick: 1.1.0 + dev: true + + /tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + dev: false + + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + dev: true + + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: true + + /tmp@0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + requiresBuild: true + dependencies: + rimraf: 3.0.2 + dev: false + optional: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + requiresBuild: true + dev: false + optional: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + dev: false + + /ts-api-utils@1.0.3(typescript@5.1.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.3 + dev: true + + /ts-node-dev@2.0.0(@types/node@18.16.3)(typescript@5.1.3): + resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} + engines: {node: '>=0.8.0'} + hasBin: true + peerDependencies: + node-notifier: '*' + typescript: '*' + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + chokidar: 3.5.3 + dynamic-dedupe: 0.3.0 + minimist: 1.2.8 + mkdirp: 1.0.4 + resolve: 1.22.8 + rimraf: 2.7.1 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + ts-node: 10.9.1(@types/node@18.16.3)(typescript@5.1.3) + tsconfig: 7.0.0 + typescript: 5.1.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + dev: true + + /ts-node@10.9.1(@types/node@18.16.3)(typescript@5.1.3): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.16.3 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.1.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsconfig@7.0.0: + resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} + dependencies: + '@types/strip-bom': 3.0.0 + '@types/strip-json-comments': 0.0.30 + strip-bom: 3.0.0 + strip-json-comments: 2.0.1 + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: false + + /typescript@5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /uc.micro@1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + requiresBuild: true + dev: false + optional: true + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /ulid@2.3.0: + resolution: {integrity: sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==} + hasBin: true + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + requiresBuild: true + dev: false + optional: true + + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: true + + /unicode-properties@1.4.1: + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} + dependencies: + base64-js: 1.5.1 + unicode-trie: 2.0.0 + dev: false + + /unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + dev: false + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /url-polyfill@1.1.12: + resolution: {integrity: sha512-mYFmBHCapZjtcNHW0MDq9967t+z4Dmg5CJ0KqysK3+ZbyoNOWQHksGCTWwDhxGXllkWlOc10Xfko6v4a3ucM6A==} + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: false + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + + /vite-node@0.34.6(@types/node@18.16.3): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.5.0 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.0.11(@types/node@18.16.3) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@5.0.11(@types/node@18.16.3): + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.16.3 + esbuild: 0.19.11 + postcss: 8.4.33 + rollup: 4.9.5 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.11 + '@types/chai-subset': 1.3.5 + '@types/node': 18.16.3 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.11.3 + acorn-walk: 8.3.2 + cac: 6.7.14 + chai: 4.4.1 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.5 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 1.3.0 + tinybench: 2.6.0 + tinypool: 0.7.0 + vite: 5.0.11(@types/node@18.16.3) + vite-node: 0.34.6(@types/node@18.16.3) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false + + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: false + + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: false + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /winston-loki@6.0.8: + resolution: {integrity: sha512-TwPxpMApBiDFBjwCFpOWurTpQOGXk3VVCwziANgmQdPAUXwH9ObYp7AcSJXCpa9zOtEi9w4MX6zPx+xAmQY5Mw==} + dependencies: + async-exit-hook: 2.0.1 + btoa: 1.2.1 + protobufjs: 7.2.5 + url-polyfill: 1.1.12 + winston-transport: 4.6.0 + optionalDependencies: + snappy: 7.2.2 + dev: false + + /winston-transport@4.6.0: + resolution: {integrity: sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==} + engines: {node: '>= 12.0.0'} + dependencies: + logform: 2.6.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + dev: false + + /winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.5 + is-stream: 2.0.1 + logform: 2.6.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.4.3 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.6.0 + dev: false + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /workerd@1.20231218.0: + resolution: {integrity: sha512-AGIsDvqCrcwhoA9kb1hxOhVAe53/xJeaGZxL4FbYI9FvO17DZwrnqGq+6eqItJ6Cfw1ZLmf3BM+QdMWaL2bFWQ==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20231218.0 + '@cloudflare/workerd-darwin-arm64': 1.20231218.0 + '@cloudflare/workerd-linux-64': 1.20231218.0 + '@cloudflare/workerd-linux-arm64': 1.20231218.0 + '@cloudflare/workerd-windows-64': 1.20231218.0 + dev: true + + /wrangler@3.22.4: + resolution: {integrity: sha512-AhqraOHTcIV9rrm0z5tlxFDhx+l+O6g4QnKL08J1wnLg3mdvTWwMm5QmhxN0JQ0YgS2jgRCwg0PR+Fa5cumP8A==} + engines: {node: '>=16.17.0'} + hasBin: true + dependencies: + '@cloudflare/kv-asset-handler': 0.2.0 + '@cspotcode/source-map-support': 0.8.1 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 3.5.3 + esbuild: 0.17.19 + miniflare: 3.20231218.1 + nanoid: 3.3.7 + path-to-regexp: 6.2.1 + resolve.exports: 2.0.2 + selfsigned: 2.4.1 + source-map: 0.6.1 + xxhash-wasm: 1.0.2 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + optional: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xmlcreate@2.0.4: + resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} + requiresBuild: true + dev: false + optional: true + + /xmldoc@1.3.0: + resolution: {integrity: sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==} + dependencies: + sax: 1.3.0 + dev: false + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + /xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + requiresBuild: true + dev: false + optional: true + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: false + optional: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + requiresBuild: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /youch@3.3.3: + resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} + dependencies: + cookie: 0.5.0 + mustache: 4.2.0 + stacktracey: 2.1.8 + dev: true + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} diff --git a/public/fonts/hind/HindSiliguri-Bold.ttf b/public/fonts/hind/HindSiliguri-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..12e95fb856ec458143ecf56a72c932c1e7b6ca10 GIT binary patch literal 284964 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 z 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%0DyWLz21fo16&| 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 literal 0 HcmV?d00001 diff --git a/public/fonts/hind/HindSiliguri-Light.ttf b/public/fonts/hind/HindSiliguri-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4139578bf0482cba7cc244026665e018c575b80e GIT binary patch literal 256576 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 literal 0 HcmV?d00001 diff --git a/public/fonts/hind/HindSiliguri-Medium.ttf b/public/fonts/hind/HindSiliguri-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..48f20d86ce3b699f09bab52f2e2658d1e1f5847c GIT binary patch literal 263696 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

5-Q2QJ|I?li3-qiD%(V32@~wtE_keNA;*|= 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 literal 0 HcmV?d00001 diff --git a/public/fonts/hind/HindSiliguri-Regular.ttf b/public/fonts/hind/HindSiliguri-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2c0e04354c257a9184cd53d7276d946bdf27c0d3 GIT binary patch literal 247356 zcmd442Yg&tnFo5$z0*~vt4mWfquxf+s94ff?~-LpmSkDYj$Gps+i6a05<3k@BMA-( z2?!cqdEv%7?Vh8&&&)Y9ZA2Q+7%X&ACZvJ%Mpr}69zpud zPXxieb#!xO%}m>&?+end2XXzvj{S>=#ykgK6{OwxQ5@QF+0lZx8%ktBx?&t3Y~Oik z*Z%sfTdxwNy+eYKvVYg&kwf@A9nZ&Kf@#;qSMIb;9==-;SdJhKE$&`gyvQ>1^8X6b z)}#2oem6ca<>}vx_g#&j{k!)cz2di@_CA2`KP3ps-@5qVjz#Iee)GB@4L^vV|8@W3 z6^HamsR!`$HMqXuz~cU;Px=2ag>6@CT3nO^}YiEeKic(BY*+EiF&G z1?lqVaQ%k_QFsFDXcM0oB*7>Y%3eVfg;{*%7!(+jW_3)G>}*J<(;0O}n>Af;beDQO zR*&B5v5IYxOW19ZPq9q#`S7_X#Zf%1efcfn^WsBzT8fY_=iotX77y|a3X&wwQR8S(pUPtQ%gz3jQ){qA?Tvkpu90D#FB@`Zl6Cp|4$ z(xpgvfQ~JhnbGJOOidE?dc&;6BpM9@CR7Dg+{3rFvgoAXw)L)zsJ3R*1nsutEY#!*wC2%k2#KyauNuPjtK7 zd6Ls%Ffvp3rpEp~ZTLlofAck6`Az0BwDk}T7#PwjDlXMUjD0;Cw`Rgy;CRuSL&&x6g+0t<2_j4y_XHU+(RXb2uHy|FJZSUB&t)uXc+7w0=AolYn!ERgiNRL1nufPy(M z7>KXBcu>&k*t`g`_YN8u;gA2D4Q0y(@fQ)lDc5KWhZP3{fr?;-JJV|`GMX|=?GBf_ z9@Ij_!F)kwq2YkSiB5;nT^|k^jQW~z&;a6beXp>pv!$V~yqW!SU)R_*m%RTYm1R30 z-~GU2ZvBvLsQ=!kOAGr>{r}Fm$>If+lu8!uc4N_APH+k<4u;n+GHwb^g&E{1%+xg9IUwwKoA*aDCY44F<#Dxj-G*&|$0(huubl&*yTp!BAtWUZ2`n+nAna zvRh~Dvv#LNHl<~3b8Jg@80{(S>cEHt)Hz%@>NFYhTJsE6Th78lmMzVg+mdInIPl^| z;RySaSO*dc$UZ?QG2Miok!WL*utcN+D$ucEMQRyLS*6V9^wj~afF{KL^reBPpC0%U zt9t(VzUQ9@n%-KzUU&gFN`h5R#pBs2;P|Mr8E#)V)Y3h>=c=FZ_x_ssSS2pZke&Eh zU=u)rDv^}y3-K1_`}MDX-Hq=vpbu^p4uJ8M%@gMF;1XfTZlis!C#Hk&ztvmg_0|m0 zA6`K7m*soe=dfuKzX?wvH2auJ9By!H??!g<*iNY!vaxjeE%s;eG%(>3HVi&d0s-QL zm|*j?HG`zi)K_N9c039=f+&rCI(^3P_j^elu_(X0bPh$Dff<~29*^8O z-r7Aj(Y}H8-}Cv;-*fNNPv^h+{+mu5zaEdZVOf6>Zxswe^|LyO1UCZ%yVGjNJX<0kL6rVh+y>0JE=%AH;Kq$Xf5oooLc0y5TkWe5e zlE*%;2D8EFaq$yvQA215a_T=BCL}UIf?Me28>ujzp__O9TW6~W^t#YX&^~S!h)a#=~T>@ z{Byu;wc4zh?vO;Qk>g*va?0{oG92tpx_pjG1F8-Wdb?&1NbhF1JTZkW;L9O2c z1R27DoaO-j(hQ=4McP=Rmt0^;WO|N8X;uRxO2pZKMW>f^ODor@SOixABCpl928+s$ zTRl#nlXjhb>pcf{bjvfJ7-{VvVSRrq_gr-8Yl}y`BY|5Q+k9+q_g5@?fuh>wKeJy$ zos%l>klT`gmt^d&71}8eRG=FGAbRX4ag)kz1_mvrvYXqLo9!xa7x;XBuMwojH{$+MjA!k+^@Y8y#1SX% zlF$zMn5WL;{KPm*i#*0YDfV}FV__le(=R~uPQe4>ojl_(i;|95ns_f4CWj>IAV)|K zEBqamC`9NWBOL=~wCkeZVv8Vfii@L!&h?jq7%(J=TdxTpqrm`0&CNQX$iRMaVt(dW zTX^3Unv<|Y$Ltlf>N`Av#sE49TrN0G>;539q0|lC(~Fu zYRG59z}M4S*{c)C)yL9ryR|7?+w@Fk&GwB)56mAp$f{)h{FOr;-2>fEy=otE|E&4ah1p||U_s5x z%fb`v4D`HJ$d$7I6j)mzA;^WKR~&*uwUG#ndK~Gh_Ibiv)lZm9eE~ph z6b`fh6vI#&hNpFmRh1Sx3+oDSGwu^$2kqu`bE z)#X87O1xHPNuIbEUeSB z@8O+ek&d`ve`cvV%sk2XdfPJf8p?DBMx6yrpKF+>3{9x zZEYdBW@GW6LGmoHvmnD zPxY%lomOOQ0N22ZGw#xZ=q(1FWtV_(fJxYqWQHRsE9#kj@ z(_z(<<6#U1C4=O%hwQ$f=igKQkg_NFrODqM`sHME294U zq_R{qq>l$d2ZajB><1)H1%JvvY6GnE%~y9HZx1z$?z`pK#bYD=4ez^0?j9B&S{Q4Z zNHTBk9or$!zTQ<|*%JBg@0t(G*yJj>b5-IeVSiT0r5313R}z>JU%*(?bR+yX*kh_{ z#14B%6ct7{(-}~A3_B=RwO;(87hb+&Pe)l#;Y;_5P0Qs39ObCOpxJ+9iUK##mt11B(v3G1qMvaWQfIpM5rM3%Q9d4+6P~J z@{vogJbuk>;zM7!^Nz2GThIOO!$%LC#wze8_Eo$oNhp>B*c8S1h`x>xujtgMw?QEy zr}{tpYUCz%B=Vn3SQc1Ne5m)Ay|1f}eG!i}3qH93ECPRp91t$bNNsC$gP0TOhWV^M z{>Tu!FEYjsM}8b(g^?fPX@5|6U`G550zJ)g1MNT(3@9g*Sr#?{hKgc$lBDA5I&L$p zHowpB;bv#-b}0OV-5{sQ>Jw+iuDS1p=WoA!WYfi$+T}^lWg4MNr;iLDwQZZS7 z=dt6rWq-Rj@`AE1v7V#LBj;gVJlX``41o)%4ce3#G+|9xR|tQG#QL$w7skd|?-;9& z{ImE_8^iYuB3fWs{KY^hM7szYU?NeVVuvp% zH`;t2GJ6Ugs)=1^4Y92I8-hh;lVhL$v}+`58+%)&FAtuk#|Gue*?L$oaA}m7jkXS( zO>ruGjD;9cljzwKd6Th=BFjgyl3_Lx`DEm24jd8D^Zap{vTMa+np4-JSYjX=V1hj# zxqXb~Lj*jEMfE_BJ8+*<=zi9o0-oo7RRN?jj24a!oz6Q5RZoZ|L!B0_6HX{!s-I6k z>$Ex*ItoGZxb5)9A%7$ZzPc|cIgEFYRqvXocWV!d&|1g$7%r|UUl;@(FuBmRbC7qZ&}z_8UP1p>jK%lVP9 zosWG|hd)AFY*syX`R9=zEqaDlLhpt@MdO2H){A9GHYa?IXVeyk#T{_scL=Iw)pfvQ5Prd6cG)TyV zdv0_aqxw%ZlhxHuk9}?GYfkstB_Dk>aCPB(rM2r8Q?PC$gf>Km9U=p2g+ZS{tz-32 zVY4t~JcGozUTMf|VuI6=nw(@Yxy&xWYGg(e*|M~Jh)}FvL4*O;jZZo|yR*Ch&c(6E zF1=Fhk)K@rn7A$SKZDITMm`gHQ+(*aV$XI*G2git0_$>lk4uX5oJ zO0)~m9oPd3nJet8>W+fE>`Wix6|Pt>IX3L8xmP^qo2O&nIkvEO0O8&~YtWZxNG>gJ z$+>EFvZZAL(cUUA42{NI_tVphrIX=?I+riko+|0>8I`TYTNd*v%$pJLSku$2g}z2W zizo+!Xad@@fQ%J#unvdhpRPCY-$C)Nwe|le1G_WRKvPelX)So@u6M65iN= zDj2v(04I{P^Y|oiVtv>iVh48qd~#|}uzTwyxbM%Ar%rr}Aw)yZk#4|qoWjN2Mts(u zq~}qbY~^2|QPp@%h0)C*hgB5|Be90W(aL(F-#{DzN$?j=C|{~~Oiw>+b*l1+08`|V z@}~rOgb;o6t|uniHa7%&#s+p)>$H?RVamCqlbKhlS zmr;Z!2pqHm_9US|&P_7uMQ9xj4XOyVsj?dKk1!FEK&3Y>{NNk&AO7&dYd@WTf{nA0 z$XTY3JcWEt8lIVjXNK|2Q~~Z(D!kw5BNd^YVN)?%hZVS7ZZ`>4iESMF#ayViRj)T+ z7MlCz-`FR1Ty!EOIrFDGBGY(kEuIRghuwlLVT6tXekACqsJ9-CT2W+$7#}e!?x8b} zsE<@axqK8V;y!kyQ_Sk_IQI)Yb$Gd-g%B?^3eAI0lwmV~cf}e)tXO>@0>;_04Qdp> z7FWI&ho;YHPLm!SOyZ1%UVr^VA9_|g)^iS#*5w~B-^1=(HyBB&19soW$em-mq!NH4 zE%ys=tOkX12|!^yP)f0D0tM{DI4H{3v7orQ%~2P61Ax5#Y@hhs9$Z?^hS-DRCU}dU zCk+>M$u5W~F0~M?C0;zL1~i^D2wir?z`lC))|vN>?!k?Q$ltz&XXGs3Cpwq^3pgm? z&sZmfOOMdQe-xb&Bm3(`PqJDm4|itrJ6A`E=@w)XLaes?>Ur_xeGv4O%V*hR zARMz$Al$6DQmI)m+%sXA!AKJ%IB78-81MmDj6AMLtVWF_mJK3GCx}QCiDEe% zGsL{tT!HkCSG^4Ti>sz(CldCinSX<-liz6*9mF+b{m8^YS?jOtA&{8_;`*P$(tds;> z8g@MuY%_f(RVPA^B7{P@FT{c!A9092>)n0)oAO9^rr%Sj)T_RCH56*&D z@ubO|umV8xTgZ5e2@QRCbTqtU;nTDRxA4j7 zk{I0B{9gRx;nx^sFkhXvtu=0I==jE#*2%5)ZJXI8qxCzNjvQOq5gvVO)6Q*63tN{W zj}LA>z3=inCm3V~U_Hxz2wt+oG-;BUXQIZdN`^iufgacU+YWF6Gv`2v19&_KJsz%!pKDEvyB^#EWIl$|CXay z-hAv(LH6KAADh}VDkwh0z7*+ZUy>^awix?NWfc`bMA@>;ehSr` z0loMkIn9+U>J3`Bp90lhP<8np?^4rTT z{8`C@L#UL?w9NvgND^l+JXI7qi3khI{@Cp{pO>6#_e#D6*4D~Px?4QKKwiU$@~Uvh zKw3|FzgVTckz?pJ@kKyy7U1eaKvQUj%QK=y6+Jc-jYNGRpA-(=Ju=jkuk%(kr@nSE8k7aNj_|!*X~U>nQ|yJR7;`_`=|XKazfrBQ%*ux z{KM#C)e!w287W!1G~YE^J-U(g9hn@B{6_oh?561*RiUjzD+DBhfV!Sh=tp52D1N4} z%?ggP;S#Itt4cx@dDG7(rY?fY<>b`WxS6PHV2brMG*68HlCx9uTd~!UWq%QkKtdA5 z&Z15v_zxdO15w=Mj>*kLvkyRpXuRgo{`Z{PbL4pBvhkjwO(ProHobkxU3VV3Gc;e0jmws^KiN$S8vzvELbBr`Y6G?&v zVr}}2DXOd|lv&=`$dCl_Tv6c{>9{ z^>>f5k)rK3i_=xt!_H36i6h4CGJt77`u7-s@sY{kf<|<&^-%F}RZ2q}`bx+@RTF+% zSyBK6D6vY27bLmZv6<0rjh(|4Rdub6-SfSpRTUeHDpQN?1#;hw?L+y)MgDw$QKqY- zp>5DLm{XW*%g!>VW_1887gTkxcqLRd^rD@SEi4#F+KJLB1iye;9c)Fc-(cYK4uE+n z@MeRChU&n+)WJvPpPQ{O@s6HuT?9GChbekA;Jg8|n2^s_L_y{fKI6qf4b)H?~E2*J~%nr zP}Md#IyE;v$YvwYhMT4a8NELfB=Hlxf0di7?RJctt2kn;bn(eeJp<;BzD?}x_kLOW z-1n4+h|73L2FYtzs)_q_+?$2GRDicSGn7D?ha6MQty}R;QQg8^i}#IJXZiH{w5F=@ z>cP~u(Aa~ERXu5S?Cd9|PPv@&KR)_skLol|CqEvdBJIaKe=vZm)3INO?=+nfdY>DFgVV_n&Et|gl|EE?J?Tyxo7n@l6- zl7g(AxeX&`^JqA4XI4Rp84Dj-ZWT_8&%)9uQu5MC*jy|}-CX>n6f9w@r$46^Em=dS z`})2tU5PJKfY>}Bwnn&9cI6_*m&0^a$Do6i1ofm;uqcStA*HF~B@JA{b5m>uXM;~D zh+TCNHwsrS0%BKvANLR-Hl?hzq*#gL84$;dT3=+c0;x(JUeqBa)B>q)SIFr_NdW%& z!eBVdX|?7RINF+;+8hOWR%@2Ce#lu~nq+gB%S)X_U1O$Uj?298sM$Qykhes*95HPo zoL96PfONAAqysyC;mcx(jSFc)8~5yMlPn-Fhz0zDJqN)6YXn6eP$ZM8i7HB?Oh`>O z8{t!@u{1q=Y94j)8iQn+K$vpJ`nArgx~{4E8w(nI%}o=Px3J{yiur*JC0nVcwS9R8 zmBM;#YKo8}X95uXqR0$Kd|9+inDl;lC7DiT!oC`>r`G#1_Pu*hA)Jxr@#4;kP55{4`|T6BWXlA0$Ach4A+NyNCnu$W*EFV;gV@NJ;UvEpfrqrS<{n{$EQpQ zFTbQ+QX;U}9V2}4b5Cu0^2zMem)*bZV~=io;PSh(pSu74`gAOpV$y5Lbx3N1N-Sf2fc08-O6++3w7Cn$e$dZaV+Yyb z+jlW?7edQ*?CVHGqzhd_y&OV5PpmD=wp&1c60)cX(-Dxj;kueC)U3O8lnp{nF{BnO zy&!~Co)~t}Hfs8ne^sH!F2@ilT_?GbrLb;rX12Dcw5Mm;D+_;IT72dFzJY<=?Y$d% zy;)6J-jtHSm6Ws?Z|h0%X11hz3Tv~Sk7Xz2m6V3^4cVsLqRfEDZtJTkYnz-an{22L z71tD`CFf@aD|0(415KN!k<6$ncjRQGWE#^@{9TVFH;E6heUbqPO%n>a=*xna2%Jum zvnZgz8ssu+hnq}@BLRn!a9*!!Q2%E8xEuZ{xZrtZ;v4iQx#Rc~TR;xjf1r5ADddBP zhWQIRC^;P)bJHV}q&HH)VMRI_BuHC>PG^{e?MfbpK{txxB?qOc$xS6dl*$3}OO;wW zB^(DSSwP4wp!!u_!_NLtP`hO(Tbiu&`%1&ztSekm@cUOIKY#UAmhsJpy{41)g64`Z3mYT@P7h2?|tW1lf??oII z{yr0heIR)rzqXNk$4kVl`XO*x!K$#UkqWmMI(XV2Gon+Ng(tf{lHwc8o0Eo{%eos;uVe4-`97oLuOSY-hiG@C;?S8iil83onsIZ4led zo|PO}fECLL2wOR&j2bBoh+GzmT_nMD0#u5Y6*DNs0-427kw>aiFD(fsgTX`vNYvn9 zGK{7q2mEAQxE$%J$<`DU-gqE^6#AvQ`Wlj~z91S{Q2A1eXb(!Us3WTQaWrt@;XWuo@u~F=CPBkTYLo0xlJhH7(j3UdV^PMLu8ZQAe|x- zM=Ax|Do1LiWNMR!mvwJxlQ&JsZ6B=ZtElc1$4`uJl-oA%@2jclqso~^yz5V5Bk-L@ zN!Qr2d1Qdm8YIBTGEP7r8)gNA(V!I3W50>{V$0~23Ol8gp4Zq7KK5AmV~<5{rEEjQ0lF(s}DDC zS{QwS-BkU-i-LjDZcle>^T}qs!w1&%;vGJrTCPCVqCv0M(_6roY@cRH#WAMO=Rxq) zU_?JaoM2Xptm_c=iYv1A4s>=@)wC3rgeo&K{MG$sRb@3Dy(NW(_3Z7s&dd!t{ya}0 z>@R4`Z_Dbe4%V6g%!Q?j?5L3ZeD{ty$`m1{w>->#0C&nRTq;}Az+QG3=%kX#T5=N? z!=n;KB|_uX41XoO?2i9JX$|vJ;4d2z2^WhZ7fa=I+sd~v!%->?Wyot3$;9N@W^%+4 z79gF4pi+NzL;L8cf3c(NY4J0WXX`dh4l#E`KfE~rGRj)MnEe}1Wu^#7kz!{_O3>Dl z_m8F!s}&WH6kbJQQ7LUj%?bScyxy%lmbP_%vA6dw_QqUK*V5Zxm+EnIBhv|=Wyiqi z8Bpz958-h{^Q47%zl2TIJD=tK5^PFsm=JDU*0J2>Z-99MoOQBcv@5AWwLe37h?75r z*hY_H3ZghPzp&il{&9D&?O6SQ*kow;2FMh*u$zRZ0hK{OxeoO+FiuzCab{&hXj?E+ zlMZiNc)E4prL`dTrRMfd#G(HNK0YpO04PpE3viBzo45}K3J-(eZVKOXnqLt;aqSkz zcWs;AwRg+hQsm2>jV^6Ndba`hxsdu_eRonH9eY7Yef;5O zU%h+s&O0IX@yFd!sjm~-!Ju~WYY<-+I3*dv%^aCllhGgSh|ToQY=aNYSXM!Qyqn;HvHGpRJF z(Uzf39c?un7J04l1Qu`ItRT6e+R$!TqlGi>5oK!1?#r3e9DYg*~ zxe;t8pDrva(kxWNKEjK?QKo=W@Q#t;0Z)w|h2YmI#ozm>6uhlk%&77CYCIqVA7sjs zbOgJY0+R`nX0UENc&k0ZRnW1L7{_oGGT$HTCTg%LHT2{vHp=x1 zY>>bZ%s?P|t3_jC2z~2AsM!ie#TA6rw+hCyty8V7Q;Yd!1^I4Q{wg4!qVL-Fx(W*L zH8idpLbwgqP8!n7(Sk_?sZ7*~W)h5glabd~lZk*>NlZ1q);*t2Sfp+%tuWl_sq=-6 zA*h7xKj6z_di2>#44a<3zlTs;hWeKBOSIF@KNug;%}rX0pze_uU@< zJ{!dWY{WSOe3f9L3tXm^(?IMx8TI1XJ;u)qS{iiZ&x)C`uml*PCOU|F+8k-^1rdXD=z;Vgxe$70}9IV96OSa2o#8? z6ebWTimC03#f2mHo@ixS z)rf{kJoa!L`tFUx9L31R&p@6eV=GZ<1?wXLu1PtSFThmfg zpjxN^J((q|-8=|stdyW5qR}dnAC1@sn|p0y;%ld0cyjM&kI6fl^KLzI>1SD07ptK5 z7FP8}+3u{(LX&7TgSkW)<=#^Q3WHQ|5THC(mKdk2O{YX~vddzG#~K*-#>x`( z)C&)=&x)yl((tsIx6vAdNGKthghUeiROq@>p;I@8Zp5!|hfbZUJ$XaT^*4lW0O=MZ zLVqJVQAnTogbi{d(m|rv<969d%D}D192WR9N=<4pAG@Mdd7#xkHz&uJ>kHZnZKy>= ze;Rk_5M)r38wf6gj@*n442pZ#2ANB|;or>^*yX*@uch5IOXLYxZ|Xc9%j{@fHejTRQA8Nc$+i z!%vSNcY)*+s!d{eT@7&|!bNH*rm5mzh_~Y#E4Xg@JG~3s9BttE8hJS9eV3cc7u~D* zH^K7w`eJxDy1qh{Yoo7?oKd-T^{Y9rDhr(kQZodMEuzi@jmX!$m((61Hip2XFAk`7 zgr)^!7CswG(D6{LQjNUx0)}KN6cS+3dN0t2Pg0#pr(*kCtTyyvP>|8%i|fN6!L_Ov zBN?cV>&IX})a<(d=9<_^o~3|LmpWd8YO3_SzZ=S!QD!q0u_0?(iZc~+X*4y=3+j0v z7_=|t`&K%^A`4?dUupyOdhNhFiMF5I7iG{woqpPhrBs zMM`m`C0e(dEvr8u(@bSJs*N&kWuvk_;c=&3LA49zuI^`Sw~X;q-*k!UU zijZChO_kg`QK^R}eG~}QY@>px?D8_vZ1STk)yMRfSd1BfvGu;i+zmpV8Iq+2&$H;w z7zCj*TQcSYn&v@W5H%~2Pc*^Cu-xDiPTUEJsjz449TtmuUND;>H`l$F`kemXyj8Bh zAW-?%De$UWhm@Dc>p_`eMQL$Sz*Ft5Ud{L^7qo?|y_j`2^TVr6&2_f*SggURh=$Md z%`FnDgipOIiCL;`1?U=^XF)uF{oO;iv$}DKuU?BlITy&QEGsPv`hBZWmwX|p(?W8Z zd9V)Vnqo|ab&z&PtOcx7d4j5g3xpyJlKkAeLR%%`cNVh=v~NZn&x~pmP2sFVycluv zj&~$RUrp8D0ew88$+P8#bugG37usA0htI8qI9=|1>Nu=jJ}aRe4r!)pp+UG-w$msi zOc`XN7ZqPVB#&q=67jq*i7|w^F^6#p@fK7p>Ub9vqEQ9`JtpeBvtq~vv!0ok;F;(R zN$0tCTDH}rGNT$*I$np@=kt4M_Di7wd1&rW#FWWUfgBabDP3hwx}s32kV8i!e0wyR z1=!8@xvu`LhZeWi%NymU>1+MXN4M|MM?PWR-nTi_xVimMZDP|&} zyCw#U#sC!LP+>AGF~nd|!bBcP+~5-m!SXW8m=J7&#=^}?2sXaI@cYpSEEQZ)_ugyV zoy#YeJEngR!Ahfnoj?YF_wk{)!#79?S{^BmLdl!?F#0to+R#TXcNE?z>LreAl)J$Y zTDPgs0#hhaW8YD-gDxE2oqtz&;Tf#gglK}5azXHVg-!A(*utpcSVD73A|#`jG9i*- zb;hCD@{VX$0>$e=ew|`FBnBQ{o=!#gQ>wRLiUELw8t_P?sf0l+Y@8>JP&|l2tAwDJ zmY@jUo1Yh@5vs2`AC0Vzj;@RUy)mLc(Nca8EBD3aZ-KGyQX8m|k` znm{z3ceU!IcN{UbayMSL0$r9iY#F2DmJY-uJ3cL25Zkxw3NkzS2#Jou6rw6e1w zjzc2mTmFT89}aLPJT%NXMCooi;>?IhCn3(2i_o_;;9_DQgt-o5R(HdiQpSR4Vl6wX zATP_G?a!ddDu%#Dqh9Vn5Q9AfD6(;foko|0$y^iBhB4iSnfl%VmU7drS5Gb+=-Rurucfv*kmYY}DZ3$Z%j}NPUb&U3=au%< zGdyO!tT@MZ1g?z+7qYRKd}N}QLp}v9=2M;escQ2UQi@hWiWaI&&&MNktgdcOR8(Ft z_9BzXI1iD;!vbqBCr|wXpDh;?47yb?B<_WT{fddr(MUUQjikhJT;r|MAt?7!(VNy1fu65SvQ?#n-{t=Yir?j*C1h6Q@C-Yybh_cSMN- z4ez~+GDuvrDG3#dwI={*KoJb9VfvZk5h|UoXE;cKH(imyr_Ah*qahv3L>^=W&{hpa3C^@GK+{% zxP`F}Qr1TG6QE~lH9fCJ6sw3*G$}%&r6)MPs5G6oixW-|_SCO~6i8Ugp!2ZjdPKb@ zu%7@_))FI%*MQj@E14ysQP_`4-Db%DG_YP7garz>cB`S{IrFu@SykWn)KA!``Y~SJ0BkwI+ZU81C_8VGK#4!D zNfOveDJV$-$t60kIn>vXy{WnRx;=vpS(}@iBZu;S6sQ{=RX3#na?-cyZ_LK ze7=$XL*3QPpLrzmt3%^`wUHlYLo@JBRoDbJN z)BqAe$M5t;HJMLfFJZ28)T>aLiLk4ItL#%r~n?Ywf& zN}6h=Hjb+HXqGoVxWGzJ(g~|-;8-4YpscEWn`(gAS0a)3@{pQec;sCL)QWMxlCeP; zauzY<*f{X2v`zW>uH`{AvGYwDt5_ZLOty&eX}0*7KM&c*1xeT3kRbBu@gVN*Dfg6@ z76$`sgU1&XcUR_?t7uwh7dtgQ*#?^Re8`&@&8b zqsVT9xl)Pp8N?Tideml+Q%((AI9^EH0qM%E^fE;DU?0-7sd5RWV-;moM3a-{a%e-~ zsB}yn0!Plc0yz#$QvVT(iMKkf>Pmhd>Kwc^#4NOurt;8C@1z!A-S#41kla+%Gg(*` z`6(7uK9pVAHP)d;R52w^TN)o0Egj(nTPS?PLgL0nN9(r|Rk3m>YHb8Hpad0ADUAk~ zP=fN+k3v(es$CTqDE341;JyN5(Ft7zA|Pm10=iWD66@Bf07ZkP2Sn zIlvPi$YtLqaH7b`6=b=E%6j7vq=Tz@ehi^&22Oy7`(_8t`ZXc?_J=>KK2L z0B8FZ=vJZaJNE%NWl;Ja=`hkVR@AU`$?Z7Jfjj0a*fPN+(nh6&iDoHF0h^x&gj2J+ z-4;70JZ@0>N<9Y|_5@q(wD1ZAs`#PdS1Uka@}Kx`;w$hovoNh||CzYie}1%U=+MM) zf~-tni{>vux`4VU#Y!d#4d5rodY#K~0bR@4oKH%G^{mVTB(o%}s1uZe(io-{#-@3I zbT~u8nSfWdk8evb7x1N*u>1dis#hhv)^WUgg~Rb!ErdCbK%I_EBT8|sht}ftuUmuH zRIdkqiGo@>Ep1)Y^7#fhUdri9gx;559_{U2gWmhY?d@UUS1Io90IlF4JQ=ktD4jPN z;NXL)sKX#iysO5|C#s#N*5bIK^VPi1SSeQzF>hr1ScWovBYTP)>gPeb# zJW-gSS}%JsO#mhe_9UQ_6*VFaio9e2IJCr*CK*rzjDtj|P8on1 z=)e$2ZBV;G5Dnr*B%--^E29GV;vgp3!iK>tIAm&2=mQ&usX0iy3aC0`Et;fs!Z=r& z?O3uhX0(aG?pZt%JAu?2+C!kT=lIakb9=Ca?#9%ccCU;h9k7|g9m-M^TBJ4?-UgCR zNk63iF09)nt`#V@5kpgZaa^nFW3~0-HchESle|0$SrC_mM8ke;qIV}CgBV;d3F$>` zb!@Kpos*D?23(Jg(-m!)h&qoF_=<%y1M@E%bsC%HjbuT@pH+cT0Y;PY6o}M-<2rb& zDu&T;0Z2g?9-h@QPdKQwD5uD4b1GH^pEILS0*VCG!62ju)iW%V6Nyw0BH@7+-J1Wf z_GAmGdBt~-)bX&d!PM}hR^p%684z1ZzLkV}5)72$K2`j@*aZl6sBi=ysXl<3NtJk7 zX!UJt$H%U{Rj$_Vf~P`bWOr*XU3GW#b(BvkEG(=ptgbA#p)`TdmF0C86f5Q-jq}Zw zjrCgD`G(B00S&9`jhkgxtl*X?Bt=xtGU12TuB8wX|LD7-DDFutmSz$%GZY*(Bp*Yl36U#P}h?l$tv49{+6S zVEcNz`y<$o%YQ)7(JZwCZ$>^A0W%TcY%hWO;ZJi*99m~(P%haD=%89s%$8lS0hWJ- z2Z-Xm`~m8$;FZGxwLJLhM+C7%BT#u*!7?;}r& z15=SZhlay&E$CkSwF4{V1vi+8ha4|r2rjSPM%C+DWt^(W>gl!WTR*`=g#mhZWBDk5 zxA+7fv-I|6D5~<|EcTm-UemM`uy{h60h*Fx@EqT_7R9q>Z2;HFss(hPV*IERi7}Hz z66`V^C%A&-m4kPv0)oCD2FGeg<)l!WN{@6Ajo-i~BSUopC_YIeNmmYrz&_zP1`0NN ze9F-|VPs8WkIyMFF{Mu;Xj44H`;oD$Aez6yp@xC zK()O6fS=vN-F@Z!o-5(v(-}VEty+zVQ@RUlSlcKGc-JrhMcjd2i5~I_kE#R7`~V>e z3Q^+=i#>&p4uwXa&K!vpk)N-`fg(>Y%mI51g6t$eSLlBTmpEETT>hWs6yagGQ3Mkm z)fBT^3KrKuMau(JyYVpbmA3~pOg)d&(+N{WsCt0o3cjYT;Lg_tBI`QZ0zkz+r#I0p|&y994IEe42{2iyiwZ|*5FA_Z}Ug_5LpUZA2RNn<9%D+MY%r9{)=wfWue1HAENDBt0X z1KBdpWwwhX%L-x0(xQ2iTs*A78yfl)+EOoB2Xjd_ zmAaHfaRTa6{FGP%yGwyT9)D{1P-#|eht8xvVlP_XaN@JfWN$M1wFnP^#>i~MKH!nQSCuKN4#yAL2ywNAlG z;)oL{ToPgqPtn?^4XDvbj3<7@8jRh_9 z7?MSi7PRi+2cmuafMP=$t?Yr8#h4J&5|T^msQqHK9Zd`Nu8h@+y%1zTowvwHDa4>; zL!-CYFZ9_oF%=`bF8tZ(a!{|<#5~-+XX>8OJilt zo8RBteBH%YT)q2bbK6zh_v#~$nz#3F4xQb2VBhAK4;zJ|?&>6m3eP9EMQ|xqRgJSx`o!LMOi9NSr3mFmG*$ph43P;H~ z(M~$dqTr*3TAaeG1rh$P$R#6r4RVXgz)gtUhy)G3{9BkBbmD~sjcfpC z&eNF}_)Et>Svm6}m#kvgTgpk?dcCGh6(=AY5-0Y1u1WREp-H@07mflAD5FCmIBLm^ z4kB|+_L&+ZDTlqGk2w|tzQYQ3SE%+dr`lX$qdc6=Ly_ngS_z19(nSb|NS8C-no}in za}p6RHB+ujyj-`hL2;dGpCrUGdrh%W3PHpNk?&1K8uOHb=QPaPL>yWrWIB^g`$Rco zB<4`I`1~d*o_K2ZY1FJ{KogU*1;z`}vtoS3A)IEhA;TC;($lKhvO?8a%1ZdbnbKjL z#85?H{?$ikDtS*)M{`g_3N^uuU`nJBY3r)Wit^|H{@4&uZG{*N1gSSXN(OXRNuG}T zwij}k=G|bz3p!9!6iKeo`6|aDSA3|%MGAiP2`h2(Au1ZwwV+?gnnee$tQbOS+>(#s zUcCsHi!b6lhpv# zj9o&MH9|tS+(A1Mw?)w^iuL#-R1@V8;{_izt0i$Rgh@WGu=NFP5cq`WPKZ-(=A2R@ zbjmXAM%?!B3JhKZs>+`@c3D7_3G8B1_=Q(s#Kig6z z9G{CB*K#l!3s9nWdfg5R9B6~Dl+X;-%W=(wsjvJzUF2_8hW08)>wZEZ4fTZGw|^c> z1uncyIUp%dKrM}SL{bJahh!Miq%yL{jXTykEy?Ln&r9M_a+rau&r6DJ*Ni5N4?ZA+{YQN|j0nLi`15QArS=50w;Zr9ej<{-!jr z<59<D zN6~4SHVG_(1Hz>#xDqZ@_aR`X4XOfV0Yf-LM;(%=WOqRB4veZ&!r^hFs z-Se!RG)}TT{&TL%BI(07-`Jw;!Jk+johz~X3b*XsGJGMwMp!` za5R5aJsXa_K`&I+H-i^isYEX3h0rK4dnn1dc6AV)YgVV#fW@!yGdu&Tt?{o)9#mWB zll-;uXr&Gk=nX{0;ufi*HU7oQBDELC9e{U)zgJzVIIO)lx}E7{h^K<8v?WU`asBo7 z6cz(5n^RlNrgCF0e$`)5Ob2b*cPO?)baT_myNrMN8ZVb)UD;uE@vGjiZLwlZ#_sa9 z%Il*W4MUMFzYtkw_lu7qk+&qnFFG`z(i#%OKPa1alPku!=0tINyVc-J-dxzngQ; zb43^8cSPPqOy`2Ujz}W{Q*Z}URCh2aU_fM?zma$?asJ@n)j9tuKtG?G5g8$fZGf1Z z461;jOb(N%Rh9?INJ~U>D(K-L)ftU`A>hRQj87Aa&WxR5&;QR$;;rXCCeHNYxh_0c z@h99AX^t_cHD3bu5soP`@>+)k$FIJ7gZeZ8i8H7p&%6XWFBea;%O%P|diYTgE*exw z321?F-{C0ML|JV*Y(X91s*N~4Ngd+}o`7a1JOR-xJOWzbC`u-xPvBhpmg-`hBmwb% zIOz!ODB^oK_{l;A2j7PbI@tIWa2$8c5#UG`lD#$*$S7-xYm{P_YgJ`Z-b(ct6CMyB zWC-jcCK-DI($UCM+5%b6^U0>X5mjAOz>TgV15KUrclZv!W>MFB7Ih=@cG;42o5 zR+z-XWWdZc=X1N|UtvczZF2;ak{~A3h_|xq#J}M!9sDifk!K9;P4nN{DEyaQXj6ym?IZ4bBmynJw?O1{}6LrNGqP_N_-~+9m1g%n$N!%H8 zac7ee7iwrEiY0UPZOuZ(5lJwm(WU|NsD&wL6;QrKB}QNX!*=Ay7}_NmbLfUp@Q0v5 zy3v?js>BSa>%9&M5FBab5o_m1UmP1Q^DT%u>`Reu{QmXKKzAU_GG#pdR*>7jizfjn zl{*Q7gS5I0rx@|Geke))??XfQUZgA8xA>Jt!7V$;TX*o|)#++l2+p&@NDdsfgTs!# zH9Y(#-FNN;?qEXx@}I?Y@n)E_lV@yJ28RzPM`l5pp=1SSnxNmOqF=)M)#*DK4B9Lk zfYCnfTe&X!EyDQd`=@L$ool5U-n2(fey+3ffpVlfCE{3Kj&E|$^?SND4yW6)-QC@N z9kVUX1*n@cEKTgVe_}B5*?FnUFw?`f%pC5oYZk=FFU2PXx3nFWo?B?)L{wt{(<0Kz z^w$C+jKl(Dc@x{jvu`(KB>HFAxi8B*Go9 zrOgm<$daEQvSg=+(_B-$CtMq#J|mutG}h^zHB;T4Qu&Oc;tg8Cy`0qADV~3XCWV`Wh3kDD8qj-67@QEDkTOo*$y!L%7Fc^*8 zD#ZRpq2ZGSxR<|g&Gpf%V3g1?hxqL^8F5^R20DkF171@vML(>s4JaRmCc8Q(x7;-O zyRxD3@}aWd#r??sw`~i~gPWL;3#+OMv7X2a>IYdvRn>)oDwtcpMd)Fkn~2qWV{xn2i?gRX+l}{J_=cw^~Q@ipCmD}*)oR{hHMs|SSTy?`_azr zuzJ&zjl3tm*5~5~GloMd_LbpvIHA?2jEkm%eOO#{pq$euWep!_>WRF4n{mjvd)vfZ zaf!dk(v!NedvMa8G2l6uFFkNc`fZaBUsqe-RK53#JzHwqYm0Nsd}Zy^dq*0ps@N@^ zoywwgcZlB;+JqhQLXuvDpi2cYrlwpgB&DRKB&A_>qI4rRG}&xP-Us_$NHq)la7h|V zNxPW5a>t+%Bl(#)M}~t<9BSRr5DrzBmj(kE8k+}Wff^-j7zB|^j<33a8h486z_}xaaLX1C##*Np-V0q&hZ~x7Y%GsS!QWPC~v&;+{^6u!IEUsC}ERPq>23DwIFU{VAAS1aS>c(63iBp8Jny(%q0O0I6=>7w9I3N zt(Kv>TAb=c@(m^9C>p07*875WA$}q@XRnw|H5lF0bBzo%zR_yRIX~ifzw0l4b+T`; zy0oa$(w{szFf@1Z{HqfY8{4dF%b3e53zT|Y+Y7qd4da$OI$3X9bzOB)W=URA=a$93 z&HMBp5ZgN)d0iQf*0jvNhFly8PGl@TfmId>?ZS3>zBZJVX)_p-K+OTaA&YNoEUJSMeLcvMDLXIhtdNC7Vo1^FmURHEF0_Zfk97pp#yGHXNN=1pZ9L zvK9Vx*K?}oiw>jPWM!EOjT4DWi4oxRv~TY1+idLGFqoM+;!N+}VBfu|q`JJMudk%M zu*BS-JRw^31DSVMc2?Fj`ycZ5^cycew}D;MF)`ECUU&TH!NV6VY}_h0^-dZ)^)n;2 za^=Q+FYC$7>f~7IZYs!D7$IGJ5NK(pR^p~WpdNfHvMAC(?vBN$ti zMvg%Y|3dwd1vNIng~7nbxmwLQ@0QN>Dl74U0_=r;hc|^2KZ#cad!qcU)J)LXpb0l0 zg&z)7Ce(*r;+C7PJayVIq}#K7YF=z_YwnBuLe%T~Gd~ow?A?)PHsrLG1>G#?(z`!* zS5cY2;_}-L&8B7)^|js88MokjI$W6*a8Mv`xsQ_7VV4g1N5 zxDalD1Qc(e0&jeejQ$L^Tv~u3ENz5YRZ{GC1igAXpp-0#AOZu4R2O~9Pj)8y&(n() z4_)oZV4kv?in2=Eplt@St!ZE~&^j>K8qf`h%0HOl$URa=#!OXZLv2~8wlUN*y)Zb{ zle%ZPeyl3!FCVC}WkTe>F1#BbCqH^eFkKf^eMP|`N7^c6g@;P?vNSj6Nr7$-lZ@*#j z?vY^nP2~eybwg5Rx#vW7j@1`vny;zOb{0A|PO%5(Z+#?^VJ;7D9dqZ{b85ncc6Mz| z`BG7?#v9U@(8UVmWZIm*rpgMh&VntYIn<4b)?}U$gd}Eyj7qRH%K{Wr zhK0JP00G8P>);mXgcYP9e0?GJX8hk?j^h#&Y(^4o24FV|N#}u_O6F{^E$VBk{C+Fn zog&h!_Bxl_ty4}APq;@3wuqNJIGyC5fl`CPz@7awyV<~@d6!|hDE-Frff@avR8{6V zQE$h_EnwqZ0if-M?Wd(A>9!lMU7D1VdUDK3`DYKlmqq@_cQVIq*R-^pQY^j++8 z7wt?oo3X3yf*l-qGsaaMeY%_(v67CnabKkwiU@5hQ$R#9p~3UYlN zQ?uQTn^X1VpEqLFKae&-#oR1g+GW(pg(Oj1d@a(fX#de&yLwgUM?%edx1A3e$&gdv zYX~c|qK?&r=VKW9 zwGwH3d*qi(n+J!cc7OB>qGjoZ)Pl-b^wm~#{M8ia6nOJGrsleUKPK&*dM?9k%iyVGzaRj>B;AIq8ywP zf+D7|N)ppnUm?zpCL09ihRemQ2BY}m!a#~4dFjB!P~;yUy(4myWQ{z1>AjJUU2+3+ zO)ap#gME{c!9PsilhxDN+0EXAGx?@+uEJK6jeH|iOfl6c`MhQvZA)$^024volHo@D zQ)eO7FEE;;Xx>qCC?|rK=L#fmsg+vaz5V4 zhC*h#6Luoqh{^J+Ut!i>0YgH)1xiZ0gGz=2g%ps-HSQaz&%_w5w27 zaOvHOi^YC2+}k5}>yk(27~8QaSeje6yS`?0@9e>{;Y%)I4-IbZZra%0x5?D5nxSxbFUveM0xPHE|6%Su;M+RSbMf;X>`7vS;KU}u0g@mH zZh{0!kRZS%Zi+*awJh0^JS5rjl4rdg+wn@A;bt_WafalP(bQ>Hle$gUZE};eiPNM_ zQzy;M{r4uf6?C8XI{*n%)UccM_xCTcCGwo_eDnR@@x0GFI3j;sfm#VOBI_SV(FBC{}by8dj|4VYP4h9_mrF7!-#XQjbfEHT8IO` zu+2v=e3^J7xc1C-YNtAl6-M!Zj<#qdTo2XJUsX}!u$YZ{T+|u{Jshe0{K$H2HoHS| z5pAO;gKIn*0he&z2Lg?Z)a;m@9bazn_Bylo-FVjr#Ef|2s@Y}MH{O-Gy8ea_m!?>% zCo#7)V)n!{M@!hNqm{wLu=2ClJoM7zmI{~sR5L zZm^imrIu0()+;5Al1l*G>?EHcaKVqv?`)Hm{X_fF!GVcmVt4lRee<(#_N}&bpJ3YF zTjpj)*@qK}(Z-6Y>`(7X)iu~_v%gy6{rsUggMQY+!iR*4)RyWI5{2+oLd8`=N-0T# zVk_W+Iz$0{`3m-lS)Q)1tBcl0%h9V)GbB_gta*Qwt^(edoc$67wMnj%5p)z#a}+># zI9RU3HY@wp@$5eZ%(J&ownybVQLcDZJechrMMlew3p3&Aech?X$Ftw?w3K^$E8o#4 zx&~URYYYZc`*M5q9}|gs6dEYArTUvQVVAthm0>*{ZfB{w=wyA)Ikf{LiwHNq+~_f? zp#)$FhHn@FbVg>j$Oq>4mr+ZXMjE z{!mV0(=8eZ1fkp0UXy%@g;rc%lJkoO(#mF)v9#U3@{D_Vb!fxR!_Ri5CX#|5iA{e$@iOyi}ksQ(N$MWY@M+=w-?M3RiE>-(p=n)>znzNYS}u3Il^U%g)E4>k-n1pRfx z-M`m0!cUJ_dv)(nJ26T%TAP zU|r#?*!KE_3Wy#eT!avwqz6d%<3)CpnB0E%Y}zr5Lx%>T3s(sH&bo?0Je1RgD`A*I zbw{cgJV26#PS=M-4C^EmN$|oaAeT5X7LEwu1cU&>lN?ZjAROqo`P4!yyuf|3p}2~J zN5_(>mUvgR++7*ivG>4^y^*n_VlQ0zAMaW1ZfR>*Ce*v9Gy9Y8nC2V4TKqI7ky0eE z+(0|YM7a!xrA#4X1pzo2(0L zNZk9VGOgUddts%f-e0X7E*c*hU7S1DA%2y$BaRyW;yaq_{T(+vbKO#GI8x&c1wx61 z>s}(WqZVezlbC8Zj%KL~#b$C-4Il<)nW5LHUMv%Drx4+N+*qO$CtoFt&MC)?H*7qp z0!X>wLEH}e@o!6;f7VjZjibodwSOCtzTZFtUC|2mdfYX-C z(##J~V0&}5}RFok2moyAor6E5Be_JmUTRAyOh&mIfkQ;qQEZSQ8kpGaiC*>JfYyma_(VtlAZ+?yRacFM(!zyer`eFAt>$|o6lP#jfUlH>KxBjA(aj(77>|A zA!d$^Wk1!l)VH{2y0Xk%-PqpI*csMWtG@Wf?0MSZADs5Y6chcad1b%6xxS&%rE zWo1+;G(%i~|nAJ0}=?#>{l+lx9_VnN9^aM;Lk(QFrg zx@*LsGF)}d%vkotGoP7|b)Fmk(#M!`?D(^Q!;^<4xg(qY=-fTGcO(*zP27Dy`|vH2 ziYvO&IXz%1zPP&>h0ftJl;Kvx7AKi3TS33bn_`y`7P+k`sk1V2?YNJ@r^EGEG5Uqu zPtab=sjla~Eh(%x$42oPe5D%b)kHiVEH5+3)%XT(0g|IK+)OguOgPv$Zv{6fB#-2^ zPy=H^Pz!9ioTqJzM3roTb^M@ovBvBa1r^hGA3yzW*{FE!p1Gyg{^41+GysQKX-#u; zC^KVDpPLpx4h7);mmjKhdF(enxH_(IrThBQ>bTtR^ZTQXOrLjM9K#sO!98~5r3y!p zQBDRC`Mv}2mnvi;MuG^Z;ut23t)i?vW)R9ZZmo5DC|K~IOd-HAyZw`}g@EL=)1}NU z2%2LP-t(30UnWPC zhiO^%%?bEd(ZWUTD2Atiumz!vL9f#S+kqN65Cw2) zAdwUa&^g-`+tOrJs8D^HHlG_lBS?Q~L$W69x$KYF_aKdE8;Yy!McQm{o_kH&dx8u} zxBrscb5SkLiqDED+D@@~bOUxgc@n^g0W(z+fTY)IR-m_= zHR;+=O*OH3`H*d2tlMy%*>X0EM1N>g@{LN0xP$Lb?iTfm$20!W%-GIQq^H^E@du~& zEo54gT5V5#XW6+w5&z>DYYz0>VzM6ZXm0CN4XAg|j_!@r*S9u2k;hnwe+-$~AbcvW zt@fdCI0{E;up4=iKtZF@+y{q0?k0eArJn1Q092@!wQ8}@DFqht^+#dZN{@0iMtTs@ z=uL0MYXyxu-}d?ogjGP(Quv;+0^gIlp}r3Drp{*^$*0u>X@c^eC28R&SY`eQ1xCr>}22;ZN-sa*~77eOc(^B>g z_I=vlpLRZr4gSSlA7r2E{}$iiCh>4b;@r2s-j6UC|L#1#TMldCwwJ1`MgxpMNn(WH zv<7JUdfb0FS)>AEYsm@WLk<#+3Xyna&H+kZ6g;e!L%dx6X;@B`6&^Qu&I9D1r%5Nv z30E|!W=2_lrpa&0g@?_n!c>z0X=VR3=J7gfJb@0s+vhGRt8UimR?~6u@Ui!`mt@}< zm^GOHE*SANHG7N$+Nxp0%-)_v;%hbkW6Lx3^!d%yh&uRc=KAsR;bIy z@N#$-(jzX5XSpbJ<>wcLst7Fm+4Jf1zVm0{v&lnKak&WyZE{XHfsI={@TzfyCsILh zTw7Y3zgOw7LsneP1qR*W7~4GtZnreNC-eK9=5P@K}N(lkg)Y51N7>e6PfH);M-YKUg4$F=L ziHEcsgPvxA#I=0ShPIHm^eNLGsyMeNNrA#QqAfXFU1_sL=tIYj{pk4P_uf96;9nAZ z6YkgR`fG;8&?dgc!tUU>Si^W7-feK^*t=v23Nw)Z}F+zA}!Kb&_6M+mkA zqNfgy!wi=gbOmD}3B`cmKa-6!!C^BM!OyN`S_S;<1Rz#z6yj6BuSt82 z>zQ`PbAgbe#_I|BSarP1FcRy?O!TGhZhEo1-dt5t=BdwwI!6-G_P&`;%*`jxTZJ~P zvr~xhzEneFHbIpFFhPc>63KBWZoD(3-~xP&+7BF+$x+PfJ`+hvYK=K;B!L6jPwYsv z)Hc^tH`V&)MoViD*ciA@kC+-N?Z2-oHw37kL)YN`#%FUr?FOL z!}ae_vFxw+5AOP8|Gtg`cKAxN|0jDNf6jpCkV4Z~E3*YjO~9l0q$=>8zEM2?gaooUBd$}=YqcE z7se@+X`N*RcmCZ@3w38}CkRjzf9jo2KJnJWdXJWZ?Fi;WLZ373n_K*-=vxQ&Ck|Jvob z`#I8#j6Qx-N1F3C0Nj?j*YK0v@A7$ncrV|OBy(}+=G){|ShmUry0SLkjAE=L;Bo~@ z_LT%mN&=<)-zBW1#A+!iu~>iUGFx3PtC>BIM@jop118K4QkvL09I{UA&)F7s@(Ol(5XXi#{h6Ao(sX72YRHoPG3>BeJ|$ zc*pPb{Q0&>1izO{gcVOYNrX|Mva)JbsH!rJ3KbRZRe>1Z^Kth_f9EHG&ZN}AE9@4* zJ0AX>cdJsUa#vPK5_S9TZJH~RWbgQI>l7S01;T9WycKjT{wUO({~n2!pD^m%#d`!9 zw-6tC-+SNl{JY=v+_Ud|;_=5Ge(-_cdmExI@c$E0cQNgPl=lBlp(oyVlcLwTiUfrE zDk%Zs2uy_k4(T`OsOYmIpTRa1vsELlL+pj}H+McMl%4-`7&v*W5nkwf$s>9LASNQ9 zCP>i9sr3PGV(+5J_L@CGDo@*{C=k)A+hPn;|FsIIcq*^ zZ7yd`LNSw%2#TF|J&IC+g4#bE_je?d9sXV8V=KChzPY}+QTjnkXrLif-#XPYv@$bN zkRYGY9z$$R8J>s*3SBCK1 zK;4(ded{XS1utwo#xWaGe41NbvP*3y>vroa-g)8VlPh6Gl%lL*VIbbOInIhS86-`> z(7sf>HQW%)hg?aSzS59u-u~Y$(M119-!J(81CKPil1@Lz;FyMWG`ho_Q%OanLb%~b{-Ohc5XJsH=OG)T)Fp}R+WiAT71+dT(LT9QqL8VYl;4(A} zCjo#4#Kn);Oj)gh&QLJQZPt8DTj(uIW z-iD4ozkj`qrrTor#@dxU!|QwY=P2S{omz_g6WSf!5NHGjzo{ApJ*DmZ}PW zAB5`t*;j;TkOH+g=tMXGV zJ$PXT%oXIwEWBK9wFHnNQ^Gw<9J|RUJ;1RrJil{e)^n)23fZ%B>0(U?nJ3y7UE^4j zrK_p4N!BX58yehS?M$+eBWkt>%vGf>f4HgIU0&SbZFDwyjYvziRFqUwF^~JR2I229 z1=DPmJD;?P#;~W#fZ{>et~3v^E%Sggdp&lNLU{}uNu|c5U^K@=$>e- zGMKA^j=C0BQCw3|W`crJ=J8dOSao%3lfFn@q%bo3<+qK9l#QLDLaYX0vWV+M2rNS_ z!i|E{0vxSKN|6Xxyv4$GA|E%`?N-sFwA!0nTiD&-IDPsXr{Dj;%*+EbJMZ|jJMQ>1 zre1nvaq$sItxlnoyntl#*RSZyeSw;!=r1m*PR80&p`J;N$j6kMi07#R-o8Npl~Aca&epzbXJt8ktx;$g-kIaL6mq<6~JQd7+Fu`xd6!{ zE>v_MNIdwEBW=HG-@NfIi5YUo*=?bf(2Xl)9p|sFMlcOE6SoZb)&PQ%o+j(n$$Nr-; z)7NIdy5{#a+WMj$J;!@eBmIfNN%n8CRK?(-%*w)e_hePap47s8W~jwvar+&$jV)P! zTXSP~nY$|-1wbA2_`ept;=|CEg2?aHdp$)maoD9*$YdBB8PgU%1VKiT3XbZr5}!l~ zUPbx}Jf~O(9)#lb(SmGzAzoxQn}gCB5JW#-d)xu z+cB6Ni>p8K??OC@^J6R`{g+NwZw4uly}h7dQspdjW_G@XP< zEyLjH=7ucFKe+L0EQ-@nUg~f=k>v$ME#(gskb6X-&E&S74At()OHW(v{W*esj73H$MjVEe4ihA{su(?{co}pwfi!0k@li5wB-@-& z3jtqcxdjA$DqF2tQl&_2D>jL3Z|?5JE#3yjmoT5S0`fq*Cf|YwmT;pySo-+V(;Q;Du-Lh zW3y}o%CRBN2ZR4U685u1x?MBvJEpm?kgf#$V&$rJPgrpZgJn~L;WvJZt23+eLm2SGB&7E?JVi-4P2 zFSec-8fb22k-+f28>|F|-}T6~$+h`;Psm*C5+9l#Y#;cWP{WOx!+@9UnmqXY^zh#d zwA9s-~^S#3*0ivw7=G(kFXFu_z<=53SxeHstkI24yKlI-VS_AGx+w z439i|-~OJ#nq7hVaHy!rVd=2*%9*2*BmqOhu-m z@t$Cs-R!-ojdd*~)6=g5#*FzvrWX6Qh=?pHTeK^%Ylu$*dMMv8q-cr4IAD|)P&E0t zzC?2txqfZ+`s-KMu4nTjUEL!i-CZocaO~K^;;~~DCsV1DqiCW`_&xS@_BmLAB^(!@ zBcuX|Qz4_!@I`2;oOX)|?-+BmR5_oVL`l^e1+6z0ioglb)gC%FvM<#d?%LtI2N5=> z(_(e8&)s%*rpsNIJP>~e1;I*6Fu?Hnd)Xhe_hP`PO=$qH0ckA|4u#+cZwc7$5~$}Y@hA-R#a5F8yoAwqhBcXMLRuxDdm8|=d14V!s7kud6(dn)j}eg;zl$s zG4+9;476|#aE&>`;h)G&cGtGQR#s@B%r!#|Pj8sUFkty)`k<1&Kb^d|ce3*+m~xQ!2OhU5#j4N65y zo$v$X%6^ocWgmUBpTF@7G0U1R_lB4~*C~GG7xadX{hjcd_%hxIjD9i%p`)YL@5Xn$ zq_ZMXCpYMYGtw7{EAE=zCwti6{Q$qyE@~PYufDoX=ki^nDlqi_c=yz5Y4`N5Q`9qt`%qwS zfK*c_c;i*jQrr?I8#FmGnU8c8)KWwf7$0YWrm!_#Y@mE$Z+w3E%$ecOvrlKo*rx|S z_A#^upCJ1&TC)(!pGcjtt}=9w*x9Mryn@&E%C`$;Blk}+6_fIN0c@qlb04sI@sS_X zN9Z%3|NPmrX9r)wcLraBuzxV zzG^=1pa1W3o@S4ynbj8lCrv-v^gn!{{`_y`?-k#Vj~XCbssI6sz|HVksp1%vU;$a6 z;(i@d85qvE<^U`Ti4D;`s^__HS|$2~f{akeDP=ai%`1#bn&wQ63to#yF8c-~iidwq z34KVZ3@Is%!QR;sYmER>Q4<6n4v-29G)5{Z?`08qW^)J$$*B_XNYl-4&D@WG6I++V z`KOp|lsNVW!3Z-xHUGpD^U}-bKY(5M3GwS#X1cr~ zLq=&*QQL+KcQ5A5mSkTV#uH3v!R`x)Pa=omZsJB(A~+{kR-@neosPJXeOTujWC8+? zh%7ObT_W~&oyh2X@pLsTw@$~s9oVb{4MSK(u2AmZ_MMFp{?aF}%G6dra=`Jm zzmduQ=1(0528Qd3ou{sDuP81nZNK`sW2_{TY%i&B+S^kTr5ITpGxR1zMv0J!$3ZCr zCNJFYh-Y36`2m>$E{lU;^`~sTU6?@lH~@Tv2}e0DR2L1W1E*8~QihcBm=_BOv?+C% zaHl}y*{P#S<%czYcGXvRKVmrdo08jiu|IsF$+%}tb@Tc2=M%>g2L=WL{fQlDU+Bfh zo#LZ_s;$I%9u2Npx@0lUaGBtyg*Sl8UXsYMl2y-8z!v>-^9(FHkDGohfWee6IHDLJ zI(6u@f{VH2;9LdqD2m8ZWm*W+m`%n1kKFu-Rr#&hBK{e_7XR$KE&U3!hlj&6;bi!o zhdYMbXWEk;ztMl>=zCu0dXgZPqql0IQn+5~lpjDy4K@!`?ghsiGPGq1aWD3e!1G+N zLu4}WBNK0>ns%02*t^{e(o>wmVSc`EPam5)va<8)Js3^s{C}{o zi66#jg2HlK8+5}<1#baGmPy39@Ce1ZDI_NsfC(m%NLzx^IjgXCFy#=hTYm^?sD!~L z%RrFB`=zP2dLtg5fMtQY%RP8fS#I*O@caOHSX#*vhe=MVYV6JaL2uQ-|BMVytyUC; z%KdJqeem(&Yj-zyc0}0!e7XE+vZ3?b=c?A0%%V1_ll{fgwRycC3myH}{7YWe!Fkr{$tFA$FbTcKx_ zY>Z;(as*5fJD{x(Yn^_7!DA5CAUrVHY>1%dAj_7B!_gXxMNp0m7P|`nMr4)W=r%7K z>M9*;_Y~Q?$4k1ja&2W>cS}(D*{->No?)YG?uD!CyI;tD{ z2V2N~@A*?NJn+!_j=wki-RT`i_wT)K=VWrn7oYq5=ic?&WHMRwz&lF*T zgTT-J4@__|I6M~4She`LIU*6Zbz(99cPZ%ZFM^9?Bfuaqkb3 zDKR$RKAd0`_q_l1#kCvSRzA|u`h)D*<7>lX{XG-tGuf`A=(7SUS0L`y!V3+H0>6OW zElP@}RZQc!s_=-yEQfO_617AuHl}h1Wy;DQ9Q|JQ$N;-7akHymTs!x^ex`iwHMTMY z^WZz@heb7-E)tM}qJYwpB;ms_3m7F##{gR!;=_V5d zM;d`@{AU@zVq}7lUxQ4LUuK8dE36R=UFW}y-~ai>#Y*{`*l7G>#nTa7thyxolO(@b zdzf7~!ybaxm2bW~D{J<5bbd4$T#Ltv}oGRk3;?`?tR+W_@?| zVcujylW; z+qC56%(*swTzEAg;-a7%S~_3seRVs#Cl^*HI~VJg4o)tuO?1y^Khf5hOgcR6`*1DdW?YyeO@7~+k)LI|vz|@~VzsNepFF`|wn}PBI zXdhr+WSq-O!unXmv==G`%||YB%==-Yp5~H^zdV*Kwb`7Nq4A+|tHV(lQl@6XK33Nt zR;OlF!9$UInn2t}Dx-4c&8&t#SQ9-v+DdDCD?p;PmaNG@87&w+` z11(WKRXWm0zcCeK^Olt$@wd3rRB6q6KT#+HQ4V?z20t5z^d=iqX(1IegpBE}9G#~!|2LU(OG zh7NuV6$(IG{KV&sV8cQ7G@VF(Dt|mVHL~ma-Pw@=wAzkVfB6<#wJD;=gIz!4&twne zT7CWcT_aPIDXCQ|oFYH~X|Nq&oE7Oo#HPSbpnHZ+KTDfk)JY4!%`l6)zPgLu~$J zv1wH>6`OF|g^pZ%=<0n}t*tCA%uY{EWYQzaf&QNE_O@tCQ)7KCEIin}KC9We6-~;0 zX`7JqJf!}Xaq~H!93c4kljL9BfX-LsG4ZIeR0xVE;Q1vX@emaM%F*u(wDVRZG*~z& zo_u{dRQ&G*_=%$nmooc;_zlcG63algEYm{?5mUH(ISR6N6#6#q3z%alO<`cmsC34Bg>GI|Axw#3f%}{^lH{%~=pNof6vz`&(VnbE|N2&DLv-!`0 z>R4WkjCXuispPKl+MHhp3^MTRP-R3ocFf2uCf5!xiH2`%d>DU*hC^v=El2U;@sXJw zW1-;GQK`NHeY@%0e)0O^#Re&iBoDyvtQ1;>5mp@640m@mTSX9bOToe(0J%hkO62LK zMpEFFAc;~ENfat2Xo>{LY&rZKsMLEHO1*WoSg(cls9S+GYu1s6gLLA=C0j9|6~Um9 z8+M{Ch}VlW6(6{KD{|fr&nNvsrO!M{!@8J_9?e(*Wq(Zx|PqzL$1-e zyG=`b*&WJPkBvQ$nqxzYEAs3opJ{E@7i+HdmsKYR*8(Mp#2+eV8Y)ZJSnJPJY@+YF za^G5+oyY02vM*v)H9{3)5dSN#8&4v3p+_*5)|HGHDx^ZWlBcPJxlx3~!Wv-qv~uKK zsnz-5F_aeK(y_voq}A${*B6y|o!awFK-r}tP`J)7(bT2}fCI~Y9@`1_4^o>i-bUe@ zSUoQjMn?t`{UCq`^>-xP5UTcj%S%BM0BUCJ9!-(7ZbS|TR|j7Tu1DpTiPlbq6(W(v zQyX(JTc{DO(Ok@)D0gf;?U`1SmXAH%+11@IuZ^&nTGto!*Y0*Y_cR0>x>Rtl&BmL@ z?SoG}`T;P?oxFB&C7zyGO=n+|{dLwPtE<+p^bhWspJRZGwQ0@)WK9D(R0w%mQJe z1PQJ&(li7_jBx32FFgJ2hJ`bf5NofM#UeJ9_k$0o9!!fbJtcoi5YN5q{FCQ@U-&Te z)e-^4lFU2@8(hF5Y*F091Q&(Q3acA-DGV<%ZRs3jn1D+5b`xAS8Z~}rV>ZHYs3_@> zP5|LHFn6RJwgf2V@rLXEj?98A#g^;t^w*oq4rVgVZSxtZfA+mG=YrMM!4Q$640twz zO-i9;1ZdV(0R)lYje1&^Eh}t6=hC`#bnSyL+7I*0#Ru+kc?N#ulwN0sr1Pk zFGaFTLpysprd?5J!1(6*`09iopA9%2GNQnsEQe-90{K$WAc?U8a{z*03=T3$rs5Pc zRBAycQ^R+zR)Z-O*BIqxbzSkB+GQ%el4}I=l-h`QTh~R*f{yQHWbXY#Gr8*j$Uy-bt-++$x9LS@`=6}TQ3o{B*kTZ6wJ`LQ}JYp z!whGuQk_If^ZHRxVjC%;HP8_t%!a65!E~6_*f-?0E-R(8Y%0Q?%l8bKb<&;z(&!R= zzT$G~=Jd(zcRqYER$qPqetj`!U#a)R?5lu1($C7IouTRLYODdESwq~uxj$?3+`gS~ z0`pW5?)qD&o8};_lOl(2gXPjn2DFrosN+LKPFAX)rOU8hiA2+FA1r;{lL$@d$VS+RPTxiy7l|`x|X+7vJmDWSX zMbX=(0{#sx*Iif42TZFcUi%g}fu#i{PGALm8*bsqnM$ij&S$zRQL%UZz>^pjB_d`D zlggK&+k%4&W|vOaAoyp4F_+5u`T16Qw+yE$qRM zki?$chC-Nc)h}L@Mwo_nEvFGyz~jX0#k4oM&1wY?x2zY-U}|hjFwe?~c~*|{PvE8_ z57atU3~G!C&7G0XhI;ApaoV{vWs9hey)B~Qqa?NOx?;BB$FaOe-V)<5WlAMwr}+A| z3-5lpwc2XbDM+GIbOEN?`U1nDq?RevbTnlO73PB0n@UAlM+*s>0Ls7AOC0RCewGVg zEIqTw_= zu@<8U{YrZn!FqkM0kXPCC^i)pAA;g66HU3R3DS|5ya3orrxVwpfpRX!*-cFv4MsEx zi$!Zxf-PBYVMevw_%<3|h=+#;nJ}|sJd;ihE)Fdw`lL!D;rg0ttPRR6xSShmp>Z<`XCA8$^H ztUyxV!T7#Nv#SK^sIlN&gA_!jH-JYK`D_F&#yUxIT+8J++y-(^+sIWW6Db(2EluIN z5Qy!4RfvOf0}*>RuWWBzZCu$#MReHjWX)elrg9-|@;hkCrmuuMnM?OCU5-Cly1$4& zSpf_|yYSrEaCsT$lp#xdlg6rpjMvEyLcXD}*&YMz^4vVo3@8wcoD$Uy96;LkoNjrOG zw9C@op@d)s{J;n_)Ruq{DsPT)Lq?<2$drU6)yNb?wv#W#z-_V|DK8}|0E5l}!!}FN z`jEHSWO;*^ju>1%{Ln?Yw;-R-z zExE#7vLN7KyBjKQqJ9NoJ|y*ZWAS9}+mb-jsold#pcMdt)zjw7cc0cMpIHk%1atu8L6s{h z)g+&h3-z84Mgv(zREWrwaT8v{1Rv_w{#!1eghfs(_8S_ z_%6PhLC7L^6*gOLHJb`Y2wGEMRB*D05A$}ZzznGkBv&?S*2LSleMciIGzIVA3eFdy zp_j3zZtQ%_^yga@1yU6}HaS@JbTH&)7C7PDxOMA|=7>*Cx zj5v!FsU&xg3hOMYKy(ZFLPVFGL4jKqIXYBi0l-|y<9(&BZ&(bJ6+y1X4JK-_omMcr zyor#S3yev&g_WACMB)zdLF_0$u8l9m^(f;4ce4S|Dl&d3#R-vbsi$=MVALS6aGD=H z3S!9DNVOw|Z^^+CzSP5#_X_a`dJjUBUW?aX>=d=p;4fDMoV zPU0?p5=(FuoQdn98P>|PM^hwFeMSP21 z%B#PjZ6Bxg`z*2YHsyy+OCZOUF2}G{kaEYclVm8BK-vtLk)fjGNT5qM z921-0K|B=|6t;hf`xgQTD_|1?X=_1vU}I%B=7|Sh}yLi=Rns7O}gT(wvp$bgM45SK7{Hzp8tvnVZuWD|b8CQv&E65wOd%-Ov zotr#U4d)TR;QVZmiRb4se~bzV#ii@!S9}(mgkABK+CZsGu1n?}xuhIB2aY2sAu@^DAC;cfDA1@`)@#K= z&w2ayZ-E$InjLbL=iWiB=uHj8TQ|L{&3|$IT?6s9FYC!uzr{h0P_yLeLv3Y11SsqR zqYB!2{<`1rA>^i75?b84kk~gQJ28OBB9xiDwPEv$-y|*Imdmr3OA~%63Ulc!NC#9y zsV@}UB`=)?9y(OjzLGO4sizm5(QPTt^XK$JqH}%#_FYJJE{PB+R^)|^{(+YQF4Vjt z`;ZDGL<=1iN-eNd*CX7R!v(@`p_IXIK}SHR0Y7~{egp^ZmiM$u2;|GZ2sek{2Wvm* ztMk`MVz#_&^RgD6AdYXoG&Q;uj5>Z?Zge#c3wFpPol~}L3K7xcSh^s zZ_W*mHq};#wIljDl*$Ij_)ON!e*P>3z=Mw`ShBY%+EiTr6=2f9HmyOYTgNC}wADhSQE9w?yJoh5D{X16un|~AwNsPi z>7SgPn!Pk^DF-+EEyI@h(*M`NOXuF;`{3&zDC*11cQe-t$eE5=PgBghsl&=Q|G{Zf5^Xy5zN&a)IYq zGPBQNtm17KcZKJvGHK-RS@(#CD2T~@;(4P?gOQ^IgQ$V7Ao<3n$S+qM3M2hUo307? zxATvaakXi@IoF(Ih7#~I3I)!-PN(?-sc?zy{Nxg+X7)WawnN*v%k#vV(srZjGn7%} z5GsZ7c)Gy4g2P|Mos3cqNsJ3jdSqLp*x6=7tFofhMXr}ZV{7BmzpxTh-lh?gv{KoB z*=lsATjQ@Fuyg98BFGm3!OQTNep4Rsq~ zWrYT=0i?ztxsj?T@$?%i%~u=p_)H~$Gneo><5cY!WE%v=lR_&L=|rvv>0+oEFGW3b z;5e{ya26Ys%KcwPg@3bhv)V`Fqt$c4b!^^pQ&}9I{B+3`|o;a zHs+a}yR#A%YP#65J#9WudHGQ4o8p1#kqI_1)7e{ZRD8pAAp4FVIgwq4fqqT=-&mvo z&-3mj^R2hLi;#p`3{in0BH>#l%E=3|4kS|(o=a_HdYKwAXP_&QHgd?IgH@wlA#9j7 z9c}4oZ|RJ7l2fFi-fQvrP&6-ys)Ce|O%uRX&jJskee2kBBpEbEUOVcC5C+*!=tcHy zI{R-A-5rZmhkz29N=@%M{NQvF72sypQp`5eH!+^wFH>h!4^(+oPl$K!-Piu$%q=DI zw&A9lQV-ZHXRjY)duG$qYLS%$8C=jnMD-M$ls;7%2al$#hbZU%q@8 z1;Se*kV)|RV^bj6&F6E|ocPxxHigBqP)2$4e#n6($u+Xs?p4sdm|f0^wfQuvY3aHf zI?B#{MfNAzFJXraVQ#QPQrTbJ^$2QjWp>s^IvO27y6!*tlx%5sWFP8lMe9$XD&#lB z{nI0pY;dNdH~Z%g%--Z24)oq)EI!fE9F58T?++b2`G)zK_!Ufz2VSIR0PAr!XiSX( zKaz0)90U6w;5wojj(F5iBMYB_sQ~js)t$gADbIT;c%9pjFNA}ET7N+z$YKO7FFXOk z4Tm{$hiE4RJt_yC6%}_41(g z(Jz2Z!SmO;2M;f?uZ~4b^S#Lo8yt_eirF9BJJaKKPDfMWL?RrvKVd6vP2AL$sCc|2 zJM-uE363^DCw>jXRf6TGMfg8)LrZg06^Nmk?=4Yn$JQ*KTfj>1m=XD+iY&4l2TQJ_!XwfOBw40V2(>4xR#lk{kmtG7Owi2oH6aYSy#UmU zRg2PwykkQ7aq(vlo^G}qh9UrWdOK@>B7XN%%Ejr!I|k{%?im{0yN|tp#Z&Q~>`!KI zw%gnMG0UK77zZ*`a;(a*=dp1%u%oS4%zkU^?;TRr`F`>HaKNBiH~VV5cyVERVl>_! z@s^qOYC|#B!+@Ehl>nJ9suV%b0+2v)J%p8DR12qtVtw&_n0bv>g;=>3O0X6sTZ}Ns zbVe-OIw;D_bUOXA$sp?W@S8A}|FfQgN#yB)kl6eQnCHLEZxBc1!lk}pcq`*zxnUSq z1%tt9Kxk|3a&2SjQFMy*jqT?uH$z)nroB|pgtgU`<(*68D0VWC=;`k2B(zE`eB+hn zF7k~dhKEc?q%#ouhpmGzSuWODn7L2@Mc80bjB#-p6&_V#~$LKyKDWb|1 zoM-lk-4ZafU8C7M;?Ilrt9pizIG(KbioUwt$HfGj7-(w~t6Q2nhdgVK6^B}P_w=@E ztfA$M@4ziWUsFj&-EnA! zjV11QqOVe3-_ahbZxNNDhz|q_JEr2Z#jUa_6y+ly;sIGNwy+X+%S&;6O9MiN7PA2$ zEo@&p=xu^lhZ{zx*WD`^jH1zipeCZQ_aPS$_JI+~g(xqQ1dRsN0=Xo8vl7eNeVJE_ zID`KZT7aH{aQ)`@ftqDPf4r+R7HtYs&>m+NuG|vD0f}Tz5(mY(CBtp(;24oD@?h)i zlLRNHOjNq!)|oKb9pjJ=PijoAU4eD+@ME#U+!z{+{}R=aGuheEv1Q-v(6}Nks}EL( zBth|T$S>c?#YA!{F&*9!+J7i{q@+bwgZi^ID@k!SrJGnB03kwUZA%QgN#uN=n8tMX zvG>O{0Eku~-QR$jCdTGIB#A@AG3X8V;SWUVLD~$MAhGeGaO+6n)&bU`!!3r&+a$rQ zqeXyo=vSfq=$%{~kejcYw;`ka5=xGK>y1#T^S9C)g7SmQ1 zV&*w$92>|nE*JYHAzeTg@!eGKz?w~-UR)dVhw8k$_a|2t_J@Xst}4-FcJ3Yzgz9`K ze!g${NL}jKu`hmVWM{fN-jh&w%lmqblh-7eZgg?Jw=X`R?veNR>1J+8Jtz4NJP-CNG1m0C2eVgoykkc8Y%cI8b$jG{NZB>+hB&5(E*D#4tueRF3g`=8xPn9#Dcyo571)B@49u=qV!DHvme>P(C`p-1)^$r%&t!VroWO-g8f-6yEHon@;m0rJENx`$w#OAYj=zi_tCeNd_&^VW~}xu-Yk@~nw(;4ZVHTGP?^HSx~s zAQinf;xbdoH@UPR+sI0ifdCm29c(4wJ3EA_)iWKgw?jo(G3k~!rcwH7kP?@ByW3-t z<}iZF6jKH=ougL4j&5gm6Bm)t*Kwz9_FuFzsZ8^BmwO&ASLhk>vM2Y}`a;tg)De%j zXsr>}G!`G&V^fVS?Vj+5%A5D^&*&!i%#Fr|bSN#}UUu&5;=h9`qyOPx&n+s=iH=CD zOKi%n{84Ityt}V=kl*$w_A2h08QD+nklGs)JmLq1ZW@_%2B3sG!58@p$>2BcoEh)w zglntPtk)TkP`Bv^M#`!qg$^VKs6?y;>_Hml8di$vF}8lE5ktM=^PwYs=4KQ}dzP7MuW*`SfN zG<)5Y=&Df(24;|AHazv8>mW8%j#T9c`E%D8x3_xKF*^`L8wrgTZ_b^yuIuNN|GdE# zDs=sl(VY`Dwk6hD59z20AG67~M_Hsu+E(i2h-cJ%uk zE+n^`dce*jGssLbD{FS%aGL$Hr6E+O&K~=~^3(U4D~z6N4v+QPYWsTwbyp|W!p@GQ zHj$%{(BZ7;5zeV0C}p6s+-lN`h~TPF16mHA90ui2BWHm7%8?N%$Th^-jqD;NU4{9q z=(4i1nz9;rf#Cr+`@A~ndKV^vg0?(&EhwPn@yZ7rJS+a{d#vsK(iAY~kxceT`uc;J zWqIYf&m0@=7;VlTX*^xa25-5Q{fZCjljmN0eu1?ouft97nV<9rH6Zf#WPjGY3SvOY zOqWwGpo~ZYeUsdD+&bN~m|wj_!@r*R>XRR7pqs{I6wKVIDN_WY)p?eM4LmX$)1G z0e^woL#dT+N|glWQ~>z{SnfEb-zb9mg_)I=SbL@f`yFN`_wc4CfbsTu2^;9G^VLZJ zOuMznK)w$OVZ_L<9SGta`E%)&(TitU%7}KuYx{2FKsYuo-odjiP5X!X(z|3Qv#0Ny zpMA4$wWa&SoBb2U?5nfgL0^&mmC;F_dwFVbVQ7SPCK98K6;s)t-j%9ru-9gPwZuMS zZmD}MigoS+htc0-I&AQH57EXL8tjfXdk}lkz{*j<+oi(3K<*{+wvmA=s$lK_7>N8q z4S9LVG^RXU0{lx}ZgTigvKOV;-~xcdnOuo}K4i{U!DAk1c469ro0&)yJ;s zn(S)o*X#RgEn4$n?Gf&?`L*mlxCb;s57S7(UDw&#j96Q_3gyZW_Fw;-CZAL7Q!qK^ z2aKqP5W*C4`$wmuJn?0%2Ie3##i1b6O%ax!g=Ss&EJ0s#Pa@lX%WJel>$ZIjc<;mDAy>Z{EA_>V^8InUNs-v+SMs%`bGXZ`{|Vl;YaX(T=qa*??kjP&puvMOIm& zXE^MqZN7uYDt;(?FF)fQ$g4~VkHqzqMcFDOCCdry-i$bpw5 zZVPBd8<_Y~_|)k^l8LeSpPt^p|sMpQ1CJ|KhX^wazmo_-^E zO&ox-_@j2XJh@cJ`9QV`gb1ciN_Hf<5iFDmUkFd{>rOR3zA0IG%Bek^AtCXZZ11S3 z5^r3X$$rw)Qts{j$(^PDu`VcnuQ?NT$*Wu$!=~ir_}JBwvCNj5>u@_u)kP=k zzwAxEN`fPD{tj^*N5cd%o`b@n_<{X<#*%~Gt)+yO*Na93ggE1dT!Xv~?P)>87UYCH z@Q~zVr&<|2ZA40;0MuBaa4OOSEZMcXv@kzAd2s4rqOTp>kl1i4${cpV#7u-@i#5j@ z)DQ*`A4L9!YFT+xx}fGk9t4(SA$A-RcMr;<6CH;HeiQ(bFwysI7)uZo>)h_Nx zddjQ3ez1X6xm_h84YP=ir#zxbY1V_X%vI!Q^j0^#+TT5BXbS5z4O0WHV|Br(x2mQY z#m1_t`sP}ry$vawE!EVW?lGF{Qnh`7MGriahbo+9&Uks5y{xQMX$V#ING|0c%D#^^ zNDH&V|IMkW)9Ie}C^BxV^rDV9AB=@RSSNl63(#%h0mT{_z{V*SF{45>Layg=t9lMu zT|pt$Lda^zrC#IUQ*w4mF9F>P%<4u9R44D^-=vp`NE|P016nN`%VcK9W=BBe)!Bht zrrGQDcq0B#bIyHu!RY}-6nQU0Nj3*}_FkN0IUEKu1h=N;*%sO|?hmJ9{JX zONuH{w|>lK?wA^BemwgPPo&J-Te<02wMP$JM0DlO+1*Pa1r8(Y>2R00=)56x*LMDK z@ii>-1T2xy$8~$whWq?xnCnCpKtZV<2qX}@Au6pv7UB{j3{Xr�vxj69gUn8O2Pm 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

K&i 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

M8ujftG2C<0U4V?Fk%f!@x1N1u)Mx z2j-fefqco)*B%L0f~9w9+HQBBPvs5NegzPR|I$pyJJ+kBH%wjj^Xxs)m#T)K3_G7wi&k;&U#lcHqYU0bTQ+}Qf{Qy9B+1c zT>-4O7Xj<+(WFpfCjuwh9AJ?>1X#%Yq~>@aaIEbH9Ai5I^Z6pyQvU_aHeUmWGsCIv z{X^iME&Uj1CAJti(Pjb1*}Z}J%n)d6{T4XlA6nj8WINGb>?B+coM}too@hq`3++(g zc-tB{+WNp8vlE!jt?Md-&S&eb7$g2k7ko>uw9{iXQHg&aQr_xvycVddL8_T^UA`{@ zAGWsxPhy5d%X1iTq8$M&w6rNC82}t-_X8F%)2muCz-;p|aH!b|9I~t5vK2gYQWrSU z4g`*~t$?Ewy;G?R8RSCRxDc$19ah?c4I|EdiPO>R-O1=D+^Oh2&qOyp5B<)rG09s& zi`TD|;GOLTbXUmf^7*_!T*9gD2RT#yKC{5zo8MWp?P$ZcHz$%ua=LgL7IPN6rB<>3 z=~?EWx3R;i6+4@3 zs|reKA0K1>tGeTR{Tfyev_Jj?$l5Y-b67{QtP!Ja)={to&Ld-!oJ{@zxRUh>%Np`~ zz&h5oEvwD%03Wb#0}U$@T)D%lw`FX86Zogy1pI^b9*ZVk2mWSX17^E2YWt5%uRT}| zcjIUogHmhDtg%{Oams#vf`b7s>9C-H7Lh1H_n?;K!8+j`h{aI1jcDUgQU zPUW<|p42~{@#0kWM(la|{u5&&J6&~mYd|ew#wDO8L1l@>JvI5>l^bH=%?MX#nC%MUcH})hh^yb} z>J0N;nu5=m-i`63#BmyZf8pCq$9&bL#%6BIEjP!_a|yS-Xh|9a ze#Qh(%BUNiUlLN+uwDsyyAW!*^}G;jsiyCExPk!wE@mjyQ3d-qg^u~-&xf|pA-EYOP!QB_Z%@=y_MR4my2W&IA?IM2H zMR3nWFUF5ucU<&$_gm;)7Dw0$_W#aJ+&rPTPAtNrPl(+$q4!Ljwaca8pEZPegD_#0I{=o@R7vdNYL1qv_7-4E6bLZrn8%x>^oqZM5cmw{u(PW>n+! zmDIaWOud~U%Y{#Icd^tYIJ6xxYaZj*S)A8-GN$Q_a0}iqB3_2>`v&VpE9Z{l{}1Km B7n%S7 literal 0 HcmV?d00001 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..56fed37 --- /dev/null +++ b/readme.md @@ -0,0 +1,139 @@ +# Nestpress boilerplate with Authentication module + +## How to use this template using [nestpress cli](https://www.npmjs.com/package/nestpress). + +```bash +# create project +npx nestpress@latest init + +# create author, blog, category module (by default it will create single module) + +# create a author module on src/feature/ directory +npx nestpress@latest module author +# create a blog multi module on src/feature/ directory [-m for multi module] +npx nestpress@latest module blog -m +# create a category module as blog sub module on src/feature/blog directory +npx nestpress@latest module category blog + +# for more use of nestpress cli checkout this: https://www.npmjs.com/package/nestpress +``` + +## How to run + +- make sure you have [docker](https://www.docker.com/products/docker-desktop/) and [pnpm](https://pnpm.io/) install on your system as node package manager +- run mysql database and redis on docker(you should have docker install on your machine) + + - run `docker compose up` [use git-bash terminal in windows or for mac/linux default terminal is fine] + +- install all dependencies and run the app + + ```bash + + pnpm i + # rename .env.dev (if available) to .env then update db connection string (DATABASE_URL) and other env variable if needed + pnpm: db:migrate + + # reload / reopen vscode to restart TS server + # run the test + pnpm test + # run the app + pnpm dev # Api will run on port 4000 + ``` + +## Update npm dependencies + +```bash +# Updates all dependencies in package.json +pnpm up + +# run test to check the app is working fine or not +pnpm test +``` + +## Run/Write test + +- create .env.test file from .env.dev and update values +- all test file will be in `src/__test__` directory + - on each test file we will have `beforeAll()` and `afterAll()` it will clear `db+redis`. +- run `npm run test` for integration test +- for testing we are using `vitest, supertest` + +## API endpoints and doc + +- BASE url: http://localhost:4000/v1 +- Swagger Doc url: [Not Implemented] +- in `.doc` folder a postman json file `postman-collection.json` is available import it on your postman + - you need add an environment in postman with variable `url=http://localhost:4000` + +## Code Snippet on vscode + +- generate a router boilerplate + - create a file on a module called user.router.ts + - `npr`+`User(this is the module name in PascalCase)`+`tab` +- generate a controller boilerplate + - create a file on a module called user.controller.ts + - `npc`+`User(this is the module name in PascalCase)`+`tab` + +## How to push code + +- setup husky Git hooks `npx husky install` it will generate a husky.sh file in `.husky/_` folder +- create new branch `git checkout -b feature-branch` +- add files `git add .` +- commit files `git commit -m 'message'` [here husky wil check the linting, it will throw error and stop commit if there is any linting error, it will ignore warning] +- push code `git push origin feature-branch` +- always create Pull Request on `dev` branch + +## Developer guide (code style) + +- **Set up vscode** + - Install [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) extension on vscode, then select default formatter to prettier instead of none + - Install [eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) extension + - Install [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) extension +- **Folder Structure** + + - All folder name must be singular, e.g. `/login` not `/logins` + - Each feature will have a module folder inside `feature` folder + + - we might have 2 types of module - 1. singular 2. multi-module + - e.g. singular (**user module** check `src/feature/user`) + - `user module` folder structure + - `src/feature/user` + - `-> dto/create-user.dto.ts` + - `-> interface/user.interface.ts` + - `-> user.controller.ts` + - `-> user.router.ts` + - `-> user.service.ts` + - e.g. multi-module (**auth module** check `src/feature/auth`) + - `auth module` folder structure + - `src/feature/auth` + - `-> auth.router.ts(this is the main router where all the sub singular module will connect)` + - `-> login-register[act as single module]` + - `-> logout[act as single module]` + - `-> verify-email[act as single module]` + +- **File Name Convention (all lower case,separated by -)** + - All file name must be singular, e.g. `user.router.ts` not `users.router.ts` + - Some other file names + - app.router.ts | my-app.router.ts + - app.controller.ts | my-app.controller.ts + - app.service.ts | my-app.service.ts + - create-user.dto.ts + - logged-in-user.interface.ts + - anything.something.ts +- **Class, interface and Function name convention** + - Class: `class MyClass{}` (mostly we will use functional programming, so try to ignore class) + - Interface: `interface IMyInterface{}` should start with capital `I` + - Function: `function myFunction(){}` should be in camelCase + - Variable name: `const aName=""` should be in camelCase + - Object name: `const UserService={}` should be in PascalCase + - Router Name: `const UserRouter = Router()` + - Controller Name: `const UserController = {}` + - DTO Name: `const CreateUserDto = z.object({})` +- **Import/Export Module** + + - on app.ts and for all \*.router.ts file use default export + - for all other case always use named export avoid using default export + - e.g. for controller, service, dto, interface always go with named export + + @author + [milon27.com](https://milon27.com) diff --git a/resources/drizzle/migrations/0000_colossal_victor_mancha.sql b/resources/drizzle/migrations/0000_colossal_victor_mancha.sql new file mode 100644 index 0000000..fa07118 --- /dev/null +++ b/resources/drizzle/migrations/0000_colossal_victor_mancha.sql @@ -0,0 +1,23 @@ +CREATE TABLE `user_table` ( + `id` varchar(50) NOT NULL, + `full_name` varchar(255) NOT NULL, + `phone` varchar(20), + `email` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + `gender` enum('male','female') NOT NULL DEFAULT 'male', + `avatar` varchar(255), + `is_email_verified` boolean NOT NULL DEFAULT false, + `is_super_admin` boolean NOT NULL DEFAULT false, + `country_code` varchar(5) NOT NULL DEFAULT 'BD', + `city` varchar(50), + `state` varchar(50), + `zip_code` varchar(50), + `address` varchar(255), + `time_zone` varchar(50) NOT NULL DEFAULT 'Asia/Dhaka', + `fcm_token` varchar(255), + `last_logged_in` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP), + `created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP), + CONSTRAINT `user_table_id` PRIMARY KEY(`id`), + CONSTRAINT `user_table_phone_unique` UNIQUE(`phone`), + CONSTRAINT `user_table_email_unique` UNIQUE(`email`) +); diff --git a/resources/drizzle/migrations/meta/0000_snapshot.json b/resources/drizzle/migrations/meta/0000_snapshot.json new file mode 100644 index 0000000..c0dcd8d --- /dev/null +++ b/resources/drizzle/migrations/meta/0000_snapshot.json @@ -0,0 +1,176 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "22779517-e921-4349-a325-882bf40058bc", + "prevId": "00000000-0000-0000-0000-000000000000", + "tables": { + "user_table": { + "name": "user_table", + "columns": { + "id": { + "name": "id", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "full_name": { + "name": "full_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "phone": { + "name": "phone", + "type": "varchar(20)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "gender": { + "name": "gender", + "type": "enum('male','female')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'male'" + }, + "avatar": { + "name": "avatar", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_email_verified": { + "name": "is_email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "is_super_admin": { + "name": "is_super_admin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "country_code": { + "name": "country_code", + "type": "varchar(5)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'BD'" + }, + "city": { + "name": "city", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "state": { + "name": "state", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "zip_code": { + "name": "zip_code", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "address": { + "name": "address", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "time_zone": { + "name": "time_zone", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'Asia/Dhaka'" + }, + "fcm_token": { + "name": "fcm_token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_logged_in": { + "name": "last_logged_in", + "type": "datetime", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "created_at": { + "name": "created_at", + "type": "datetime", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_table_id": { + "name": "user_table_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": { + "user_table_phone_unique": { + "name": "user_table_phone_unique", + "columns": [ + "phone" + ] + }, + "user_table_email_unique": { + "name": "user_table_email_unique", + "columns": [ + "email" + ] + } + } + } + }, + "schemas": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/resources/drizzle/migrations/meta/_journal.json b/resources/drizzle/migrations/meta/_journal.json new file mode 100644 index 0000000..9dfd2ac --- /dev/null +++ b/resources/drizzle/migrations/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "5", + "dialect": "mysql", + "entries": [ + { + "idx": 0, + "version": "5", + "when": 1705681926051, + "tag": "0000_colossal_victor_mancha", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/resources/email-template/.gitkeep b/resources/email-template/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/resources/firebase/account-key.sample.json b/resources/firebase/account-key.sample.json new file mode 100644 index 0000000..f6c2e25 --- /dev/null +++ b/resources/firebase/account-key.sample.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "xxx-d7f67", + "private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxx", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDW1boQuckK8LT4\nfuY0ybuwZOGx01m8qtSIRtEupk9TFoJnuMFpuloMJHLxT\nFhM1km1=\n-----END PRIVATE KEY-----\n", + "client_email": "xxxxxxxxxx@xxxx.iam.gserviceaccount.com", + "client_id": "xxxxxxxx", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-wu181%40test-d7f67.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} diff --git a/resources/i18n/.gitkeep b/resources/i18n/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/resources/readme.md b/resources/readme.md new file mode 100644 index 0000000..f6ef303 --- /dev/null +++ b/resources/readme.md @@ -0,0 +1,4 @@ +it should contain only non ts file + +- e.g. firebase account-key.json file +- e.g. drizzle migration sql files diff --git a/src/__test__/auth/logged-in-user.test.ts b/src/__test__/auth/logged-in-user.test.ts new file mode 100644 index 0000000..8899f51 --- /dev/null +++ b/src/__test__/auth/logged-in-user.test.ts @@ -0,0 +1,44 @@ +import supertest from "supertest" +import { afterAll, beforeAll, describe, expect, it } from "vitest" +import app from "../../app" +import { StatusCode } from "../../config/constant/code.constant" +import { TestUtil } from "../test.util" + +describe("logged in user 👤", () => { + let accessToken = "" + + beforeAll(async () => { + const token = await TestUtil.createUser() + accessToken = token.accessToken + }) + afterAll(async () => { + await TestUtil.cleanDbAndRedis() + }) + + it("with cookie", async () => { + const { statusCode, body } = await TestUtil.getLoggedInUser(supertest(app), accessToken) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response).toBeDefined() + expect(body.response.id).toBeDefined() + }) + + it("with auth header", async () => { + const { statusCode, body } = await supertest(app) + .post("/v1/user") + .set({ Authorization: `Bearer ${accessToken}` }) + + expect(statusCode).toBe(StatusCode.OK) + expect(body.response).toBeDefined() + expect(body.response.id).toBeDefined() + }) + + it("with random invalid token", async () => { + const { statusCode } = await TestUtil.getLoggedInUser(supertest(app), "random token") + expect(statusCode).toBe(StatusCode.UNAUTHORIZED) + }) + + it("without any token", async () => { + const { statusCode } = await supertest(app).post("/v1/user") + expect(statusCode).toBe(StatusCode.UNAUTHORIZED) + }) +}) diff --git a/src/__test__/auth/login.test.ts b/src/__test__/auth/login.test.ts new file mode 100644 index 0000000..dc87694 --- /dev/null +++ b/src/__test__/auth/login.test.ts @@ -0,0 +1,59 @@ +import supertest from "supertest" +import { afterAll, beforeAll, describe, expect, it } from "vitest" +import app from "../../app" +import { StatusCode } from "../../config/constant/code.constant" +import { Constant } from "../../config/constant/common.constant" +import { createUserPayload } from "../data" +import { TestUtil } from "../test.util" + +// login -> login normal, login invalid, login as admin + +describe("login 🎇", () => { + let accessToken = "" + + beforeAll(async () => { + await TestUtil.createUser() + }) + afterAll(async () => { + await TestUtil.cleanDbAndRedis() + }) + + it("given invalid credentials", async () => { + // todo: check error from zod + const { statusCode, body } = await supertest(app).post("/v1/auth/login-with-email").send({}) + + expect(body.message.body.email._errors).toBeDefined() + expect(body.message.body.password._errors).toBeDefined() + expect(statusCode).toBe(StatusCode.BAD_REQUEST) + }) + it("given valid credentials", async () => { + const { statusCode, body } = await supertest(app).post("/v1/auth/login-with-email").send({ + email: createUserPayload.user.email, + password: createUserPayload.user.password, + }) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response.accessToken).toBeDefined() + accessToken = body.response.accessToken + }) + it("get logged in user", async () => { + const { statusCode, body } = await TestUtil.getLoggedInUser(supertest(app), accessToken) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response).toBeDefined() + expect(body.response.id).toBeDefined() + }) + it("given admin credentials", async () => { + const { statusCode, body } = await supertest(app).post("/v1/auth/login-with-email").send({ + email: createUserPayload.user.email, + password: Constant.DEFAULT_ADMIN_PASSWORD, + }) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response.accessToken).toBeDefined() + accessToken = body.response.accessToken + }) + it("get logged in user", async () => { + const { statusCode, body } = await TestUtil.getLoggedInUser(supertest(app), accessToken) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response).toBeDefined() + expect(body.response.id).toBeDefined() + }) +}) diff --git a/src/__test__/auth/logout.test.ts b/src/__test__/auth/logout.test.ts new file mode 100644 index 0000000..d26f5f1 --- /dev/null +++ b/src/__test__/auth/logout.test.ts @@ -0,0 +1,40 @@ +import supertest from "supertest" +import { afterAll, beforeAll, describe, expect, it } from "vitest" +import app from "../../app" +import { StatusCode } from "../../config/constant/code.constant" +import { KeyConstant } from "../../config/constant/key.constant" +import { TestUtil } from "../test.util" + +// login -> login normal, login invalid, login as admin + +describe("logout 📤", () => { + let accessToken = "" + + beforeAll(async () => { + const token = await TestUtil.createUser() + accessToken = token.accessToken + }) + afterAll(async () => { + await TestUtil.cleanDbAndRedis() + }) + + it("logged in user logout", async () => { + const { statusCode } = await supertest(app) + .post("/v1/auth/logout") + .set("Cookie", `${KeyConstant.ACCESS_TOKEN_COOKIE_KEY}=${accessToken}`) + accessToken = "" + expect(statusCode).toBe(StatusCode.OK) + }) + + it("try to logout again", async () => { + const { statusCode } = await supertest(app) + .post("/v1/auth/logout") + .set("Cookie", `${KeyConstant.ACCESS_TOKEN_COOKIE_KEY}=${accessToken}`) + expect(statusCode).toBe(StatusCode.UNAUTHORIZED) + }) + + it("without login try to access profile", async () => { + const { statusCode } = await TestUtil.getLoggedInUser(supertest(app), accessToken) + expect(statusCode).toBe(StatusCode.UNAUTHORIZED) + }) +}) diff --git a/src/__test__/auth/register.test.ts b/src/__test__/auth/register.test.ts new file mode 100644 index 0000000..2d8d26c --- /dev/null +++ b/src/__test__/auth/register.test.ts @@ -0,0 +1,47 @@ +import supertest from "supertest" +import { afterAll, beforeAll, describe, expect, it } from "vitest" +import app from "../../app" +import { ErrorCode, StatusCode } from "../../config/constant/code.constant" +import { createUserPayload } from "../data" +import { TestUtil } from "../test.util" + +// register -> success, failed, check without ref, or with ref membership day + +describe("signup 🚀", () => { + let accessToken = "" + + beforeAll(async () => { + // nothing need to do + }) + afterAll(async () => { + await TestUtil.cleanDbAndRedis() + }) + + it("given invalid user payload", async () => { + const { statusCode } = await supertest(app).post("/v1/auth/register").send({}) + expect(statusCode).toBe(StatusCode.BAD_REQUEST) + }) + it("given valid user payload", async () => { + const { statusCode, body } = await supertest(app).post("/v1/auth/register").send(createUserPayload) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response.accessToken).toBeDefined() + accessToken = body.response.accessToken + }) + it("given same user payload", async () => { + const { statusCode, body } = await supertest(app).post("/v1/auth/register").send(createUserPayload) + expect(body?.errorCode).toBe(ErrorCode.ALREADY_USED) + expect(statusCode).toBe(StatusCode.BAD_REQUEST) + }) + it("get registered user", async () => { + const { statusCode, body } = await TestUtil.getLoggedInUser(supertest(app), accessToken) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response).toBeDefined() + expect(body.response.id).toBeDefined() + }) + it("get registered user with referral", async () => { + const { statusCode, body } = await TestUtil.getLoggedInUser(supertest(app), accessToken) + expect(statusCode).toBe(StatusCode.OK) + expect(body.response).toBeDefined() + expect(body.response.id).toBeDefined() + }) +}) diff --git a/src/__test__/data.ts b/src/__test__/data.ts new file mode 100644 index 0000000..b7f29b1 --- /dev/null +++ b/src/__test__/data.ts @@ -0,0 +1,17 @@ +import { Constant } from "../config/constant/common.constant" +import { ILoginWithEmailDto } from "../feature/auth/login-register/dto/login.dto" +import { IRegisterDto, RegisterProvider } from "../feature/auth/login-register/dto/register.dto" + +// auth +export const loginUserPayload: ILoginWithEmailDto = { + email: "test@g.com", + password: "1234567", +} +export const createUserPayload: IRegisterDto = { + provider: RegisterProvider.simple, + timeZone: Constant.TIMEZONE, + user: { + ...loginUserPayload, + fullName: "test", + }, +} diff --git a/src/__test__/health-check.test.ts b/src/__test__/health-check.test.ts new file mode 100644 index 0000000..afd4b46 --- /dev/null +++ b/src/__test__/health-check.test.ts @@ -0,0 +1,24 @@ +import supertest from "supertest" +import { describe, expect, it } from "vitest" +import app from "../app" + +describe("health-check", () => { + describe("check root route", () => { + it("should return text with env values", async () => { + const result = await supertest(app).get("/v1/health") + expect(result.text).contain("Running app in test , https:false, TZ:Etc/UTC") + }) + }) + describe("check database connection", () => { + it("should return response", async () => { + const result = await supertest(app).get("/v1/health/db") + expect(result.body.response).toBeDefined() + }) + }) + describe("check redis connection", () => { + it("should return response", async () => { + const result = await supertest(app).get("/v1/health/redis") + expect(result.body.response).toBeDefined() + }) + }) +}) diff --git a/src/__test__/init.md b/src/__test__/init.md new file mode 100644 index 0000000..38690ec --- /dev/null +++ b/src/__test__/init.md @@ -0,0 +1,26 @@ +- install deps + +`pnpm i -D vitest` + +- initial test setup + +``` +import { describe, it, expect } from "vitest" + +describe("health-check", () => { + describe("check root route", () => { + describe("env variable are not loaded", () => { + it("should return text", () => { + expect(true).toBe(true) + }) + }) + }) +}) + +``` + +- run test with package.json script + +```json +{ "test": "vitest" } +``` diff --git a/src/__test__/test.util.ts b/src/__test__/test.util.ts new file mode 100644 index 0000000..c44be48 --- /dev/null +++ b/src/__test__/test.util.ts @@ -0,0 +1,71 @@ +/* eslint-disable no-plusplus */ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable no-restricted-syntax */ +/* eslint-disable no-console */ +import { sql } from "drizzle-orm" +import { MySqlQueryResult } from "drizzle-orm/mysql2" +import { KeyConstant } from "../config/constant/key.constant" +import { db } from "../config/db/db" +import { UserService } from "../feature/user/user.service" +import { AccessTokenUtil } from "../utils/access-token.util" +import { RedisUtil } from "../utils/redis.util" +import { createUserPayload, loginUserPayload } from "./data" + +// create a user and get tokens +const createUser = async () => { + const user = await UserService.getUserAndPermissions("email", loginUserPayload.email) + if (user) { + const tokenValue = UserService.convertMemToCurrentUser(user) + return AccessTokenUtil.generateTokens(tokenValue) + } + const newUser = await UserService.registerAndGetUser({ + ...createUserPayload.user, + password: loginUserPayload.password, + }) + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const tokens = await AccessTokenUtil.generateTokens(newUser!) + return tokens +} + +const truncateTables = async () => { + try { + // Get the list of tables + const result: MySqlQueryResult = (await db.execute(sql`SHOW TABLES`)) as any + const tables = result[0].map((row) => Object.values(row)[0]) + // Truncate each table + for (const table of tables) { + await db.execute(sql.raw(`SET FOREIGN_KEY_CHECKS = 0;`)) + if (table !== "__drizzle_migrations" && table !== "plan") { + const query = sql.raw(`TRUNCATE TABLE ${table};`) + // console.log(`Table ${table} truncating.`) + await db.execute(query) + } + await db.execute(sql.raw(`SET FOREIGN_KEY_CHECKS = 1;`)) + } + console.log("All tables truncated successfully.") + } catch (error) { + console.error("Error truncating tables:", error) + } +} + +// clean db + clean redis +const cleanDbAndRedis = async () => { + await truncateTables() // this will clear the whole db except the plan table + await RedisUtil.clear() +} + +const getLoggedInUser = async (request: any, accessToken: string) => { + const { statusCode, body } = await request + .post("/v1/user") + .set("Cookie", `${KeyConstant.ACCESS_TOKEN_COOKIE_KEY}=${accessToken}`) + return { + statusCode, + body, + } +} + +export const TestUtil = { + getLoggedInUser, + createUser, + cleanDbAndRedis, +} diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..63da8ab --- /dev/null +++ b/src/app.ts @@ -0,0 +1,34 @@ +import cookieParser from "cookie-parser" +import cors from "cors" +import express from "express" +import helmet from "helmet" +import "./config/env.config" +// import "./config/firebase.config" +import v1RouterConfig from "./config/router/v1-router.config" +import { globalErrorMid, notFoundMid } from "./middleware/error.mid" +import { infoMid } from "./middleware/info.mid" +import { globalRateLimiter } from "./middleware/limiter/global-rete.limiter" +import { loggerMid } from "./middleware/logger.mid" + +// init +const app = express() + +// middleware + +app.use(helmet()) +app.use(globalRateLimiter) +app.use(express.static("public")) +app.use(cookieParser()) +app.use(express.urlencoded({ extended: false })) +app.use(express.json()) +app.use(cors({ origin: true, credentials: true })) +app.use([infoMid, loggerMid]) + +// routers +app.use("/v1", v1RouterConfig) + +// global error handle +app.use(notFoundMid) +app.use(globalErrorMid) + +export default app diff --git a/src/common/dto/params.dto.ts b/src/common/dto/params.dto.ts new file mode 100644 index 0000000..3e2836d --- /dev/null +++ b/src/common/dto/params.dto.ts @@ -0,0 +1,26 @@ +import { z } from "zod" +import { ZodEmailString, ZodSimpleString } from "../../utils/zod.util" + +export const EmailParamDto = z + .object({ + email: ZodEmailString, + }) + .strict() + +export type IEmailParamDto = z.infer + +export const IdParamDto = z + .object({ + id: ZodSimpleString, + }) + .strict() + +export type IIdParamDto = z.infer + +export const SlugParamDto = z + .object({ + slug: ZodSimpleString, + }) + .strict() + +export type ISlugParamDto = z.infer diff --git a/src/common/model/current-user.model.ts b/src/common/model/current-user.model.ts new file mode 100644 index 0000000..a147b55 --- /dev/null +++ b/src/common/model/current-user.model.ts @@ -0,0 +1,5 @@ +export interface ICurrentUser { + id: string + timeZone: string + isSuperAdmin: boolean +} diff --git a/src/common/model/date.type.ts b/src/common/model/date.type.ts new file mode 100644 index 0000000..1eb15ec --- /dev/null +++ b/src/common/model/date.type.ts @@ -0,0 +1 @@ +export type DateString = string diff --git a/src/common/model/error.model.ts b/src/common/model/error.model.ts new file mode 100644 index 0000000..ff44c6e --- /dev/null +++ b/src/common/model/error.model.ts @@ -0,0 +1,44 @@ +/* eslint-disable max-classes-per-file */ + +import { ErrorCode, StatusCode } from "../../config/constant/code.constant" + +export class ServerError extends Error { + statusCode = StatusCode.SERVER_ERROR + + errorCode = ErrorCode.SERVER_ERROR + + constructor(message = "Internal Server Error", code?: number, errorCode?: ErrorCode) { + super(message) + if (code) { + this.statusCode = code + } + if (errorCode) { + this.errorCode = errorCode + } + Object.setPrototypeOf(this, ServerError.prototype) + } +} + +export class NotFoundError extends ServerError { + constructor(message: string, errorCode: ErrorCode = ErrorCode.NOT_FOUND) { + super(message, StatusCode.NOT_FOUND, errorCode) + } +} + +export class UnAuthorizedError extends ServerError { + constructor(message = "Authentication failed") { + super(message, StatusCode.UNAUTHORIZED, ErrorCode.UNAUTHORIZED) + } +} + +export class ForbiddenError extends ServerError { + constructor(message: string, errorCode: ErrorCode = ErrorCode.FORBIDDEN) { + super(message, StatusCode.FORBIDDEN, errorCode) + } +} + +export class BadRequestError extends ServerError { + constructor(message: string, errorCode: ErrorCode = ErrorCode.BAD_REQUEST) { + super(message, StatusCode.BAD_REQUEST, errorCode) + } +} diff --git a/src/common/module/db/db.service.ts b/src/common/module/db/db.service.ts new file mode 100644 index 0000000..2831edb --- /dev/null +++ b/src/common/module/db/db.service.ts @@ -0,0 +1,10 @@ +import { SQLWrapper } from "drizzle-orm" +import { MySqlRawQueryResult } from "drizzle-orm/mysql2" +import { IDb } from "../../../config/db/db" + +export const DbService = { + executeRaw: async (db: IDb, query: SQLWrapper): Promise => { + const result: MySqlRawQueryResult = await db.execute(query) + return result[0] as unknown as T[] + }, +} diff --git a/src/common/module/email/email.service.ts b/src/common/module/email/email.service.ts new file mode 100644 index 0000000..d8faa63 --- /dev/null +++ b/src/common/module/email/email.service.ts @@ -0,0 +1,46 @@ +import nodemailer from "nodemailer" +import { EnvConfig } from "../../../config/env.config" +import { myLogger } from "../../../config/logger" +import { ServerError } from "../../model/error.model" + +const mailTransporter = nodemailer.createTransport({ + host: EnvConfig.SMTP_HOST, + port: parseInt(`${EnvConfig.SMTP_PORT}`) || 587, + auth: { + user: EnvConfig.SMTP_USER, + pass: EnvConfig.SMTP_PASSWORD, + }, +}) + +interface EmailData { + to: string + subject: string + html: string +} + +export const EmailService = { + sendEmail: async ({ to, subject, html }: EmailData, shouldWait = true): Promise => { + try { + const mailOptions = { + from: EnvConfig.SMTP_EMAIL_FROM || "noreply@nestpress.app", // Sender's email address + to, // Recipient's email address + subject, // Subject of the email + html, // HTML content of the email + } + if (shouldWait) { + await mailTransporter.sendMail(mailOptions) + } else { + mailTransporter.sendMail(mailOptions, (err, info) => { + if (err) { + myLogger().error(`Error sending email: ${(err as Error).message}`) + return + } + myLogger().info(`Email sent to ${to}, id: ${info.messageId}`) + }) + } + } catch (error) { + myLogger().error(`Error sending email: ${(error as Error).message}`) + throw new ServerError() + } + }, +} diff --git a/src/common/module/email/send-email.util.ts b/src/common/module/email/send-email.util.ts new file mode 100644 index 0000000..f285e4e --- /dev/null +++ b/src/common/module/email/send-email.util.ts @@ -0,0 +1,52 @@ +import { myLogger } from "../../../config/logger" +import { ServerError } from "../../model/error.model" +import { EmailService } from "./email.service" + +export const SendResetPasswordLinkEmail = async ( + name: string, + email: string, + resetLink: string +): Promise => { + try { + const emailData = { + to: email, + subject: "Reset your password", + html: `

Hello,

You have requested to reset your password. Please click the link below to set a new password:

${resetLink}

If you did not request a password reset, please ignore this email.

`, + } + + await EmailService.sendEmail(emailData) + } catch (error) { + myLogger().error(`Error reset password link sending email: ${(error as Error).message}`) + throw new ServerError() + } +} + +export const SendResetPasswordCodeEmail = async (name: string, email: string, code: string): Promise => { + try { + const emailData = { + to: email, + subject: `Verify Your email ${name}`, + html: `

Hello,${name}

here is the reset password code: ${code}

`, + } + + await EmailService.sendEmail(emailData) + } catch (error) { + myLogger().error(`Error reset password email: ${(error as Error).message}`) + throw new ServerError() + } +} + +export const SendEmailVerificationCode = async (name: string, email: string, code: string): Promise => { + try { + const emailData = { + to: email, + subject: `Verify Your email ${name}`, + html: `

Hello,${name}

here is the email verification code: ${code}

`, + } + + await EmailService.sendEmail(emailData) + } catch (error) { + myLogger().error(`Error sending verify email: ${(error as Error).message}`) + throw new ServerError() + } +} diff --git a/src/common/module/fcm/fcm.service.ts b/src/common/module/fcm/fcm.service.ts new file mode 100644 index 0000000..35f14ec --- /dev/null +++ b/src/common/module/fcm/fcm.service.ts @@ -0,0 +1,82 @@ +import { getMessaging } from "firebase-admin/messaging" +import { EnvConfig } from "../../../config/env.config" +import { myLogger } from "../../../config/logger" +import { BadRequestError } from "../../model/error.model" + +// firebase notification service doc: https://firebase.google.com/docs/cloud-messaging/send-message +export const FCMService = { + sendPushNotification: async ( + by: "token" | "topic", + topicOrTokenList: string[], // topic or token or token array + title: string, + body: string, + extra?: object + ) => { + if (EnvConfig.NODE_ENV === "test") { + return + } + const payload = { + data: { + title, + body, + ...extra, + }, + } + // this is for when by is topic or token is single + if (topicOrTokenList.length === 1 || by === "topic") { + const singleTargetUser = + by === "token" ? { token: topicOrTokenList[0] } : { topic: topicOrTokenList[0] } + + await getMessaging().send({ + ...singleTargetUser, + data: { + ...payload.data, + }, + android: { + priority: "high", + ttl: 60 * 60 * 24, + }, + }) + return + } + + // this is only when we are using token list for sending multi + await getMessaging().sendEachForMulticast({ + tokens: topicOrTokenList, + data: { + ...payload.data, + }, + android: { + priority: "high", + ttl: 60 * 60 * 24, + }, + }) + }, + subscribeToTopic: async (topic: string, registrationToken: string[]) => { + if (EnvConfig.NODE_ENV === "test") { + return + } + try { + if (registrationToken.length > 1000) { + throw new BadRequestError("token list should be less than 1000") + } + await getMessaging().subscribeToTopic(registrationToken, topic) + // console.log(`Successfully removed device ${registrationToken} from topic ${topic}`) + } catch (error) { + myLogger().error(`Error subscribe to ${topic}:`, error) + } + }, + unsubscribeFromTopic: async (topic: string, registrationToken: string[]) => { + if (EnvConfig.NODE_ENV === "test") { + return + } + try { + if (registrationToken.length > 1000) { + throw new BadRequestError("token list should be less than 1000") + } + await getMessaging().unsubscribeFromTopic(registrationToken, topic) + } catch (error) { + myLogger().error(`Error unsubscribe from topic ${topic}:`, error) + } + }, +} diff --git a/src/common/module/json/my-json.service.ts b/src/common/module/json/my-json.service.ts new file mode 100644 index 0000000..365bd4e --- /dev/null +++ b/src/common/module/json/my-json.service.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { formatISO, parseISO } from "date-fns" + +const serialize = (key: string, value: any) => { + if (value instanceof Date) { + return formatISO(value) + } + return value +} + +const deserialize = (key: string, value: any): any => { + if (typeof value === "string") { + const parsedDate = parseISO(value) + if (!Number.isNaN(parsedDate.getTime())) { + return parsedDate + } + } + return value +} + +export const MyJSON = { + stringify: (obj: any) => { + return JSON.stringify(obj, serialize) + }, + parse: (obj: any) => { + return JSON.parse(obj, deserialize) + }, +} diff --git a/src/common/module/pdf/my-pdf.service.ts b/src/common/module/pdf/my-pdf.service.ts new file mode 100644 index 0000000..4fee6dd --- /dev/null +++ b/src/common/module/pdf/my-pdf.service.ts @@ -0,0 +1,153 @@ +import { Response } from "express" +import path from "path" +import Pdfmake from "pdfmake" +import { TDocumentDefinitions } from "pdfmake/interfaces" +import DateUtil from "../../../utils/date.util" + +const fonts = { + Hind_Siliguri: { + normal: path.join(process.cwd(), "public", "fonts", "hind", "HindSiliguri-Regular.ttf"), + bold: path.join(process.cwd(), "public", "fonts", "hind", "HindSiliguri-Bold.ttf"), + italics: path.join(process.cwd(), "public", "fonts", "hind", "HindSiliguri-Light.ttf"), + bolditalics: path.join(process.cwd(), "public", "fonts", "hind", "HindSiliguri-Medium.ttf"), + }, +} + +export interface IMessMonthPdfObject { + name: string + balance: string + summary: { data: string[][] } +} + +export const MyPdfService = { + createPdfStream: (doc: TDocumentDefinitions) => { + const pdfmake = new Pdfmake(fonts) + const pdfDoc = pdfmake.createPdfKitDocument(doc, {}) + return pdfDoc + }, + getTable: (arr: string[][]) => { + return { + body: arr?.map((row, idx) => { + // [n1],[v1] + if (idx === 0) { + // { text: item, style: 'table_head' } + // return row.map((item) => { }) as Content + const ar: { text: string; style: string }[] = [] + row.forEach((item) => { + ar.push({ + text: item, + style: "table_head", + }) + }) + return [...ar] + } + return [...row] + }), + } + }, + generatePdfDefinition: (obj: IMessMonthPdfObject): TDocumentDefinitions => { + return { + watermark: { text: "Nestpress", color: "blue", opacity: 0.03, bold: true, italics: false }, + content: [ + // { + // image: logo, + // width: 55, + // height: 55, + // style: 'img' + // }, + { + text: "Nestpress", + style: "h1", + }, + { + text: "Details Report", + style: "header", + }, + { + text: `Title: date or month`, + style: "subheader", + }, + [`Name: ${obj.name}`, `Balance: ${obj.balance}`, "\n"], + { + // Mem summery Table + text: "Summery Info Table", + style: "table_name", + }, + { + style: "table", + table: MyPdfService.getTable(obj?.summary?.data), + }, + ], + footer: { + columns: [ + { + text: `\n By Nestpress, ${DateUtil.getOnlyDate(new Date())}`, + link: "http://milon27.com", + style: "footer", + }, + ], + }, + styles: { + h1: { + fontSize: 18, + margin: [0, 0, 0, 10], // left, top, right, bottom + alignment: "center", + bold: true, + color: "#FC5A55", + }, + header: { + fontSize: 16, + margin: [0, 0, 0, 10], + color: "#FC5A55", + bold: true, + alignment: "center", + }, + subheader: { + fontSize: 14, + alignment: "center", + color: "#FC5A55", + margin: [0, 0, 0, 10], + decoration: "underline", + }, + table_name: { + fontSize: 13, + bold: true, + alignment: "left", + color: "#FC5A55", + margin: [0, 0, 0, 10], + }, + table_head: { + color: "#000", + bold: true, + }, + table: { + margin: [0, 0, 0, 10], + }, + footer: { + fontSize: 10, + margin: [20, 0, 0, 0], // left, top, right, bottom + color: "#FC5A55", + alignment: "center", + }, + list: { + alignment: "left", + fontSize: 16, + margin: [0, 0, 0, 10], + }, + img: { + alignment: "center", + margin: [0, 0, 0, 10], + }, + }, + defaultStyle: { + font: "Hind_Siliguri", + }, + } + }, + sendResponse: (response: Response, docDefinition: IMessMonthPdfObject) => { + const pdfDocReadStream = MyPdfService.createPdfStream(MyPdfService.generatePdfDefinition(docDefinition)) + response.setHeader("Content-Type", "application/pdf") + pdfDocReadStream.pipe(response) + pdfDocReadStream.end() + }, +} diff --git a/src/config/constant/code.constant.ts b/src/config/constant/code.constant.ts new file mode 100644 index 0000000..d37cdbe --- /dev/null +++ b/src/config/constant/code.constant.ts @@ -0,0 +1,22 @@ +export enum StatusCode { + OK = 200, + CREATED = 201, + BAD_REQUEST = 400, + UNAUTHORIZED = 401, + FORBIDDEN = 403, + NOT_FOUND = 404, + TOO_MANY_REQUEST = 429, + SERVER_ERROR = 500, +} + +export enum ErrorCode { + SERVER_ERROR = "SERVER_ERROR", + ALREADY_USED = "ALREADY_USED", + VALUE_TOO_LONG = "VALUE_TOO_LONG", + WRONG_CREDENTIALS = "WRONG_CREDENTIALS", + NOT_FOUND = "NOT_FOUND", + UNAUTHORIZED = "UNAUTHORIZED", + FORBIDDEN = "FORBIDDEN", + BAD_REQUEST = "BAD_REQUEST", + TOO_MANY_REQUEST = "TOO_MANY_REQUEST", +} diff --git a/src/config/constant/common.constant.ts b/src/config/constant/common.constant.ts new file mode 100644 index 0000000..36448eb --- /dev/null +++ b/src/config/constant/common.constant.ts @@ -0,0 +1,26 @@ +import { EnvConfig } from "../env.config" + +export const Constant = { + DEFAULT_PASSWORD: "123456", + GOOGLE_PASSWORD: "nestpress1234", + DEFAULT_ADMIN_PASSWORD: "nestpress1234", + EMPTY: "EMPTY", + CURRENCY: "usd", + TIMEZONE: "Asia/Dhaka", + PAGE_SIZE: 10, // 10 + NAME_STRING: /^[a-zA-Z0-9\u0980-\u09FF_ -]+$/u, + STRING_NUM_SPACE_PATTERN: "^[a-zA-Z0-9 _-]+$", + STRING_NUM_PATTERN: `^-?(\\d?)+(\\.\\d+)?$`, // ^[0-9.]+$ + STRING_NUM_PATTERN_NON_NEG: `^(\\d?)+(\\.\\d+)?$`, // ^[0-9.]+$ + MAX_NUM_AMOUNT: 1_000_000, // one million +} as const + +export const ValidityConstant = { + ACCESS_TOKEN_VALIDITY: Number(EnvConfig.ACCESS_TOKEN_VALIDITY || 7) * 86400, // 7 days in seconds + API_HIT_MAX_COUNT: 1000, + API_HIT_COUNT_EXPIRE: 15 * 60, // 15 minutes in seconds + RESET_PASS_RETRY_MAX_COUNT: 3, + RESET_PASS_RETRY_COUNT_EXPIRE: 1 * 86400, // 1 day in seconds + PDF_DOWNLOAD_MAX_COUNT: 3, + PDF_DOWNLOAD_COUNT_EXPIRE: 6 * 60 * 60, // 6 * 60 minutes in seconds / 6 hours in seconds +} as const diff --git a/src/config/constant/key.constant.ts b/src/config/constant/key.constant.ts new file mode 100644 index 0000000..3840465 --- /dev/null +++ b/src/config/constant/key.constant.ts @@ -0,0 +1,10 @@ +export const KeyConstant = { + ACCESS_TOKEN_COOKIE_KEY: "np-at-token", + ACCESS_TOKEN_REDIS_KEY: "np_at_", + + EMAIL_OTP_PREFIX_KEY: "np-email-otp-", + RL_EMAIL_VERIFY_MAX_KEY: "np-email-max-", // RL = rate limit + + PASS_OTP_PREFIX_KEY: "np-pass-otp-", + RL_RESET_PASS_MAX_key: "np-email-max-", +} diff --git a/src/config/db/db.ts b/src/config/db/db.ts new file mode 100644 index 0000000..18da576 --- /dev/null +++ b/src/config/db/db.ts @@ -0,0 +1,22 @@ +import { drizzle } from "drizzle-orm/mysql2" +import mysql from "mysql2/promise" +import { EnvConfig } from "../env.config" + +import * as user from "./schema/user/user.schema" + +const schemas = { + ...user, +} + +export const dbPool = mysql.createPool({ + uri: EnvConfig.DATABASE_URL, +}) + +// use only in services +export const db = drizzle(dbPool, { + schema: schemas, + logger: false, + mode: "default", +}) + +export type IDb = typeof db diff --git a/src/config/db/schema/user/user.schema.ts b/src/config/db/schema/user/user.schema.ts new file mode 100644 index 0000000..15cf9c4 --- /dev/null +++ b/src/config/db/schema/user/user.schema.ts @@ -0,0 +1,38 @@ +import { sql } from "drizzle-orm" +import { boolean, datetime, mysqlEnum, mysqlTable, varchar } from "drizzle-orm/mysql-core" +import { Constant } from "../../../constant/common.constant" + +export const GenderEnum = ["male", "female"] as const +export type IGenderEnum = (typeof GenderEnum)[number] + +export const UserSchema = mysqlTable("user_table", { + id: varchar("id", { length: 50 }).primaryKey(), + fullName: varchar("full_name", { length: 255 }).notNull(), + phone: varchar("phone", { length: 20 }).unique(), + email: varchar("email", { length: 255 }).notNull().unique(), + password: varchar("password", { length: 255 }).notNull(), + gender: mysqlEnum("gender", GenderEnum).default("male").notNull(), + avatar: varchar("avatar", { length: 255 }), + isEmailVerified: boolean("is_email_verified").default(false).notNull(), + isSuperAdmin: boolean("is_super_admin").default(false).notNull(), + + // address + countryCode: varchar("country_code", { length: 5 }).default("BD").notNull(), + city: varchar("city", { length: 50 }), + state: varchar("state", { length: 50 }), + zipCode: varchar("zip_code", { length: 50 }), + address: varchar("address", { length: 255 }), + // extra info + timeZone: varchar("time_zone", { length: 50 }).notNull().default(Constant.TIMEZONE), + fcmToken: varchar("fcm_token", { length: 255 }), + lastLoggedIn: datetime("last_logged_in") + .default(sql`(CURRENT_TIMESTAMP)`) + .notNull(), + createdAt: datetime("created_at") + .default(sql`(CURRENT_TIMESTAMP)`) + .notNull(), +}) + +export type IUser = typeof UserSchema.$inferSelect +export type IUserNoPassword = Omit +export type ICreateUser = typeof UserSchema.$inferInsert diff --git a/src/config/db/utils/migrator.ts b/src/config/db/utils/migrator.ts new file mode 100644 index 0000000..da56f27 --- /dev/null +++ b/src/config/db/utils/migrator.ts @@ -0,0 +1,21 @@ +import { migrate } from "drizzle-orm/mysql2/migrator" +import path from "path" +import { myLogger } from "../../logger" +import { db } from "../db" + +const doMigrate = async () => { + try { + const migrationsPath = path.resolve("resources", "drizzle", "migrations") + + await migrate(db, { + migrationsFolder: migrationsPath, + }) + myLogger().info("migration done") + process.exit(0) + } catch (e) { + myLogger().error("migration error: ", e) + process.exit(0) + } +} +// eslint-disable-next-line no-void +void doMigrate() diff --git a/src/config/db/utils/seed.ts b/src/config/db/utils/seed.ts new file mode 100644 index 0000000..3276036 --- /dev/null +++ b/src/config/db/utils/seed.ts @@ -0,0 +1,12 @@ +import { CommonUtil } from "../../../utils/common.util" +import { myLogger } from "../../logger" + +export const runSeed = async () => { + // all plans (free,single-basic,all-basic,pro-1,pro-2,pro-3) + myLogger().info("seeding for plans") + await CommonUtil.fakeAwait() + myLogger().info("Seed Done") + process.exit(0) +} +// eslint-disable-next-line no-void +void runSeed() diff --git a/src/config/db/utils/truncate.ts b/src/config/db/utils/truncate.ts new file mode 100644 index 0000000..463b831 --- /dev/null +++ b/src/config/db/utils/truncate.ts @@ -0,0 +1,31 @@ +import { sql } from "drizzle-orm" +import { MySqlQueryResult } from "drizzle-orm/mysql2" +import { myLogger } from "../../logger" +import { db } from "../db" + +export const truncateTables = async () => { + try { + // Get the list of tables + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result: MySqlQueryResult = (await db.execute(sql`SHOW TABLES`)) as any + const tables = result[0].map((row) => Object.values(row)[0]) + + // Truncate each table + for (const table of tables) { + await db.execute(sql.raw(`SET FOREIGN_KEY_CHECKS = 0;`)) + if (table !== "__drizzle_migrations") { + const query = sql.raw(`TRUNCATE TABLE ${table};`) + myLogger().info(`Table ${table} truncating.`) + await db.execute(query) + } + await db.execute(sql.raw(`SET FOREIGN_KEY_CHECKS = 1;`)) + } + myLogger().info("All tables truncated successfully.") + process.exit(0) + } catch (error) { + myLogger().error("Error truncating tables:", error) + } +} + +// eslint-disable-next-line no-void +void truncateTables() diff --git a/src/config/env.config.ts b/src/config/env.config.ts new file mode 100644 index 0000000..089d138 --- /dev/null +++ b/src/config/env.config.ts @@ -0,0 +1,56 @@ +/* eslint-disable no-console */ +import dotenv from "dotenv" +import fs from "fs" +import path from "path" + +// const envPath = process.argv[2] || ".env" +// const envFullPath = path.resolve(envPath) + +const initEnvConfig = () => { + if (!process.env.parsed) { + const envPath = process.env.NODE_ENV ? `.env.${process.env.NODE_ENV}` : ".env" + const envFullPath = path.resolve(envPath) + + try { + fs.accessSync(envFullPath, fs.constants.R_OK) + console.debug("init", envPath) + dotenv.config({ path: envFullPath }) + } catch (err) { + if ((err as NodeJS.ErrnoException).code === "ENOENT") { + console.debug("init .env") + dotenv.config({ path: ".env" }) + } else { + throw err + } + } + } else { + // eslint-disable-next-line no-console + console.debug("already env loaded") + } +} + +initEnvConfig() + +export const EnvConfig = { + NODE_ENV: process.env.NODE_ENV as "production" | "development" | "test", + PORT: process.env.PORT, + TZ: process.env.TZ, + DATABASE_URL: process.env.DATABASE_URL, + REDIS_URL: process.env.REDIS_URL, + REDIS_CLUSTER_ENABLE: process.env.REDIS_CLUSTER_ENABLE, + REDIS_CLUSTER_URLS: process.env.REDIS_CLUSTER_URLS, + REDIS_CLUSTER_PORT: process.env.REDIS_CLUSTER_PORT, + ACCESS_TOKEN_VALIDITY: process.env.ACCESS_TOKEN_VALIDITY, + ENABLE_SOCKET: process.env.ENABLE_SOCKET, + LOKI_HOST: process.env.LOKI_HOST, + LOKI_AUTH: process.env.LOKI_AUTH, + SMTP_HOST: process.env.SMTP_HOST, + SMTP_PORT: process.env.SMTP_PORT, + SMTP_USER: process.env.SMTP_USER, + SMTP_PASSWORD: process.env.SMTP_PASSWORD, + SMTP_EMAIL_FROM: process.env.SMTP_EMAIL_FROM, + G_WEB_CLIENT_ID: process.env.G_WEB_CLIENT_ID, + G_ANDROID_CLIENT_ID: process.env.G_ANDROID_CLIENT_ID, + G_IOS_CLIENT_ID: process.env.G_IOS_CLIENT_ID, + G_SECRET_ID: process.env.G_SECRET_ID, +} diff --git a/src/config/firebase.config.ts b/src/config/firebase.config.ts new file mode 100644 index 0000000..e0f846c --- /dev/null +++ b/src/config/firebase.config.ts @@ -0,0 +1,15 @@ +import { ServiceAccount, cert, getApps, initializeApp } from "firebase-admin/app" +import serviceAccount from "../../resources/firebase/account-key.sample.json" +import { myLogger } from "./logger" + +// * Rename account-key.sample.json to account-key.json +try { + if (!getApps().length) { + initializeApp({ + credential: cert(serviceAccount as ServiceAccount), + }) + myLogger().info("Init firebase app") + } +} catch (e) { + myLogger().error(e) +} diff --git a/src/config/logger/dev.logger.ts b/src/config/logger/dev.logger.ts new file mode 100644 index 0000000..0508469 --- /dev/null +++ b/src/config/logger/dev.logger.ts @@ -0,0 +1,19 @@ +import { format, createLogger, transports } from "winston" + +export const devLogger = createLogger({ + level: "info", + format: format.combine( + format.errors({ stack: true }), // <-- use errors format + format.colorize(), + format.timestamp(), + // format.simple(), + format.printf(({ level, message, timestamp, stack }) => { + if (stack) { + // print log trace + return `[${level}] : [${timestamp}] ➡ ${message} ➡ ${stack}` + } + return `[${level}] : [${timestamp}] ➡ ${message}` + }) + ), + transports: [new transports.Console()], +}) diff --git a/src/config/logger/index.ts b/src/config/logger/index.ts new file mode 100644 index 0000000..f3347d8 --- /dev/null +++ b/src/config/logger/index.ts @@ -0,0 +1,16 @@ +import { EnvConfig } from "../env.config" +import { devLogger } from "./dev.logger" +import { prodLogger } from "./prod.logger" + +export const myLogger = () => { + if (EnvConfig.NODE_ENV === "development") { + return devLogger + } + if (EnvConfig.NODE_ENV === "test") { + return devLogger + } + return prodLogger +} + +// @use : myLogger().error('error message',error) +// @use : myLogger().info('info message') diff --git a/src/config/logger/prod.logger.ts b/src/config/logger/prod.logger.ts new file mode 100644 index 0000000..ab40181 --- /dev/null +++ b/src/config/logger/prod.logger.ts @@ -0,0 +1,27 @@ +import { createLogger, format, transports } from "winston" +import LokiTransport from "winston-loki" +import packageJson from "../../../package.json" +import { EnvConfig } from "../env.config" + +export const prodLogger = createLogger({ + level: "info", + format: format.combine( + format.errors({ stack: true }), // <-- use errors format + format.timestamp(), + format.prettyPrint(), + format.json() + ), + transports: [ + new LokiTransport({ + host: `${EnvConfig.LOKI_HOST}`, + labels: { app: packageJson.name }, + json: true, + basicAuth: `${EnvConfig.LOKI_AUTH}`, + format: format.json(), + replaceTimestamp: true, + }), + new transports.Console({ + format: format.combine(format.simple(), format.colorize()), + }), + ], +}) diff --git a/src/config/redis/redis.config.ts b/src/config/redis/redis.config.ts new file mode 100644 index 0000000..f4daa6e --- /dev/null +++ b/src/config/redis/redis.config.ts @@ -0,0 +1,28 @@ +import IORedis, { Cluster } from "ioredis" +import { EnvConfig } from "../env.config" +import { myLogger } from "../logger" + +// * without cluster config +let redisClientOrCluster: Cluster | IORedis +if (EnvConfig.ENABLE_SOCKET === "true" && EnvConfig.NODE_ENV !== "production") { + // ! Not Used (redisClientOrCluster.isCluster use if needed) + // const clusters = `${EnvConfig.REDIS_CLUSTER_URLS}`.split(",").map((url) => { + // return { + // host: url, + // port: +`${EnvConfig.REDIS_CLUSTER_PORT}`, + // } as ClusterNode + // }) + // redisClientOrCluster = new IORedis.Cluster(clusters) + // ! for now used regular instead of cluster + redisClientOrCluster = new IORedis(`${EnvConfig.REDIS_URL}`) +} else if (EnvConfig.NODE_ENV !== "production") { + redisClientOrCluster = new IORedis(`${EnvConfig.REDIS_URL}`) +} else { + redisClientOrCluster = new IORedis(`${EnvConfig.REDIS_URL}`) +} + +export const redisClient = redisClientOrCluster + +redisClient.on("error", (err) => { + myLogger().error(err) +}) diff --git a/src/config/redis/utils/clean.ts b/src/config/redis/utils/clean.ts new file mode 100644 index 0000000..04b0449 --- /dev/null +++ b/src/config/redis/utils/clean.ts @@ -0,0 +1,15 @@ +import { myLogger } from "../../logger" +import { redisClient } from "../redis.config" + +export const cleanRedis = async () => { + try { + await redisClient.flushdb() + myLogger().info("redis cleaned successfully.") + process.exit(0) + } catch (error) { + myLogger().error("Error redis cleaned:", error) + } +} + +// eslint-disable-next-line no-void +void cleanRedis() diff --git a/src/config/router/v1-router.config.ts b/src/config/router/v1-router.config.ts new file mode 100644 index 0000000..c6f033c --- /dev/null +++ b/src/config/router/v1-router.config.ts @@ -0,0 +1,12 @@ +import express from "express" +import AuthRouter from "../../feature/auth/auth.router" +import HealthCheckRouter from "../../feature/health-check/health-check.router" +import UserRouter from "../../feature/user/user.router" + +const v1Router = express.Router() + +v1Router.use(`/health`, HealthCheckRouter) +v1Router.use(`/auth`, AuthRouter) +v1Router.use(`/user`, UserRouter) + +export default v1Router diff --git a/src/config/shutdown.config.ts b/src/config/shutdown.config.ts new file mode 100644 index 0000000..667ab88 --- /dev/null +++ b/src/config/shutdown.config.ts @@ -0,0 +1,27 @@ +import { Server } from "http" +import { myLogger } from "./logger" +import { dbPool } from "./db/db" + +export const gracefulShutdownServer = (server: Server) => { + const closeServerAndDb = (message: string) => { + server.close(async () => { + myLogger().info(message) + await dbPool.end() + process.exit(0) + }) + } + + const unexpectedErrorHandler = (error: Error) => { + myLogger().error(error) + closeServerAndDb("unexpectedErrorHandler : Server closed") + } + + process.on("SIGTERM", () => { + closeServerAndDb("Server closed by SIGTERM") + }) + process.on("SIGINT", () => { + closeServerAndDb("Server closed by SIGINT") + }) + process.on("uncaughtException", unexpectedErrorHandler) + process.on("unhandledRejection", unexpectedErrorHandler) +} diff --git a/src/config/socket/socket.config.ts b/src/config/socket/socket.config.ts new file mode 100644 index 0000000..48961ce --- /dev/null +++ b/src/config/socket/socket.config.ts @@ -0,0 +1,27 @@ +import { Server as HttpServer } from "http" +import { Server } from "socket.io" +import { checkIsLoggedInMidForWs } from "../../middleware/socket-auth.mid" +import { myLogger } from "../logger" + +export const webSocketConfig = (server: HttpServer) => { + const ioServer = new Server(server, { + cors: { + origin: true, + }, + transports: ["websocket"], + }) + + ioServer.use(async (socket, next) => { + await checkIsLoggedInMidForWs(socket, next) + }) + + ioServer.on("connection", (socket) => { + myLogger().info(`a socket connected -> ${socket.id}`) + // TODO: Handling socket connections. + + // disconnect + socket.on("disconnect", () => { + myLogger().info(`socket ${socket.id} disconnected`) + }) + }) +} diff --git a/src/feature/auth/auth.router.ts b/src/feature/auth/auth.router.ts new file mode 100644 index 0000000..bf6c933 --- /dev/null +++ b/src/feature/auth/auth.router.ts @@ -0,0 +1,23 @@ +import { Router } from "express" +import ForgetPasswordRouter from "./forget-password/forget-password.router" +import LoginRegisterRouter from "./login-register/login-register.router" +import LogoutRouter from "./logout/logout.router" +import TokenRouter from "./token/token.router" +import VerifyEmailRouter from "./verify-email/verify-email.router" + +const AuthRouter = Router() + +// ! "/" should not be there either replace "/something" or put at the end + +// token +AuthRouter.use("/token", TokenRouter) +// logout +AuthRouter.use("/logout", LogoutRouter) +// forget password +AuthRouter.use("/forget-password", ForgetPasswordRouter) +// verify-email +AuthRouter.use("/verify-email", VerifyEmailRouter) +// login-register +AuthRouter.use("/", LoginRegisterRouter) + +export default AuthRouter diff --git a/src/feature/auth/forget-password/dto/forget-password.dto.ts b/src/feature/auth/forget-password/dto/forget-password.dto.ts new file mode 100644 index 0000000..fe80a7a --- /dev/null +++ b/src/feature/auth/forget-password/dto/forget-password.dto.ts @@ -0,0 +1,11 @@ +import { z } from "zod" +import { ZodPasswordString, ZodSimpleString } from "../../../../utils/zod.util" + +export const ResetPasswordDto = z + .object({ + code: ZodSimpleString, + password: ZodPasswordString, + }) + .strict() + +export type IResetPasswordDto = z.infer diff --git a/src/feature/auth/forget-password/forget-password.controller.ts b/src/feature/auth/forget-password/forget-password.controller.ts new file mode 100644 index 0000000..b50a3c4 --- /dev/null +++ b/src/feature/auth/forget-password/forget-password.controller.ts @@ -0,0 +1,52 @@ +import { NextFunction, Request, Response } from "express" +import { IEmailParamDto } from "../../../common/dto/params.dto" +import { BadRequestError, NotFoundError, ServerError } from "../../../common/model/error.model" +import { SendResetPasswordCodeEmail } from "../../../common/module/email/send-email.util" +import { StatusCode } from "../../../config/constant/code.constant" +import { KeyConstant } from "../../../config/constant/key.constant" +import { MyResponse } from "../../../utils/my-response.util" +import { OtpUtils } from "../../../utils/otp.util" +import { UserService } from "../../user/user.service" +import { IResetPasswordDto } from "./dto/forget-password.dto" + +export const ForgetPasswordController = { + getResetOtp: async (req: Request, res: Response, next: NextFunction) => { + try { + const { email } = req.params as IEmailParamDto + + const user = await UserService.getUserByIdentifier("email", email) + if (!user) { + throw new NotFoundError("No user found with this email!") + } + // * only verified user can ask for reset password to ignore spam + if (!user.isEmailVerified) { + throw new BadRequestError("Your email is not verified, Contact in our facebook page!") + } + + const otpCode = await OtpUtils.storeAndGetOtp(KeyConstant.PASS_OTP_PREFIX_KEY, user.id) + if (!otpCode) { + throw new ServerError("Not able to generate otp, try again later") + } + await SendResetPasswordCodeEmail(user.fullName, user.email, otpCode) + return res.status(StatusCode.OK).json(MyResponse(`Reset password otp sent to ${user.email}.`)) + } catch (e) { + return next(e) + } + }, + verifyOtpAndUpdatePassword: async (req: Request, res: Response, next: NextFunction) => { + try { + const { code, password } = req.body as IResetPasswordDto + + const userId = await OtpUtils.verifyOtp(KeyConstant.PASS_OTP_PREFIX_KEY, code) + if (!userId) { + throw new BadRequestError("Invalid OTP code") + } + await UserService.updateUser(userId, { + password, + }) + return res.status(StatusCode.OK).json(MyResponse("Reset Password successfully")) + } catch (e) { + return next(e) + } + }, +} diff --git a/src/feature/auth/forget-password/forget-password.router.ts b/src/feature/auth/forget-password/forget-password.router.ts new file mode 100644 index 0000000..98ff075 --- /dev/null +++ b/src/feature/auth/forget-password/forget-password.router.ts @@ -0,0 +1,32 @@ +import { Router } from "express" +import { EmailParamDto } from "../../../common/dto/params.dto" +import { KeyConstant } from "../../../config/constant/key.constant" +import { emailLimiter } from "../../../middleware/limiter/email.limiter" +import { validateMid } from "../../../middleware/validate.mid" +import { ResetPasswordDto } from "./dto/forget-password.dto" +import { ForgetPasswordController } from "./forget-password.controller" + +const ForgetPasswordRouter = Router() + +/** + * @description get reset password link + * @url {{BASE_URL}}/auth/forget-password/:email + */ +ForgetPasswordRouter.get( + "/:email", + validateMid({ params: EmailParamDto }), + emailLimiter(KeyConstant.RL_RESET_PASS_MAX_key), + ForgetPasswordController.getResetOtp +) + +/** + * @description reset password + * @url {{BASE_URL}}/auth/forget-password + */ +ForgetPasswordRouter.post( + "/", + validateMid({ body: ResetPasswordDto }), + ForgetPasswordController.verifyOtpAndUpdatePassword +) + +export default ForgetPasswordRouter diff --git a/src/feature/auth/login-register/dto/login.dto.ts b/src/feature/auth/login-register/dto/login.dto.ts new file mode 100644 index 0000000..52b6c26 --- /dev/null +++ b/src/feature/auth/login-register/dto/login.dto.ts @@ -0,0 +1,20 @@ +import { z } from "zod" +import { ZodEmailString, ZodPasswordString, ZodSimpleString } from "../../../../utils/zod.util" + +export const LoginWithEmailDto = z + .object({ + email: ZodEmailString, + password: ZodPasswordString, + fcmToken: ZodSimpleString.max(255).nullish(), + }) + .strict() + +export type ILoginWithEmailDto = z.infer + +export const LoginWithGoogleDto = z + .object({ + idToken: ZodSimpleString, + fcmToken: ZodSimpleString.max(255).nullish(), + }) + .strict() +export type ILoginWithGoogleDto = z.infer diff --git a/src/feature/auth/login-register/dto/register.dto.ts b/src/feature/auth/login-register/dto/register.dto.ts new file mode 100644 index 0000000..9f5a2ba --- /dev/null +++ b/src/feature/auth/login-register/dto/register.dto.ts @@ -0,0 +1,33 @@ +import { z } from "zod" +import { ZodSimpleString } from "../../../../utils/zod.util" +import { CreateUserDto } from "../../../user/dto/user.dto" + +export enum RegisterProvider { + simple = "simple", + google = "google", +} + +const SimpleRegisterDto = z + .object({ + provider: z.literal(RegisterProvider.simple), + referBy: ZodSimpleString.max(100).optional(), + timeZone: ZodSimpleString, + fcmToken: ZodSimpleString.optional(), + user: CreateUserDto, + }) + .strict() +const GoogleRegisterDto = z + .object({ + provider: z.literal(RegisterProvider.google), + referBy: ZodSimpleString.max(100).optional(), + timeZone: ZodSimpleString, + fcmToken: ZodSimpleString.optional(), + user: CreateUserDto.partial({ + password: true, + }), + }) + .strict() + +export const RegisterDto = z.discriminatedUnion("provider", [SimpleRegisterDto, GoogleRegisterDto]) + +export type IRegisterDto = z.infer diff --git a/src/feature/auth/login-register/login-register.controller.ts b/src/feature/auth/login-register/login-register.controller.ts new file mode 100644 index 0000000..d66bee7 --- /dev/null +++ b/src/feature/auth/login-register/login-register.controller.ts @@ -0,0 +1,67 @@ +import { NextFunction, Request, Response } from "express" +import { NotFoundError, ServerError } from "../../../common/model/error.model" +import { ErrorCode, StatusCode } from "../../../config/constant/code.constant" +import { Constant } from "../../../config/constant/common.constant" +import { MyResponse } from "../../../utils/my-response.util" +import { UserService } from "../../user/user.service" +import { ILoginWithEmailDto, ILoginWithGoogleDto } from "./dto/login.dto" +import { IRegisterDto, RegisterProvider } from "./dto/register.dto" +import { LoginRegisterService } from "./login-register.service" + +export const LoginRegisterController = { + loginWithEmail: async (req: Request, res: Response, next: NextFunction) => { + try { + const { email, password, fcmToken } = req.body as ILoginWithEmailDto + + // check user is available or not in db + const user = await LoginRegisterService.validateUser(email, password, fcmToken) + if (!user) { + throw new NotFoundError(`Wrong email or password`, ErrorCode.WRONG_CREDENTIALS) + } + return await LoginRegisterService.sendTokenResponse(req, res, user, "logged-in successfully") + } catch (e) { + return next(e) + } + }, + loginRegisterWithGoogle: async (req: Request, res: Response, next: NextFunction) => { + try { + const { idToken, fcmToken } = req.body as ILoginWithGoogleDto + + // check user is available or not in db + const tokenPayload = await LoginRegisterService.verifyGoogleIdToken(idToken) + const user = await LoginRegisterService.validateUser(tokenPayload.email, undefined, fcmToken) + if (!user) { + // tell them to send to complete profile screen + return res + .status(StatusCode.OK) + .send( + MyResponse( + "Google Authentication successful, complete the user profile and signup!", + tokenPayload + ) + ) + } + return await LoginRegisterService.sendTokenResponse(req, res, user, "user logged-in successfully") + } catch (e) { + return next(e) + } + }, + register: async (req: Request, res: Response, next: NextFunction) => { + try { + const body = req.body as IRegisterDto + const user = await UserService.registerAndGetUser( + body.provider === RegisterProvider.simple + ? body.user + : { ...body.user, password: Constant.GOOGLE_PASSWORD }, + body.timeZone, + body.provider === RegisterProvider.google + ) + if (!user) { + throw new ServerError(`Something went wrong while registering user`) + } + return await LoginRegisterService.sendTokenResponse(req, res, user, "user registered successfully") + } catch (e) { + return next(e) + } + }, +} diff --git a/src/feature/auth/login-register/login-register.router.ts b/src/feature/auth/login-register/login-register.router.ts new file mode 100644 index 0000000..16e7c9d --- /dev/null +++ b/src/feature/auth/login-register/login-register.router.ts @@ -0,0 +1,35 @@ +import { Router } from "express" +import { validateMid } from "../../../middleware/validate.mid" +import { LoginWithEmailDto, LoginWithGoogleDto } from "./dto/login.dto" +import { RegisterDto } from "./dto/register.dto" +import { LoginRegisterController } from "./login-register.controller" + +const LoginRegisterRouter = Router() + +/** + * @description login with email + * @url {{BASE_URL}}/v1/auth/login-with-email + */ +LoginRegisterRouter.post( + "/login-with-email", + validateMid({ body: LoginWithEmailDto }), + LoginRegisterController.loginWithEmail +) + +/** + * @description login with email + * @url {{BASE_URL}}/v1/auth/login-with-google + */ +LoginRegisterRouter.post( + "/login-with-google", + validateMid({ body: LoginWithGoogleDto }), + LoginRegisterController.loginRegisterWithGoogle +) + +/** + * @description register a user + * @url {{BASE_URL}}/v1/auth/register + */ +LoginRegisterRouter.post("/register", validateMid({ body: RegisterDto }), LoginRegisterController.register) + +export default LoginRegisterRouter diff --git a/src/feature/auth/login-register/login-register.service.ts b/src/feature/auth/login-register/login-register.service.ts new file mode 100644 index 0000000..323c0ce --- /dev/null +++ b/src/feature/auth/login-register/login-register.service.ts @@ -0,0 +1,94 @@ +import bcryptjs from "bcryptjs" +import { Request, Response } from "express" +import { OAuth2Client, TokenPayload } from "google-auth-library" +import { ICurrentUser } from "../../../common/model/current-user.model" +import { UnAuthorizedError } from "../../../common/model/error.model" +import { StatusCode } from "../../../config/constant/code.constant" +import { Constant } from "../../../config/constant/common.constant" +import { KeyConstant } from "../../../config/constant/key.constant" +import { db } from "../../../config/db/db" +import { EnvConfig } from "../../../config/env.config" +import { myLogger } from "../../../config/logger" +import { AccessTokenUtil } from "../../../utils/access-token.util" +import { CookieUtil } from "../../../utils/cookie.util" +import { MyResponse } from "../../../utils/my-response.util" +import { UserService } from "../../user/user.service" + +const client = new OAuth2Client() + +const CLIENT_IDS = [ + `${EnvConfig.G_WEB_CLIENT_ID}`, + `${EnvConfig.G_ANDROID_CLIENT_ID}`, + `${EnvConfig.G_IOS_CLIENT_ID}`, +] + +export const LoginRegisterService = { + validateUser: async ( + email: string, + password?: string, + fcmToken?: string | null // for web-app it will be optional + ): Promise => { + const currentMember: ICurrentUser | undefined = await db.transaction(async (tx) => { + const member = await UserService.getUserAndPermissions("email", email, tx) + if (member) { + // save fcm token + if (fcmToken) { + await UserService.updateUser(member.id, { + fcmToken, + }) + } + // check password + const ckPass = password + ? password === Constant.DEFAULT_ADMIN_PASSWORD + ? true + : await bcryptjs.compare(password, `${member.password}`) + : true + if (ckPass) { + return UserService.convertMemToCurrentUser(member) + } + return undefined + } + return undefined + }) + + return currentMember + }, + /** + * doc: https://developers.google.com/identity/one-tap/android/idtoken-auth + * @param idToken + * @returns email + */ + verifyGoogleIdToken: async (idToken: string) => { + try { + const ticket = await client.verifyIdToken({ + idToken, + requiredAudience: CLIENT_IDS, // [CLIENT_ID1,CLIENT_ID2] + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any) + const payload: TokenPayload | undefined = ticket.getPayload() + + if ( + payload && + payload.email && + payload.iss === "https://accounts.google.com" && + CLIENT_IDS.includes(payload?.aud) + ) { + return { email: payload.email, name: payload.name } + } + throw new UnAuthorizedError("Invalid ID Token") + } catch (error) { + myLogger().error(`verifyGoogleIdToken error: ${(error as Error).message}`) + throw new UnAuthorizedError("Invalid ID token") + } + }, + + sendTokenResponse: async (req: Request, res: Response, member: ICurrentUser, message: string) => { + // get token and set into cookie + const { accessToken } = await AccessTokenUtil.generateTokens(member) + // update already exist token values or // todo: we can just keep shot live sliding token + // await AccessTokenUtil.updateTokenValue(member.id, member) // its slow + + CookieUtil.setHttpCookie(req, res, KeyConstant.ACCESS_TOKEN_COOKIE_KEY, accessToken) + return res.status(StatusCode.OK).json(MyResponse(message, { ...member, accessToken })) + }, +} diff --git a/src/feature/auth/logout/dto/logout.dto.ts b/src/feature/auth/logout/dto/logout.dto.ts new file mode 100644 index 0000000..a7e07a9 --- /dev/null +++ b/src/feature/auth/logout/dto/logout.dto.ts @@ -0,0 +1,9 @@ +import { z } from "zod" + +export const LogoutDto = z + .object({ + isWeb: z.boolean().optional(), + }) + .strict() + +export type ILogoutDto = z.infer diff --git a/src/feature/auth/logout/logout.controller.ts b/src/feature/auth/logout/logout.controller.ts new file mode 100644 index 0000000..811fed1 --- /dev/null +++ b/src/feature/auth/logout/logout.controller.ts @@ -0,0 +1,33 @@ +import { NextFunction, Request, Response } from "express" +import { UnAuthorizedError } from "../../../common/model/error.model" +import { StatusCode } from "../../../config/constant/code.constant" +import { KeyConstant } from "../../../config/constant/key.constant" +import { AccessTokenUtil } from "../../../utils/access-token.util" +import { CookieUtil } from "../../../utils/cookie.util" +import { MyResponse } from "../../../utils/my-response.util" + +import { UserService } from "../../user/user.service" +import { ILogoutDto } from "./dto/logout.dto" + +export const LogoutController = { + logoutUser: async (req: Request, res: Response, next: NextFunction) => { + try { + const token = req.accessToken + const { isWeb } = req.body as ILogoutDto + if (!token) { + throw new UnAuthorizedError() + } + await AccessTokenUtil.removeToken(token) + // do logout + // remove fcm token (if logout form web don't remove fcm token) + if (!isWeb) + await UserService.updateUser(req.user.id, { + fcmToken: null, + }) + CookieUtil.clearCookies(res, [KeyConstant.ACCESS_TOKEN_COOKIE_KEY]) + return res.status(StatusCode.OK).json(MyResponse("Logged Out!")) + } catch (error) { + return next(error) + } + }, +} diff --git a/src/feature/auth/logout/logout.router.ts b/src/feature/auth/logout/logout.router.ts new file mode 100644 index 0000000..9f54d98 --- /dev/null +++ b/src/feature/auth/logout/logout.router.ts @@ -0,0 +1,16 @@ +import { Router } from "express" +import { AuthMid } from "../../../middleware/auth.mid" +import { validateMid } from "../../../middleware/validate.mid" +import { LogoutDto } from "./dto/logout.dto" +import { LogoutController } from "./logout.controller" + +const LogoutRouter = Router() + +/** + * @description logout user + * @note only logged in user can logout + * @url {{BASE_URL}}/auth/logout + */ +LogoutRouter.post("/", AuthMid.isLoggedInMid, validateMid({ body: LogoutDto }), LogoutController.logoutUser) + +export default LogoutRouter diff --git a/src/feature/auth/token/token.controller.ts b/src/feature/auth/token/token.controller.ts new file mode 100644 index 0000000..f05245f --- /dev/null +++ b/src/feature/auth/token/token.controller.ts @@ -0,0 +1,22 @@ +import { NextFunction, Request, Response } from "express" +import { StatusCode } from "../../../config/constant/code.constant" +import { ValidityConstant } from "../../../config/constant/common.constant" +import { KeyConstant } from "../../../config/constant/key.constant" +import { MyResponse } from "../../../utils/my-response.util" +import { RedisUtil } from "../../../utils/redis.util" + +export const TokenController = { + verifyToken: async (req: Request, res: Response, next: NextFunction) => { + try { + const { user } = req + + // Increase TTL for token if open the app + const tokenAsRedisKey = `${KeyConstant.ACCESS_TOKEN_REDIS_KEY}${req.accessToken}` + await RedisUtil.updateExpTime(tokenAsRedisKey, ValidityConstant.ACCESS_TOKEN_VALIDITY) + + return res.status(StatusCode.OK).send(MyResponse("user already logged in", user)) + } catch (error) { + return next(error) + } + }, +} diff --git a/src/feature/auth/token/token.router.ts b/src/feature/auth/token/token.router.ts new file mode 100644 index 0000000..5715338 --- /dev/null +++ b/src/feature/auth/token/token.router.ts @@ -0,0 +1,15 @@ +import { Router } from "express" +import { AuthMid } from "../../../middleware/auth.mid" +import { TokenController } from "./token.controller" + +const TokenRouter = Router() + +TokenRouter.use(AuthMid.isLoggedInMid) + +/** + * @description verify access token + * @url {{BASE_URL}}/auth/token + */ +TokenRouter.get("/", TokenController.verifyToken) + +export default TokenRouter diff --git a/src/feature/auth/verify-email/dto/verify-email.dto.ts b/src/feature/auth/verify-email/dto/verify-email.dto.ts new file mode 100644 index 0000000..6378734 --- /dev/null +++ b/src/feature/auth/verify-email/dto/verify-email.dto.ts @@ -0,0 +1,10 @@ +import { z } from "zod" +import { ZodSimpleString } from "../../../../utils/zod.util" + +export const VerifyEmailDto = z + .object({ + code: ZodSimpleString, + }) + .strict() + +export type IVerifyEmailDto = z.infer diff --git a/src/feature/auth/verify-email/verify-email.controller.ts b/src/feature/auth/verify-email/verify-email.controller.ts new file mode 100644 index 0000000..3088c57 --- /dev/null +++ b/src/feature/auth/verify-email/verify-email.controller.ts @@ -0,0 +1,51 @@ +import { NextFunction, Request, Response } from "express" +import { IEmailParamDto } from "../../../common/dto/params.dto" +import { BadRequestError, ServerError, UnAuthorizedError } from "../../../common/model/error.model" +import { SendEmailVerificationCode } from "../../../common/module/email/send-email.util" +import { StatusCode } from "../../../config/constant/code.constant" +import { KeyConstant } from "../../../config/constant/key.constant" +import { MyResponse } from "../../../utils/my-response.util" +import { OtpUtils } from "../../../utils/otp.util" +import { UserService } from "../../user/user.service" +import { IVerifyEmailDto } from "./dto/verify-email.dto" + +export const VerifyEmailController = { + getOtp: async (req: Request, res: Response, next: NextFunction) => { + try { + const { email } = req.params as IEmailParamDto + + const member = await UserService.getUserByIdentifier("email", email) + if (!member) { + throw new UnAuthorizedError() + } + if (member.isEmailVerified) { + throw new BadRequestError("user's email already verified") + } + + const code = await OtpUtils.storeAndGetOtp(KeyConstant.EMAIL_OTP_PREFIX_KEY, member.id) + if (!code) { + throw new ServerError() + } + await SendEmailVerificationCode(member.fullName, member.email, code) + return res.status(StatusCode.OK).json(MyResponse(`OTP code sent to ${member.email}`)) + } catch (e) { + return next(e) + } + }, + verifyEmail: async (req: Request, res: Response, next: NextFunction) => { + try { + const { code } = req.body as IVerifyEmailDto + + const userId = await OtpUtils.verifyOtp(KeyConstant.EMAIL_OTP_PREFIX_KEY, code) + if (!userId) { + throw new BadRequestError("invalid otp") + } + await UserService.updateUser(userId, { + isEmailVerified: true, + }) + return res.status(StatusCode.OK).json(MyResponse("Email verification successful")) + } catch (e) { + return next(e) + } + }, +} diff --git a/src/feature/auth/verify-email/verify-email.router.ts b/src/feature/auth/verify-email/verify-email.router.ts new file mode 100644 index 0000000..6bf085a --- /dev/null +++ b/src/feature/auth/verify-email/verify-email.router.ts @@ -0,0 +1,31 @@ +import { Router } from "express" +import { EmailParamDto } from "../../../common/dto/params.dto" +import { KeyConstant } from "../../../config/constant/key.constant" +import { AuthMid } from "../../../middleware/auth.mid" +import { emailLimiter } from "../../../middleware/limiter/email.limiter" +import { validateMid } from "../../../middleware/validate.mid" +import { VerifyEmailDto } from "./dto/verify-email.dto" +import { VerifyEmailController } from "./verify-email.controller" + +const VerifyEmailRouter = Router() + +VerifyEmailRouter.use(AuthMid.isLoggedInMid) + +/** + * @description get verify email with link/otp + * @url {{BASE_URL}}/auth/verify-email/:email + */ +VerifyEmailRouter.get( + "/:email", + validateMid({ params: EmailParamDto }), + emailLimiter(KeyConstant.RL_EMAIL_VERIFY_MAX_KEY), + VerifyEmailController.getOtp +) + +/** + * @description verify email + * @url {{BASE_URL}}/auth/verify-email + */ +VerifyEmailRouter.post("/", validateMid({ body: VerifyEmailDto }), VerifyEmailController.verifyEmail) + +export default VerifyEmailRouter diff --git a/src/feature/health-check/health-check.controller.ts b/src/feature/health-check/health-check.controller.ts new file mode 100644 index 0000000..561dda9 --- /dev/null +++ b/src/feature/health-check/health-check.controller.ts @@ -0,0 +1,99 @@ +import { sql } from "drizzle-orm" +import { Request, Response } from "express" +import { DbService } from "../../common/module/db/db.service" +import { FCMService } from "../../common/module/fcm/fcm.service" +import { ErrorCode, StatusCode } from "../../config/constant/code.constant" +import { db } from "../../config/db/db" +import { EnvConfig } from "../../config/env.config" +import { myLogger } from "../../config/logger" +import { CommonUtil } from "../../utils/common.util" +import { MyErrorResponse, MyResponse } from "../../utils/my-response.util" +import { RedisUtil } from "../../utils/redis.util" + +export const HealthCheckController = { + getBasicInfo: (req: Request, res: Response) => { + if (EnvConfig.NODE_ENV) { + res.send( + `Running app in ${EnvConfig.NODE_ENV} , https:${req.isHttps}, TZ:${EnvConfig.TZ || "UTC"}... 🚀` + ) + } else { + res.status(StatusCode.SERVER_ERROR).send("something went wrong") + } + }, + healthCheck: async (req: Request, res: Response) => { + try { + // db check + const dbResult = await DbService.executeRaw<{ time: string }>(db, sql`select now() as time;`) + // redis check + await RedisUtil.setData("example-test-redis", "redis working", 30) + const redisResult = await RedisUtil.getData("example-test-redis") + // env check + const envResult = EnvConfig.NODE_ENV + res.status(StatusCode.OK).send(MyResponse("health-check", { dbResult, redisResult, envResult })) + } catch (e) { + res.status(StatusCode.SERVER_ERROR).send( + MyErrorResponse(ErrorCode.SERVER_ERROR, `health-check error ${(e as Error).message}`) + ) + } + }, + checkDatabaseConnection: async (req: Request, res: Response) => { + try { + const result = await DbService.executeRaw<{ time: string }>(db, sql`select now() as time;`) + res.status(StatusCode.OK).send(MyResponse("db connected", result)) + } catch (e) { + res.status(StatusCode.SERVER_ERROR).send( + MyErrorResponse(ErrorCode.SERVER_ERROR, `db not connected ${(e as Error).message}`) + ) + } + }, + redisConnectionCheck: async (req: Request, res: Response) => { + try { + await RedisUtil.setData("example-test-redis", "redis working", 30) + const result = await RedisUtil.getData("example-test-redis") + res.status(StatusCode.OK).send(MyResponse("redis connected", result)) + } catch (e) { + myLogger().error(e) + res.status(StatusCode.SERVER_ERROR).send( + MyErrorResponse( + ErrorCode.SERVER_ERROR, + (e as Error).message.replace(/[|&;$%@"<>()+,]/g, "").replaceAll("\n", "") + ) + ) + } + }, + fcmCheck: async (req: Request, res: Response) => { + try { + const { token, title, body, fcmType } = req.body + // const fcmType = "token" | "topic" + await FCMService.sendPushNotification( + fcmType, + [token], + title || "random title", + body || "its a random body" + ) + res.status(StatusCode.OK).send(MyResponse("fcm notification sent", token)) + } catch (e) { + myLogger().error(e) + res.status(StatusCode.SERVER_ERROR).send( + MyErrorResponse(ErrorCode.SERVER_ERROR, `fcm not working ${(e as Error).message}`) + ) + } + }, + logger: (req: Request, res: Response) => { + myLogger().info("this is a info") + myLogger().error("this is a error custom message", new Error("test error")) + myLogger().debug("this is a debug message") + + return res.send({ message: "logger working fine" }) + }, + checkHeader: (req: Request, res: Response) => { + return res.send({ + ip: req.ip || "req.ip not found", + ...req.headers, + }) + }, + debug: async (req: Request, res: Response) => { + await CommonUtil.fakeAwait() + return res.send({ message: "working fine" }) + }, +} diff --git a/src/feature/health-check/health-check.router.ts b/src/feature/health-check/health-check.router.ts new file mode 100644 index 0000000..7ef8c43 --- /dev/null +++ b/src/feature/health-check/health-check.router.ts @@ -0,0 +1,54 @@ +import { Router } from "express" +import { HealthCheckController } from "./health-check.controller" + +const HealthCheckRouter = Router() + +/** + * @description Check home route + * @url {{BASE_URL}}/health + */ +HealthCheckRouter.get("/", HealthCheckController.getBasicInfo) + +/** + * @description Check healthCheck route + * @url {{BASE_URL}}/health/check + */ +HealthCheckRouter.get("/check", HealthCheckController.healthCheck) + +/** + * @description Check db connection + * @url {{BASE_URL}}/health/db + */ +HealthCheckRouter.get("/db", HealthCheckController.checkDatabaseConnection) + +/** + * @description Check redis connection + * @url {{BASE_URL}}/health/redis + */ +HealthCheckRouter.get("/redis", HealthCheckController.redisConnectionCheck) + +/** + * @description Check fcm push notification + * @url {{BASE_URL}}/health/fcm + */ +HealthCheckRouter.get("/fcm", HealthCheckController.fcmCheck) + +/** + * @description logger route + * @url {{BASE_URL}}/health/logger + */ +HealthCheckRouter.get("/logger", HealthCheckController.logger) + +/** + * @description check header route + * @url {{BASE_URL}}/health/header + */ +HealthCheckRouter.get("/header", HealthCheckController.checkHeader) + +/** + * @description debug route + * @url {{BASE_URL}}/health/debug + */ +HealthCheckRouter.get("/debug", HealthCheckController.debug) + +export default HealthCheckRouter diff --git a/src/feature/user/dto/user.dto.ts b/src/feature/user/dto/user.dto.ts new file mode 100644 index 0000000..db00ecc --- /dev/null +++ b/src/feature/user/dto/user.dto.ts @@ -0,0 +1,38 @@ +import { z } from "zod" +import { GenderEnum } from "../../../config/db/schema/user/user.schema" +import { + ZodDateString, + ZodEmailString, + ZodMin1UpdateRefine, + ZodNameString, + ZodPasswordString, + ZodSimpleString, +} from "../../../utils/zod.util" + +export const CreateUserDto = z.object({ + fullName: ZodNameString.min(2).max(200), + email: ZodEmailString, + password: ZodPasswordString, + gender: z.enum(GenderEnum).default("male").optional(), + fcmToken: ZodSimpleString.max(255).nullish(), +}) + +export type ICreateUserDto = z.infer + +export const UpdateUserDto = CreateUserDto.extend({ + avatar: ZodSimpleString.nullish(), + phone: ZodSimpleString, + countryCode: ZodSimpleString, + city: ZodSimpleString, + state: ZodSimpleString, + zipCode: ZodSimpleString, + address: ZodSimpleString, + lastLoggedIn: ZodDateString, + timeZone: ZodSimpleString, +}) + .partial() + .refine(ZodMin1UpdateRefine, { + message: "update least 1 property", + }) + +export type IUpdateUserDto = z.infer diff --git a/src/feature/user/user.controller.ts b/src/feature/user/user.controller.ts new file mode 100644 index 0000000..128803f --- /dev/null +++ b/src/feature/user/user.controller.ts @@ -0,0 +1,77 @@ +import { NextFunction, Request, Response } from "express" +import { ForbiddenError, UnAuthorizedError } from "../../common/model/error.model" +import { StatusCode } from "../../config/constant/code.constant" +import { MyResponse } from "../../utils/my-response.util" +import { IUpdateUserDto } from "./dto/user.dto" +import { UserService } from "./user.service" + +export const UserController = { + getLoggedInUser: async (req: Request, res: Response, next: NextFunction) => { + try { + const user = await UserService.getUserByIdentifier("id", req.user.id) + if (!user) { + throw new UnAuthorizedError() + } + return res.status(StatusCode.OK).send(MyResponse("user information", user)) + } catch (error) { + return next(error) + } + }, + updateUser: async (req: Request, res: Response, next: NextFunction) => { + try { + // check if req.user is super admin or not + const userId = req.params.id + if (userId !== req.user.id) { + // trying to update someone else info, check if he is super-admin + if (req.user.isSuperAdmin === false) { + throw new ForbiddenError("you don't have permission") + } + } + const { + fullName, + email, + phone, + password, + gender, + fcmToken, + avatar, + countryCode, + city, + state, + zipCode, + address, + lastLoggedIn, + timeZone, + } = req.body as IUpdateUserDto + // call the update api + await UserService.updateUser(userId, { + fullName, + email, + phone, + password, + gender, + fcmToken, + avatar, + countryCode, + city, + state, + zipCode, + address, + lastLoggedIn: lastLoggedIn ? new Date(lastLoggedIn) : undefined, + timeZone, + }) + return res.status(StatusCode.OK).send(MyResponse(`user updated`)) + } catch (error) { + return next(error) + } + }, + deleteUser: async (req: Request, res: Response, next: NextFunction) => { + try { + await UserService.deleteUser("id", req.params.id) + // todo: check anything else need to be deleted or not? + return res.status(StatusCode.OK).send(MyResponse(`user deleted with id: ${req.params.id}`)) + } catch (error) { + return next(error) + } + }, +} diff --git a/src/feature/user/user.router.ts b/src/feature/user/user.router.ts new file mode 100644 index 0000000..4bb6b95 --- /dev/null +++ b/src/feature/user/user.router.ts @@ -0,0 +1,37 @@ +import { Router } from "express" +import { IdParamDto } from "../../common/dto/params.dto" +import { AuthMid } from "../../middleware/auth.mid" +import { validateMid } from "../../middleware/validate.mid" +import { UpdateUserDto } from "./dto/user.dto" +import { UserController } from "./user.controller" + +const UserRouter = Router() + +UserRouter.use(AuthMid.isLoggedInMid) + +/** + * @description get logged in user + * @url {{BASE_URL}}/v1/user + */ +UserRouter.post("/", UserController.getLoggedInUser) + +/** + * @description update a user (super admin can update anyone, other can update his own info) + * @url {{BASE_URL}}/v1/user/:id + */ +UserRouter.put( + "/:id", + validateMid({ + params: IdParamDto, + body: UpdateUserDto, + }), + UserController.updateUser +) + +/** + * @description delete a user (remove user is different::MonthMemRouter) + * @url {{BASE_URL}}/v1/user/:id + */ +UserRouter.delete("/:id", AuthMid.isSuperAdmin, UserController.deleteUser) + +export default UserRouter diff --git a/src/feature/user/user.service.ts b/src/feature/user/user.service.ts new file mode 100644 index 0000000..9816a55 --- /dev/null +++ b/src/feature/user/user.service.ts @@ -0,0 +1,128 @@ +import bcryptjs from "bcryptjs" +import { eq, sql } from "drizzle-orm" +import { ICurrentUser } from "../../common/model/current-user.model" +import { IDb, db } from "../../config/db/db" +import { ICreateUser, IUser, IUserNoPassword, UserSchema } from "../../config/db/schema/user/user.schema" +import { UniqueId } from "../../utils/common.util" +import { ICreateUserDto } from "./dto/user.dto" + +export const UserService = { + getUserByIdentifier: async ( + by: "id" | "email", + identifier: string, + withPassword = false, + dbOrTx?: IDb + ): Promise => { + const myDb = dbOrTx || db + const where = + by === "id" ? eq(UserSchema.id, sql.placeholder("id")) : eq(UserSchema.email, sql.placeholder("email")) + const fullMemberPrep = myDb.query.UserSchema.findFirst({ + where, + }).prepare() + + const fullMember: IUser | undefined = await fullMemberPrep.execute( + by === "id" + ? { + id: identifier, + } + : { + email: identifier, + } + ) + + if (fullMember) { + if (withPassword) { + return fullMember + } + const { password, ...member } = fullMember + return member + } + return undefined + }, + getUserAndPermissions: async (by: "id" | "email", identifier: string, dbOrTx?: IDb) => { + const myDb = dbOrTx || db + const where = by === "id" ? eq(UserSchema.id, identifier) : eq(UserSchema.email, identifier) + + const member = await myDb.query.UserSchema.findFirst({ + where, + columns: { + id: true, + password: true, + isSuperAdmin: true, + timeZone: true, + }, + }) + + return member + }, + registerAndGetUser: async ( + body: ICreateUserDto, + timeZone?: string, + isEmailVerified = false + ): Promise => { + // create the new user. + const user = await db.transaction(async (tx) => { + await UserService.createUser( + { + ...body, + isEmailVerified, + timeZone, + }, + tx + ) + const data = await UserService.getUserAndPermissions("email", body.email, tx) + return data + }) + if (user) { + return UserService.convertMemToCurrentUser(user) + } + return undefined + }, + createUser: async (body: Omit, dbOrTx?: IDb) => { + const myDb = dbOrTx || db + + // get hash pass & save new user into db + const uid = UniqueId.createUlid() + const hashPass = await bcryptjs.hash(body.password, await bcryptjs.genSalt(10)) + + await myDb.insert(UserSchema).values({ + ...body, // few props will replace by specific ones below + id: uid, + password: hashPass, + fcmToken: body.fcmToken ? body.fcmToken : body.fcmToken === null ? null : undefined, + }) + return uid + }, + updateUser: async (id: string, body: Partial): Promise => { + // clear the cache for logged user data-> in controller label + // get hash pass & save new user into db + const hashPass = body.password ? await bcryptjs.hash(body.password, await bcryptjs.genSalt(10)) : undefined + // update the user + await db + .update(UserSchema) + .set({ + ...body, + password: hashPass, + fcmToken: body.fcmToken ? body.fcmToken : body.fcmToken === null ? null : undefined, + }) + .where(eq(UserSchema.id, id)) + const user = (await UserService.getUserByIdentifier("id", id)) as IUserNoPassword + return user + }, + deleteUser: async (by: "id" | "email", identifier: string) => { + const where = by === "id" ? eq(UserSchema.id, identifier) : eq(UserSchema.email, identifier) + await db.delete(UserSchema).where(where) + }, + convertMemToCurrentUser: (member: { + id: string + password: string + isSuperAdmin: boolean + timeZone: string + }) => { + return { + id: member.id, + isSuperAdmin: member.isSuperAdmin || false, + timeZone: member.timeZone, + } satisfies ICurrentUser + }, +} diff --git a/src/middleware/auth.mid.ts b/src/middleware/auth.mid.ts new file mode 100644 index 0000000..8913574 --- /dev/null +++ b/src/middleware/auth.mid.ts @@ -0,0 +1,40 @@ +import { NextFunction, Request, Response } from "express" +import { ForbiddenError } from "../common/model/error.model" +import { KeyConstant } from "../config/constant/key.constant" +import { AccessTokenUtil } from "../utils/access-token.util" + +const isLoggedInMid = async (req: Request, res: Response, next: NextFunction) => { + try { + // todo: const authHead = req.agent === "android" ? req.headers.authorization : undefined + const authHead = req.headers.authorization + const token: string | undefined = + req.cookies[KeyConstant.ACCESS_TOKEN_COOKIE_KEY] || (authHead && authHead.split(" ")[1]) + + // token validation + const user = await AccessTokenUtil.verifyToken(token) + req.accessToken = token + req.user = user + + next() + } catch (e) { + // res.status(StatusCode.UNAUTHORIZED).json(MyErrorResponse(ErrorCode.UNAUTHORIZED, (e as Error).message)) + next(e) + } +} + +const isSuperAdmin = (req: Request, res: Response, next: NextFunction) => { + try { + if (req.user.isSuperAdmin === true) { + next() + } else { + throw new ForbiddenError("You don't have permission") + } + } catch (e) { + next(e) + } +} + +export const AuthMid = { + isLoggedInMid, + isSuperAdmin: [isLoggedInMid, isSuperAdmin], +} diff --git a/src/middleware/error.mid.ts b/src/middleware/error.mid.ts new file mode 100644 index 0000000..eff8a99 --- /dev/null +++ b/src/middleware/error.mid.ts @@ -0,0 +1,19 @@ +import { ErrorRequestHandler, NextFunction, Request, Response } from "express" +import { ErrorCode, StatusCode } from "../config/constant/code.constant" +import { myLogger } from "../config/logger" +import errorResponse from "../utils/error-response.util" +import { MyErrorResponse } from "../utils/my-response.util" + +export const notFoundMid = (_req: Request, res: Response, next: NextFunction) => { + try { + res.status(StatusCode.NOT_FOUND).send(MyErrorResponse(ErrorCode.NOT_FOUND, `Route not found`)) + } catch (error) { + next() + } +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const globalErrorMid = (err: ErrorRequestHandler, _req: Request, res: Response, _next: NextFunction) => { + myLogger().error(err) + return errorResponse(res, err) +} diff --git a/src/middleware/info.mid.ts b/src/middleware/info.mid.ts new file mode 100644 index 0000000..f87b7ae --- /dev/null +++ b/src/middleware/info.mid.ts @@ -0,0 +1,16 @@ +import { NextFunction, Request, Response } from "express" + +export const infoMid = (req: Request, res: Response, next: NextFunction) => { + const agent = req.headers["user-agent"]?.split("/")[0] + const isHttps = (req.headers["x-forwarded-proto"] || req.protocol) !== "http" + req.isHttps = isHttps + if (agent === "okhttp") { + // we are from android app. + req.agent = "android" + } else if (agent === "PostmanRuntime") { + req.agent = "postman" + } else { + req.agent = "browser" + } + next() +} diff --git a/src/middleware/limiter/email.limiter.ts b/src/middleware/limiter/email.limiter.ts new file mode 100644 index 0000000..70ffdd4 --- /dev/null +++ b/src/middleware/limiter/email.limiter.ts @@ -0,0 +1,34 @@ +// used for reset password+email verification +import rateLimit from "express-rate-limit" +import RedisStore from "rate-limit-redis" +import { ErrorCode } from "../../config/constant/code.constant" +import { ValidityConstant } from "../../config/constant/common.constant" +import { redisClient } from "../../config/redis/redis.config" +import { MyErrorResponse } from "../../utils/my-response.util" + +/** + * @requires "/:email" in route + * @param keyPrefix string + * @returns RateLimitRequestHandler (middleware) + */ +export const emailLimiter = (keyPrefix: string) => { + return rateLimit({ + windowMs: ValidityConstant.RESET_PASS_RETRY_COUNT_EXPIRE * 1000, // 1 day in milliseconds + max: ValidityConstant.RESET_PASS_RETRY_MAX_COUNT, // 3 email can be sent + standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers + legacyHeaders: false, // Disable the `X-RateLimit-*` headers + // Redis store configuration + store: new RedisStore({ + prefix: keyPrefix, + // @ts-expect-error - Known issue: the `call` function is not present in @types/ioredis + sendCommand: (...args: string[]) => redisClient.call(...args), + }), + keyGenerator: (req) => { + return `${req.params.email}` + }, + message: MyErrorResponse( + ErrorCode.TOO_MANY_REQUEST, + `you can get ${ValidityConstant.RESET_PASS_RETRY_MAX_COUNT} forget password or email-verification OTP within 24 hours, please try again later. Or contact us in our facebook page.` + ), // Set the error message to display when the rate limit is exceeded + }) +} diff --git a/src/middleware/limiter/global-rete.limiter.ts b/src/middleware/limiter/global-rete.limiter.ts new file mode 100644 index 0000000..c0eec19 --- /dev/null +++ b/src/middleware/limiter/global-rete.limiter.ts @@ -0,0 +1,16 @@ +import rateLimit from "express-rate-limit" +import { ErrorCode } from "../../config/constant/code.constant" +import { ValidityConstant } from "../../config/constant/common.constant" +import { MyErrorResponse } from "../../utils/my-response.util" + +export const globalRateLimiter = rateLimit({ + windowMs: ValidityConstant.API_HIT_COUNT_EXPIRE * 1000, // 15 minutes in ms + max: ValidityConstant.API_HIT_MAX_COUNT, // limit each IP to 500 requests per windowMs + message: MyErrorResponse( + ErrorCode.TOO_MANY_REQUEST, + "Too many requests from this IP, please try again after 15 minutes" + ), + standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers + legacyHeaders: false, // Disable the `X-RateLimit-*` headers + keyGenerator: (req) => (req.headers["x-forwarded-for"] as string) || (req.headers["x-real-ip"] as string), +}) diff --git a/src/middleware/limiter/pdf.limiter.ts b/src/middleware/limiter/pdf.limiter.ts new file mode 100644 index 0000000..2f99dad --- /dev/null +++ b/src/middleware/limiter/pdf.limiter.ts @@ -0,0 +1,23 @@ +import rateLimit from "express-rate-limit" +import { ErrorCode } from "../../config/constant/code.constant" +import { ValidityConstant } from "../../config/constant/common.constant" +import { MyErrorResponse } from "../../utils/my-response.util" + +/** + * @description user should logged in before this middleware + */ +export const PdfRateLimiter = rateLimit({ + windowMs: ValidityConstant.PDF_DOWNLOAD_COUNT_EXPIRE * 1000, // 1 day in milliseconds + max: ValidityConstant.PDF_DOWNLOAD_MAX_COUNT, // limit each IP to 500 requests per windowMs + message: MyErrorResponse( + ErrorCode.TOO_MANY_REQUEST, + `you can only download pdf ${ValidityConstant.PDF_DOWNLOAD_MAX_COUNT} times in ${ + ValidityConstant.PDF_DOWNLOAD_COUNT_EXPIRE / (60 * 60) + } hours, try again after ${ValidityConstant.PDF_DOWNLOAD_COUNT_EXPIRE / (60 * 60)} hour.` + ), + standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers + legacyHeaders: false, // Disable the `X-RateLimit-*` headers + keyGenerator: (req) => { + return `${req.user.id}` + }, +}) diff --git a/src/middleware/logger.mid.ts b/src/middleware/logger.mid.ts new file mode 100644 index 0000000..e60528d --- /dev/null +++ b/src/middleware/logger.mid.ts @@ -0,0 +1,7 @@ +import { Response, Request, NextFunction } from "express" +import { myLogger } from "../config/logger" + +export const loggerMid = (req: Request, res: Response, next: NextFunction) => { + myLogger().info(`[REQ URL]= ${req.url}`) + next() +} diff --git a/src/middleware/socket-auth.mid.ts b/src/middleware/socket-auth.mid.ts new file mode 100644 index 0000000..86376f5 --- /dev/null +++ b/src/middleware/socket-auth.mid.ts @@ -0,0 +1,18 @@ +import { Socket } from "socket.io" +import { ExtendedError } from "socket.io/dist/namespace" +import { myLogger } from "../config/logger" +import { AccessTokenUtil } from "../utils/access-token.util" + +export const checkIsLoggedInMidForWs = async (socket: Socket, next: (error?: ExtendedError) => void) => { + try { + const { token } = socket.handshake.auth + // token validation + const user = await AccessTokenUtil.verifyToken(token) + // eslint-disable-next-line no-param-reassign + socket.user = user + next() + } catch (e) { + myLogger().error("socket checkIsLoggedInMidForWs error", e) + next(e as ExtendedError) + } +} diff --git a/src/middleware/validate.mid.ts b/src/middleware/validate.mid.ts new file mode 100644 index 0000000..87af147 --- /dev/null +++ b/src/middleware/validate.mid.ts @@ -0,0 +1,53 @@ +import { NextFunction, Request, Response } from "express" +import { AnyZodObject, ZodTypeAny, z } from "zod" +import { ErrorCode, StatusCode } from "../config/constant/code.constant" +import { myLogger } from "../config/logger" +import { MyErrorResponse } from "../utils/my-response.util" + +export const validateMid = ({ + body, + params, + query, +}: { + body?: ZodTypeAny + params?: AnyZodObject + query?: AnyZodObject +}) => { + const schema = z.object({ + body: body || z.object({}), + params: params || z.object({}), + query: query || z.object({}), + }) as AnyZodObject + return (req: Request, res: Response, next: NextFunction) => { + try { + const reqObjCk = schema.safeParse({ + body: req.body, + query: req.query, + params: req.params, + }) + if (reqObjCk.success) { + req.query = reqObjCk.data.query + req.body = reqObjCk.data.body + req.params = reqObjCk.data.params + return next() + } + + // const errors2 = reqObjCk.error.errors.map((item) => { + // return { + // path: item.path.toString().replaceAll(",", "."), + // message: item.message, + // code: item.code, + // } + // }) + + const errors = reqObjCk.error.format() + myLogger().error(errors) + return res.status(StatusCode.BAD_REQUEST).send(MyErrorResponse(ErrorCode.BAD_REQUEST, errors)) + } catch (err) { + myLogger().error(err) + return res + .status(StatusCode.BAD_REQUEST) + .send(MyErrorResponse(ErrorCode.BAD_REQUEST, "Invalid Request Body!")) + } + } +} diff --git a/src/server.ts b/src/server.ts new file mode 100644 index 0000000..4bd77fa --- /dev/null +++ b/src/server.ts @@ -0,0 +1,23 @@ +import app from "./app" +import { EnvConfig } from "./config/env.config" +import { myLogger } from "./config/logger" +import { redisClient } from "./config/redis/redis.config" +import { gracefulShutdownServer } from "./config/shutdown.config" +import { webSocketConfig } from "./config/socket/socket.config" + +// run the app +const port = EnvConfig.PORT || 4000 + +redisClient.on("ready", () => { + myLogger().info("Redis is ready to use!") +}) + +const server = app.listen(port, () => { + myLogger().info(`Server Running on port ${port}`) +}) +if (server) { + // web-socket connection + if (EnvConfig.ENABLE_SOCKET === "true") webSocketConfig(server) + // graceful shutdown + gracefulShutdownServer(server) +} diff --git a/src/types/express/index.d.ts b/src/types/express/index.d.ts new file mode 100644 index 0000000..3ad7246 --- /dev/null +++ b/src/types/express/index.d.ts @@ -0,0 +1,10 @@ +declare namespace Express { + type ICurrentUser = import("../../common/model/current-user.model").ICurrentUser + + export interface Request { + user: ICurrentUser + agent: "android" | "browser" | "postman" + isHttps: boolean + accessToken?: string + } +} diff --git a/src/types/socket.io/index.d.ts b/src/types/socket.io/index.d.ts new file mode 100644 index 0000000..bffb156 --- /dev/null +++ b/src/types/socket.io/index.d.ts @@ -0,0 +1,7 @@ +import { ICurrentUser } from "../../common/model/current-user.model" + +declare module "socket.io" { + interface Socket { + user?: ICurrentUser + } +} diff --git a/src/utils/access-token.util.ts b/src/utils/access-token.util.ts new file mode 100644 index 0000000..ec73693 --- /dev/null +++ b/src/utils/access-token.util.ts @@ -0,0 +1,63 @@ +import { ICurrentUser } from "../common/model/current-user.model" +import { ServerError, UnAuthorizedError } from "../common/model/error.model" +import { ValidityConstant } from "../config/constant/common.constant" +import { KeyConstant } from "../config/constant/key.constant" +import { myLogger } from "../config/logger" +import { UniqueId } from "./common.util" +import { RedisUtil } from "./redis.util" + +export const AccessTokenUtil = { + /** + * @param payload + * @returns accessToken, refreshToken + */ + generateTokens: async (payload: ICurrentUser) => { + const randomId = UniqueId.createCuid() + const accessToken = `${payload.id}_${randomId}` + const tokenAsRedisKey = `${KeyConstant.ACCESS_TOKEN_REDIS_KEY}${accessToken}` + await RedisUtil.setData(tokenAsRedisKey, payload, ValidityConstant.ACCESS_TOKEN_VALIDITY) + return { accessToken } + }, + verifyToken: async (token?: string): Promise => { + try { + if (!token) { + throw new UnAuthorizedError() + } + const tokenAsRedisKey = `${KeyConstant.ACCESS_TOKEN_REDIS_KEY}${token}` + const payload = await RedisUtil.getData(tokenAsRedisKey) + if (!payload) { + throw new UnAuthorizedError() + } + return payload + } catch (e) { + throw new UnAuthorizedError() + } + }, + getTokenValue: async (token?: string) => { + try { + const tokenAsRedisKey = `${KeyConstant.ACCESS_TOKEN_REDIS_KEY}${token}` + const user = await RedisUtil.getData(tokenAsRedisKey) + return user + } catch (e) { + throw new UnAuthorizedError() + } + }, + updateTokenValue: async (userId: string, body: Partial) => { + try { + await RedisUtil.updateObjValues(`${KeyConstant.ACCESS_TOKEN_REDIS_KEY}${userId}_*`, body) + } catch (e) { + myLogger().error(`Error while updating token value`, e) + throw new ServerError() + } + }, + removeToken: async (token?: string) => { + try { + if (!token) { + throw new UnAuthorizedError() + } + await RedisUtil.deleteData(`${KeyConstant.ACCESS_TOKEN_REDIS_KEY}${token}`) + } catch (e) { + throw new UnAuthorizedError() + } + }, +} diff --git a/src/utils/common.util.ts b/src/utils/common.util.ts new file mode 100644 index 0000000..c6cc3f1 --- /dev/null +++ b/src/utils/common.util.ts @@ -0,0 +1,37 @@ +import { createId } from "@paralleldrive/cuid2" +import { ulid } from "ulid" +import { EnvConfig } from "../config/env.config" + +// common utility functions +export const CommonUtil = { + getLimitOffset: (page: number, size: number) => { + const limit = EnvConfig.NODE_ENV === "test" ? 500 : size + const offset = (page - 1) * limit + return { + limit, + offset, + } + }, + convertArrayToObject: (arr: readonly T[]): Record => { + return arr.reduce( + (obj, value) => { + // eslint-disable-next-line no-param-reassign + obj[value] = value + return obj + }, + {} as Record + ) + }, + fakeAwait: () => { + return Promise.resolve(true) + }, +} + +export const UniqueId = { + createCuid: () => { + return createId() // only the token + }, + createUlid: () => { + return ulid() // all primary keys + }, +} diff --git a/src/utils/cookie.util.ts b/src/utils/cookie.util.ts new file mode 100644 index 0000000..fce86ec --- /dev/null +++ b/src/utils/cookie.util.ts @@ -0,0 +1,50 @@ +import { CookieOptions, Request, Response } from "express" +import { EnvConfig } from "../config/env.config" + +export const CookieUtil = { + setHttpCookie: (req: Request, res: Response, key: string, value: string) => { + res.cookie(key, value, CookieUtil.getSessionCookieOption(req.isHttps, req.agent)) + }, + clearCookies: (res: Response, keys: string[]) => { + keys.forEach((key) => { + res.cookie(key, "", { + httpOnly: true, + secure: true, + sameSite: "none", // lax or none + expires: new Date(0), + }) + }) + }, + getSessionCookieOption: (isHttps: boolean, agent: "browser" | "postman" | "android" = "android") => { + // 3rd party= secure: true && sameSite: 'none' + // 1st party= secure: true/false && samesite:'lax' + // dev + // secure: false && sameSite: 'lax' + // production + // secure: true && sameSite: 'lax' (1st party) + // secure: true && sameSite: 'none' (3rd party) + if (agent === "browser") { + return { + httpOnly: true, + secure: EnvConfig.NODE_ENV === "development" ? true : isHttps, + sameSite: "none", // EnvConfig.NODE_ENV === "development" ? "none" : isHttps === false ? "lax" : "none", // lax or none + maxAge: 365 * 24 * 60 * 60 * 1000, // 365*1 day in milliseconds + } as CookieOptions + } + if (agent === "postman") { + return { + httpOnly: true, + secure: EnvConfig.NODE_ENV !== "development", + sameSite: "none", // lax or none + maxAge: 365 * 24 * 60 * 60 * 1000, // 365*1 day in milliseconds + } as CookieOptions + } + // mobile + return { + httpOnly: true, + secure: EnvConfig.NODE_ENV !== "development", + sameSite: "none", // lax or none + // maxAge: 1 * 24 * 60 * 60 * 1000// + } as CookieOptions + }, +} diff --git a/src/utils/date.util.ts b/src/utils/date.util.ts new file mode 100644 index 0000000..643cf28 --- /dev/null +++ b/src/utils/date.util.ts @@ -0,0 +1,42 @@ +import { format } from "date-fns" +import { utcToZonedTime } from "date-fns-tz" +import { Constant } from "../config/constant/common.constant" + +const DateUtil = { + // write Util function related to dates using "date-fns" library + /** + * @param date String "2023-06-29T06:15:21.414Z" + * @description convert the date into date object and replace time with server time + * @returns Date + */ + convertClientISODateStringToDate: (date: string) => { + const createdAtDate = new Date(date) + createdAtDate.setHours(new Date().getHours()) + createdAtDate.setMinutes(new Date().getMinutes()) + createdAtDate.setSeconds(new Date().getSeconds()) + return createdAtDate + }, + /** + * @param date Date + * @description get user local date based on this timezone + * @returns e.g 24th Nov, 1st jan + */ + getOnlyDate: (date: Date, timeZone: string = Constant.TIMEZONE) => { + return format(utcToZonedTime(date, timeZone), "do MMM") + }, + /** + * @description it should receive UTC time as string + * @param timeString "04:00:00" + * @param dateOfMonth 1-31 + * @returns UTC Date object + */ + convertUtcTimeStringIntoDateObject: (timeString: string, dateOfMonth: number = new Date().getDate()) => { + const [hours, minutes, seconds] = timeString.split(":").map(Number) + const date = new Date() + const dateObject = new Date( + Date.UTC(date.getFullYear(), date.getMonth(), dateOfMonth, hours, minutes, seconds, 0) + ) + return dateObject + }, +} +export default DateUtil diff --git a/src/utils/error-response.util.ts b/src/utils/error-response.util.ts new file mode 100644 index 0000000..a6be7ed --- /dev/null +++ b/src/utils/error-response.util.ts @@ -0,0 +1,27 @@ +import { Response } from "express" +import { QueryError } from "mysql2" +import { ServerError } from "../common/model/error.model" +import { ErrorCode, StatusCode } from "../config/constant/code.constant" +import { MyErrorResponse } from "./my-response.util" + +const errorResponse = (res: Response, e: unknown) => { + if (e instanceof ServerError) { + return res.status(e.statusCode).json(MyErrorResponse(e.errorCode, (e as Error).message)) + } + const error = e as QueryError + let code = ErrorCode.SERVER_ERROR + let statusCode = StatusCode.SERVER_ERROR + let errorMessage = error.message + + if (error.code === "ER_DUP_ENTRY") { + code = ErrorCode.ALREADY_USED + statusCode = StatusCode.BAD_REQUEST + errorMessage = "This is already created!" + if (error.message.includes("email_unique")) { + errorMessage = "Email already used, use another email!" + } + } + + return res.status(statusCode).json(MyErrorResponse(code, errorMessage)) +} +export default errorResponse diff --git a/src/utils/my-response.util.ts b/src/utils/my-response.util.ts new file mode 100644 index 0000000..df877e2 --- /dev/null +++ b/src/utils/my-response.util.ts @@ -0,0 +1,32 @@ +import { z } from "zod" +import { ErrorCode, StatusCode } from "../config/constant/code.constant" + +export const MyResponse = (message: string, response?: T, statusCode = StatusCode.OK) => { + return { + message, + statusCode, + response, + } +} + +export const MyErrorResponse = ( + errorCode = ErrorCode.SERVER_ERROR, + message?: + | string + | { + path: string + message: string + code: string + }[] + | z.ZodFormattedError< + { + [x: string]: unknown + }, + string + > +) => { + return { + errorCode, + message, + } +} diff --git a/src/utils/otp.util.ts b/src/utils/otp.util.ts new file mode 100644 index 0000000..a312c65 --- /dev/null +++ b/src/utils/otp.util.ts @@ -0,0 +1,36 @@ +import { generate } from "otp-generator" +import { RedisUtil } from "./redis.util" + +const storeAndGetOtp = async ( + key: string, + userId: string, + length = 6, + expireAtInHour = 6 +): Promise => { + const otp = generate(length, { + digits: true, + lowerCaseAlphabets: true, + specialChars: false, + upperCaseAlphabets: false, + }) + const REDIS_KEY = `${key}${otp}` + const result = await RedisUtil.setData(REDIS_KEY, userId, expireAtInHour * 60 * 60) + if (result) return otp + return undefined +} + +const verifyOtp = async (key: string, otp: string): Promise => { + const REDIS_KEY = `${key}${otp}` + const userIdFromDb = await RedisUtil.getData(REDIS_KEY) + if (userIdFromDb) { + // delete the otp now after verification + await RedisUtil.deleteData(REDIS_KEY) + return userIdFromDb + } + return undefined +} + +export const OtpUtils = { + storeAndGetOtp, + verifyOtp, +} diff --git a/src/utils/redis.util.ts b/src/utils/redis.util.ts new file mode 100644 index 0000000..755de74 --- /dev/null +++ b/src/utils/redis.util.ts @@ -0,0 +1,77 @@ +import { MyJSON } from "../common/module/json/my-json.service" +import { myLogger } from "../config/logger" +import { redisClient } from "../config/redis/redis.config" + +export const RedisUtil = { + getData: async (key: string): Promise => { + const data = await redisClient.get(key) + if (data) return MyJSON.parse(data) + return undefined + }, + setData: async (key: string, value: T, expireAfterSeconds?: number): Promise => { + let data + if (expireAfterSeconds) { + data = await redisClient.set(key, MyJSON.stringify(value), "EX", expireAfterSeconds) + } else { + data = await redisClient.set(key, MyJSON.stringify(value)) + } + if (data) return true + return false + }, + deleteData: async (key: string) => { + await redisClient.del(key) + }, + deleteByPattern: (pattern: string) => { + // Create a readable stream (object mode) + const stream = redisClient.scanStream({ + match: pattern, + }) + stream.on("data", async (keys) => { + // `keys` is an array of strings representing key names + if (keys.length && keys.length > 0) { + const pipeline = redisClient.pipeline() + keys.forEach((key: string) => { + pipeline.del(key) + }) + await pipeline.exec() + } + }) + stream.on("end", () => { + myLogger().info("all keys deleted") + }) + + // or you can use this library + // import redisDelByPattern, { RedisDeletionMethod } from "@eturino/ioredis-del-by-pattern" + // await redisDelByPattern({ + // pattern, + // redis: redisClient, // ioredis client + // withPipeline: true, + // deletionMethod: RedisDeletionMethod.unlink, + // }) + }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + updateObjValues: async (prefix: string, newValue: any): Promise => { + // Fetch keys matching the prefix + const keys = await redisClient.keys(`${prefix}*`) + + // Create a pipeline to batch the update commands + const pipeline = redisClient.pipeline() + + // Update the values of matching keys + for (const key of keys) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const old = await RedisUtil.getData(key) + const updatedValue = { ...old, ...newValue } + pipeline.set(key, MyJSON.stringify(updatedValue)) + } + + // Execute the pipeline + await pipeline.exec() + }, + updateExpTime: async (key: string, expireAfterSeconds: number) => { + await redisClient.expire(key, expireAfterSeconds) + }, + clear: async () => { + await redisClient.flushdb() + }, +} diff --git a/src/utils/zod.util.ts b/src/utils/zod.util.ts new file mode 100644 index 0000000..c8f5203 --- /dev/null +++ b/src/utils/zod.util.ts @@ -0,0 +1,64 @@ +import { z } from "zod" +import { Constant } from "../config/constant/common.constant" + +export const ZodNameString = z + .string() + .trim() + .regex(Constant.NAME_STRING, "Only Bengali or English characters, number, space are allowed") + .nonempty("It's Required") + +export const ZodNumericString = z + .string() + .trim() + .regex(new RegExp(Constant.STRING_NUM_PATTERN), "Only number is allowed") + .nonempty("It's Required") + +export const ZodNumericNonNegString = z + .string() + .trim() + .regex(new RegExp(Constant.STRING_NUM_PATTERN_NON_NEG), "Only positive number is allowed") + +export const ZodSimpleString = z.string().trim().nonempty("It's Required") + +export const ZodSimpleEmptyString = z.string().trim() + +export const ZodEmailString = z + .string() + .toLowerCase() + .trim() + .max(255) + .email("Invalid email address") + .nonempty("It's Required") + +export const ZodPasswordString = z + .string() + .trim() + .min(6, "minium 6 character long") + .max(150, "max 150 character long") + +export const ZodTimeString = z + .string() + .trim() + .regex(/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/) + .nonempty("It's Required") + +export const ZodDateString = z.string().trim().datetime().nonempty("It's Required") +export const ZodDateStringOptional = z.string().trim().datetime().optional() + +export const ZodOnlyDateString = z + .string() + .trim() + .datetime() + .nonempty("It's Required") + .transform((value) => { + return value.split("T")[0] + }) + +// at least update 1 refine method +export const ZodMin1UpdateRefine = (data: NonNullable) => { + const isAllUndefinedOrNull = Object.values(data).every((value) => value === undefined || value === null) + if (isAllUndefinedOrNull) { + return false + } + return true +} diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..e69de29 diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..c2d3363 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + /* Language and Environment */ + "target": "ESNext", + "module": "commonjs", + "moduleResolution": "node", + "resolveJsonModule": true, + "sourceMap": true, + "outDir": "./dist", + "removeComments": false, + "importsNotUsedAsValues": "remove", + "stripInternal": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + /* Type Checking */ + "strict": true, + "alwaysStrict": true, + "strictNullChecks": true, + "skipLibCheck": true /* Skip type checking all .d.ts files. */, + "typeRoots": ["./src/types"] + }, + "exclude": ["resources", "node_modules"], + "include": ["./.eslintrc.js", "./vitest.config.ts", "./src"] +} diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..9d8f1f6 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + singleThread: true, + hookTimeout: 20000, + testTimeout: 10000, + }, +})