From 40c0ffb82d013c28159e3f3a06d8b14aff338203 Mon Sep 17 00:00:00 2001 From: Alina Shumann Date: Fri, 2 Feb 2024 12:31:10 -0600 Subject: [PATCH] Initial commit --- .dockerignore | 8 + .gitignore | 6 + Dockerfile | 22 + config.yml | 16 + docker-compose.yml | 21 + jobs/.gitkeep | 0 package.json | 48 + pnpm-lock.yaml | 6069 ++++++++++++++++++++++++++++++++++++++ screeps-driver-5.2.5.tgz | Bin 0 -> 78480 bytes src/app.ts | 41 + src/config.ts | 155 + src/mod.ts | 124 + src/mod.types.ts | 88 + src/modules.ts | 163 + tsconfig.json | 7 + 15 files changed, 6768 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 config.yml create mode 100644 docker-compose.yml create mode 100644 jobs/.gitkeep create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 screeps-driver-5.2.5.tgz create mode 100644 src/app.ts create mode 100644 src/config.ts create mode 100644 src/mod.ts create mode 100644 src/mod.types.ts create mode 100644 src/modules.ts create mode 100644 tsconfig.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1c176c4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +node_modules +.git +.gitignore +*.md +dist +screepsmod-* +test +driver \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6a8297 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +dist +.pnpm-store +test +driver +logs +node_modules diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f5948d4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM node:18 as base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +COPY . /app +# RUN rm -rf /app/node_modules +WORKDIR /app + +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile --shamefully-hoist + +FROM base AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile --shamefully-hoist +RUN pnpm run build + +FROM base +COPY --from=prod-deps /app/node_modules /app/node_modules +COPY --from=build /app/dist /app/dist +EXPOSE 21025 +VOLUME /screeps +WORKDIR /screeps +CMD ["node","/app/dist/app.js"] \ No newline at end of file diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..bee480c --- /dev/null +++ b/config.yml @@ -0,0 +1,16 @@ +steamKey: E6B8BA48A1290CE6B96E5300D2623393 +processors: 1 +serverConfig: + map: random_1x1 + startAfterImport: true + tickRate: 1000 +mods: + - screepsmod-mongo + - screepsmod-auth + - screepsmod-admin-utils +modules: + backend: false + main: false + processor: false + runner: true + storage: false diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..398896a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' +services: + mongo: + image: mongo + ports: + - 21027:21027 + redis: + image: redis + ports: + - 6379:6379 + screeps: + image: screepers/screeps-launcher-node + build: . + environment: + REDIS_HOST: redis + MONGO_HOST: mongo + volumes: + - ./test:/screeps + ports: + - 21025:21025 + \ No newline at end of file diff --git a/jobs/.gitkeep b/jobs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json new file mode 100644 index 0000000..160b705 --- /dev/null +++ b/package.json @@ -0,0 +1,48 @@ +{ + "name": "screeps-launcher", + "version": "2.0.0", + "description": "", + "main": "dist/app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "dev": "ts-node src/app.ts", + "build": "tsc", + "start": "node --no-node-snapshot ." + }, + "bin": { + "screeps-launcher": "dist/app.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@tsconfig/node16": "^16.1.1", + "@tsconfig/node18": "^18.2.2", + "@types/js-yaml": "^4.0.9", + "@types/node": "^20.9.2", + "ts-node": "^10.9.1", + "typescript": "^5.2.2" + }, + "dependencies": { + "@ladjs/graceful": "^3.2.2", + "@screeps/backend": "^3.2.3", + "@screeps/common": "^2.15.4", + "@screeps/driver": "file:screeps-driver-5.2.5.tgz", + "@screeps/engine": "^4.2.17", + "@screeps/pathfinding": "^0.4.17", + "@screeps/storage": "^5.1.1", + "bree": "^9.1.3", + "cabin": "^13.2.5", + "js-yaml": "^4.1.0", + "screepsbot-zeswarm": "^1.0.3", + "screepsmod-admin-utils": "^1.31.1", + "screepsmod-auth": "^2.8.1", + "screepsmod-dynamicmarket": "^1.1.14", + "screepsmod-history": "^1.6.0", + "screepsmod-mail-aws-ses": "^1.1.0", + "screepsmod-map-tool": "^1.10.0", + "screepsmod-market": "^1.2.0", + "screepsmod-mongo": "^2.11.1", + "screepsmod-pure-automation": "^1.0.3" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..5b477a8 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6069 @@ +lockfileVersion: '6.0' + +dependencies: + '@ladjs/graceful': + specifier: ^3.2.2 + version: 3.2.2 + '@screeps/backend': + specifier: ^3.2.3 + version: 3.2.3 + '@screeps/common': + specifier: ^2.15.4 + version: 2.15.4 + '@screeps/driver': + specifier: file:screeps-driver-5.2.5.tgz + version: file:screeps-driver-5.2.5.tgz + '@screeps/engine': + specifier: ^4.2.17 + version: 4.2.17 + '@screeps/pathfinding': + specifier: ^0.4.17 + version: 0.4.17 + '@screeps/storage': + specifier: ^5.1.1 + version: 5.1.1 + bree: + specifier: ^9.1.3 + version: 9.1.3 + cabin: + specifier: ^13.2.5 + version: 13.2.5(axe@12.2.3) + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 + screepsbot-zeswarm: + specifier: ^1.0.3 + version: 1.0.3 + screepsmod-admin-utils: + specifier: ^1.31.1 + version: 1.31.1(@screeps/backend@3.2.3) + screepsmod-auth: + specifier: ^2.8.1 + version: 2.8.1(@screeps/backend@3.2.3) + screepsmod-dynamicmarket: + specifier: ^1.1.14 + version: 1.1.14 + screepsmod-history: + specifier: ^1.6.0 + version: 1.6.0 + screepsmod-mail-aws-ses: + specifier: ^1.1.0 + version: 1.1.0 + screepsmod-map-tool: + specifier: ^1.10.0 + version: 1.10.0 + screepsmod-market: + specifier: ^1.2.0 + version: 1.2.0 + screepsmod-mongo: + specifier: ^2.11.1 + version: 2.11.1 + screepsmod-pure-automation: + specifier: ^1.0.3 + version: 1.0.3 + +devDependencies: + '@tsconfig/node16': + specifier: ^16.1.1 + version: 16.1.1 + '@tsconfig/node18': + specifier: ^18.2.2 + version: 18.2.2 + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 + '@types/node': + specifier: ^20.9.2 + version: 20.9.2 + ts-node: + specifier: ^10.9.1 + version: 10.9.1(@types/node@20.9.2)(typescript@5.2.2) + typescript: + specifier: ^5.2.2 + version: 5.2.2 + +packages: + + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: false + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: false + + /@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@breejs/later@4.1.0: + resolution: {integrity: sha512-QgGnZ9b7o4k0Ai1ZbTJWwZpZcFK9d+Gb+DyNt4UT9x6IEIs5HVu0iIlmgzGqN+t9MoJSpSPo9S/Mm51UtHr3JA==} + engines: {node: '>= 10'} + 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 + + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: false + optional: 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 + + /@ladjs/format-util@1.0.4: + resolution: {integrity: sha512-hZere0rUga8kTzSTFbHREXpD9E/jwi94+B5RyLAmMIzl/w/EK1z7rFEnMHzPkU4AZkL42JWSsGXoV8LXMihybg==} + dev: false + + /@ladjs/graceful@3.2.2: + resolution: {integrity: sha512-GyL5Cpgh2RlndFW2e4AUHrEDe0tzyXKpAs92wrAQhNKcY0y++qfK8PC+6TOHzN9zvxPY9j1KAU29Gfa9vxWzDg==} + engines: {node: '>=14'} + dependencies: + lil-http-terminator: 1.2.3 + p-is-promise: 3.0.0 + dev: false + + /@mapbox/node-pre-gyp@1.0.11: + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + dependencies: + detect-libc: 2.0.2 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.5.4 + tar: 6.2.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.5.4 + dev: false + optional: true + + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: false + optional: true + + /@passport-next/passport-openid@1.0.0: + resolution: {integrity: sha512-W9uj4Ui/ZK/iBUNzSNxPWDQ8wCD1tUddGEVSGm0FN0B7ewo3yBQLGMoW3i3UqcwEzxdyGbAj06ohAhNQIXC4VA==} + engines: {node: '>=6'} + dependencies: + '@passport-next/passport-strategy': 1.1.0 + openid: 2.0.10 + transitivePeerDependencies: + - debug + dev: false + + /@passport-next/passport-strategy@1.1.0: + resolution: {integrity: sha512-2KhFjtPueJG6xVj2HnqXt9BlANOfYCVLyu+pXYjPGBDT8yk+vQwc/6tsceIj+mayKcoxMau2JimggXRPHgoc8w==} + engines: {node: '>= 6.0.0'} + dev: false + + /@screeps/backend@3.2.3: + resolution: {integrity: sha512-kvx2HvarBu7pIjQLoTr2fZkB8N+d8HH/Ogfl0jyZjno+flRcHNiIFOP1Z/yewSZS2Z12aMlpChc5tuN+ylLiTQ==} + hasBin: true + dependencies: + body-parser: 1.20.2 + btoa: 1.2.1 + cookie-parser: 1.4.6 + express: 4.18.2 + express-session: 1.17.3 + lodash: 3.10.1 + passport: 0.3.2 + passport-http: 0.3.0 + passport-token: 0.2.0 + pngjs: 3.4.0 + q: 1.5.1 + q-json-response: 0.1.3 + sockjs: 0.3.24 + steam-webapi: 0.6.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@screeps/backend@3.2.5: + resolution: {integrity: sha512-MV86CK2oJKnhRfTqjVv41+dy4UvM9wBnJcCmJbumNCE6pPRzOmHWhCdWycV5y77uwSwvqDzfevUae3UMcml3Lg==} + hasBin: true + dependencies: + body-parser: 1.20.2 + btoa: 1.2.1 + cookie-parser: 1.4.6 + express: 4.18.2 + express-session: 1.17.3 + lodash: 3.10.1 + passport: 0.3.2 + passport-http: 0.3.0 + passport-token: 0.2.0 + pngjs: 3.4.0 + q: 1.5.1 + q-json-response: 0.1.3 + sockjs: 0.3.24 + steam-webapi: 0.6.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@screeps/common@2.15.4: + resolution: {integrity: sha512-iHsn0XOxOqx3xAphPmCqfCEgvafCmYtJA3jIOu+F36OxgNGBeb7L/dbK6rrQRlvhj16D5WgT5iD07yjlpKvBig==} + dependencies: + eslint: 5.16.0 + lodash: 3.10.1 + q: 1.5.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@screeps/common@2.15.5: + resolution: {integrity: sha512-sBDvkXTbwA+Nh9uqqie8qJQa5pd+zylZyfyScjNPObG8dmFCS+VRiUHkiDfmMDwnMsalBih19cfAzhgIZt/Y8A==} + dependencies: + eslint: 5.16.0 + lodash: 3.10.1 + q: 1.5.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@screeps/engine@4.2.17: + resolution: {integrity: sha512-NrK/83hWRlYBWDMt3RtANjSEt7Hg2dGIbMwtktSXSzQPR9FRMHjIz0gQyuuSmhBqPk9rIKeHB1bMWlvpj05uRw==} + hasBin: true + dependencies: + '@screeps/pathfinding': 0.4.17 + bulk-require: 0.2.1 + cross-env: 5.2.1 + lodash: 3.10.1 + q: 1.5.1 + dev: false + + /@screeps/engine@4.2.22: + resolution: {integrity: sha512-8wGyDOGKW3EshSbrSkFr7TLN2sIieEVP0iLFqsTKDYBPo24cpRPgi6cCgn/zSqBKYz5fN6HUoJB6mq5AhnK0mw==} + hasBin: true + dependencies: + '@screeps/pathfinding': 0.4.17 + bulk-require: 0.2.1 + cross-env: 5.2.1 + lodash: 3.10.1 + q: 1.5.1 + dev: false + + /@screeps/pathfinding@0.4.17: + resolution: {integrity: sha512-W8z4jkKe+PHtWWNZ3Q4Jy/BtK90hqe/THt1bXlFNlgCZrZxMh5ckAsKfa4v1jSHX1QE35BkQYH0yxYt5Q+o6rw==} + dependencies: + heap: 0.2.5 + dev: false + + /@screeps/storage@5.1.1: + resolution: {integrity: sha512-YBA2iglc6oe98kBVjwaAd0+WROEfAKbLY2Ge492lNQ1LfkTXKj00UovGduordx4DPA15s1J/xZ8vVAaF8apNwg==} + hasBin: true + dependencies: + lodash: 3.10.1 + lokijs: 1.5.12 + q: 1.5.1 + dev: false + + /@screeps/storage@5.1.2: + resolution: {integrity: sha512-eTo4UZXzuW8kUINJyJYtA8X8JSC8lxEiCuFsZV//JoD3urkmJciJndYWSdVWkiugY+9HdiYkKxPstLPmpvtAKg==} + hasBin: true + dependencies: + lodash: 3.10.1 + lokijs: 1.5.12 + q: 1.5.1 + dev: false + + /@strikeentco/get@1.0.1: + resolution: {integrity: sha512-qPnoWkt7xxcOaUJhMveDHmj6INVKHXUEsPTGz3g4HC5XNnqRd1dDEFxL1KpG+vZ2VxmRK42EjBt5vUDr4uLzQQ==} + engines: {node: '>=6.0.0'} + dev: false + + /@strikeentco/set@1.0.2: + resolution: {integrity: sha512-jP/wGhBi70RoD2Ww2bd3Ay4nzKfyWSPL/sDgFaq2e/FXNC9a04R0M7fuDVHG/dG+WWNVj2pmE9exXn20a0AjGg==} + engines: {node: '>=6.0.0'} + dev: false + + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + 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 + + /@tsconfig/node16@16.1.1: + resolution: {integrity: sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==} + dev: true + + /@tsconfig/node18@18.2.2: + resolution: {integrity: sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==} + dev: true + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + dev: true + + /@types/lodash@4.14.201: + resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} + dev: false + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + + /@types/node@20.9.2: + resolution: {integrity: sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==} + dependencies: + undici-types: 5.26.5 + + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: false + + /@types/validator@13.11.6: + resolution: {integrity: sha512-HUgHujPhKuNzgNXBRZKYexwoG+gHKU+tnfPqjWXFghZAnn73JElicMkuSKJyLGr9JgyA8IgK7fj88IyA9rwYeQ==} + dev: false + + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: false + + /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-dynamic-import@2.0.2: + resolution: {integrity: sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==} + deprecated: This is probably built in to whatever tool you're using. If you still need it... idk + dependencies: + acorn: 4.0.13 + dev: false + + /acorn-jsx@5.3.2(acorn@6.4.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 6.4.2 + dev: false + + /acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@4.0.13: + resolution: {integrity: sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /acorn@5.7.4: + resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /acorn@6.4.2: + resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false + optional: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: false + optional: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + 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: false + + /align-text@0.1.4: + resolution: {integrity: sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + longest: 1.0.1 + repeat-string: 1.6.1 + dev: false + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: false + + /ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} + engines: {node: '>=4'} + dev: false + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: false + + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: false + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + + /anymatch@2.0.0(supports-color@4.5.0): + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + dependencies: + micromatch: 3.1.10(supports-color@4.5.0) + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: false + optional: 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: false + optional: true + + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: false + + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: false + + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: false + optional: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: false + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 + dev: false + + /assert@1.5.1: + resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} + dependencies: + object.assign: 4.1.5 + util: 0.10.4 + dev: false + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: false + + /async-each@1.0.6: + resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + dev: false + optional: true + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: false + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: false + optional: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /aws-sdk@2.1499.0: + resolution: {integrity: sha512-kh89lcXx7lP83uVjzRPkOueRoM8gQlep86W9+l3qCTHSLiVJuc0MiPmqCLMPlOAZil+35roFkwWIP2FJ1WcdXg==} + engines: {node: '>= 10.0.0'} + dependencies: + buffer: 4.9.2 + events: 1.1.1 + ieee754: 1.1.13 + jmespath: 0.16.0 + querystring: 0.2.0 + sax: 1.2.1 + url: 0.10.3 + util: 0.12.5 + uuid: 8.0.0 + xml2js: 0.5.0 + dev: false + + /axe@12.2.3: + resolution: {integrity: sha512-ZZ1kJi7ygeMPoVUgIkFcFbN+Wr/gYusdDWkBZNxu6ZMxAaTE3vnfLHeDR+1TQSZBE0l3qpqKKHHef2FRz8N83g==} + engines: {node: '>=14'} + dependencies: + '@ladjs/format-util': 1.0.4 + '@strikeentco/get': 1.0.1 + '@strikeentco/set': 1.0.2 + boolean: 3.2.0 + console-polyfill: 0.3.0 + format-specifiers: 1.0.0 + is-symbol: 1.0.4 + iserror: 0.0.2 + merge-options: 3.0.4 + p-map-series: 2.1.0 + parse-app-info: 5.0.0 + parse-err: 1.0.0 + pick-deep: 1.0.0 + unset-value: 2.0.1 + dev: false + + /axios@0.19.2: + resolution: {integrity: sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==} + deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 + dependencies: + follow-redirects: 1.5.10 + transitivePeerDependencies: + - supports-color + dev: false + + /axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + dependencies: + follow-redirects: 1.15.3 + transitivePeerDependencies: + - debug + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + + /base64url@3.0.1: + resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} + engines: {node: '>=6.0.0'} + dev: false + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: false + optional: true + + /basic-auth@1.1.0: + resolution: {integrity: sha512-CtGuTyWf3ig+sgRyC7uP6DM3N+5ur/p8L+FPfsd+BbIfIs74TFfCajZTHnCw6K5dqM0bZEbRIqRy1fAdiUJhTA==} + engines: {node: '>= 0.6'} + dev: false + + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: false + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: false + + /binary-extensions@1.13.1: + resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + optional: true + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + requiresBuild: true + dependencies: + file-uri-to-path: 1.0.0 + dev: false + optional: true + + /bl@2.2.1: + resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: false + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: false + + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + dev: false + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + dev: false + + /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(supports-color@4.5.0) + 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 + + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + 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(supports-color@4.5.0) + 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.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@2.3.2(supports-color@4.5.0): + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2(supports-color@4.5.0) + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + optional: true + + /bree@9.1.3: + resolution: {integrity: sha512-oqto4iG7MG2xdRKU0MhFNPTq7ZSztKvalohO3nyu4EIyy3SKpLDX92LkptcGTl6BE2RpQLrzgBP3HoPtWlWBaA==} + engines: {node: '>=12.17.0 <13.0.0-0||>=13.2.0'} + dependencies: + '@breejs/later': 4.1.0 + boolean: 3.2.0 + combine-errors: 3.0.3 + cron-validate: 1.4.5 + human-interval: 2.0.1 + is-string-and-not-blank: 0.0.2 + is-valid-path: 0.1.1 + ms: 2.1.3 + p-wait-for: 3.2.0 + safe-timers: 1.1.0 + dev: false + + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + dev: false + + /browser-hrtime@1.1.8: + resolution: {integrity: sha512-kzXheikaJsBtzUBlyVtPIY5r0soQePzjwVwT4IlDpU2RvfB5Py52gpU98M77rgqMCheoSSZvrcrdj3t6cZ3suA==} + dev: false + + /browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + dev: false + + /browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + dependencies: + cipher-base: 1.0.4 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /browserify-rsa@4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + dev: false + + /browserify-sign@4.2.2: + resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==} + engines: {node: '>= 4'} + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.5.4 + inherits: 2.0.4 + parse-asn1: 5.1.6 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + dev: false + + /browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + dependencies: + pako: 1.0.11 + dev: false + + /bson-objectid@2.0.4: + resolution: {integrity: sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==} + dev: false + + /bson@1.1.6: + resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==} + engines: {node: '>=0.6.19'} + 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-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + dev: false + + /buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.1.13 + isarray: 1.0.0 + dev: false + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.1.13 + dev: false + + /builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + dev: false + + /bulk-require@0.2.1: + resolution: {integrity: sha512-WdwGqhp60yU4Huvwp3bWtOo5LTD7P+ZFE86XMNUkFi3ocQGnwLjB9/LNpPbSiUb+ThbOEePklSNykRfHuRseHQ==} + dependencies: + glob: 3.2.11 + dev: false + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /cabin@13.2.5(axe@12.2.3): + resolution: {integrity: sha512-dIjg1Szoax9YxWm9DkJOGp+xLtDwsOQ4dIfX1qFg/gDfXzRnAqxEMOLM1qPArDSyK49F/OX//9vYPXDxdRieGA==} + engines: {node: '>=14'} + peerDependencies: + axe: '>= 10.0.0' + dependencies: + '@ladjs/format-util': 1.0.4 + ansi-colors: 4.1.3 + axe: 12.2.3 + clf-date: 0.2.1 + format-specifiers: 1.0.0 + iserror: 0.0.2 + merge-options: 3.0.4 + ms: 2.1.3 + on-finished: 2.4.1 + parse-err: 1.0.0 + parse-request: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /cacache@15.3.0(bluebird@3.7.2): + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1(bluebird@3.7.2) + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.2.0 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: false + optional: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: false + optional: 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.1.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /camelcase@1.2.1: + resolution: {integrity: sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==} + engines: {node: '>=0.10.0'} + dev: false + + /camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} + engines: {node: '>=4'} + dev: false + + /center-align@0.1.3: + resolution: {integrity: sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==} + engines: {node: '>=0.10.0'} + dependencies: + align-text: 0.1.4 + lazy-cache: 1.0.4 + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: false + + /chokidar@2.1.8(supports-color@4.5.0): + resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies + dependencies: + anymatch: 2.0.0(supports-color@4.5.0) + async-each: 1.0.6 + braces: 2.3.2(supports-color@4.5.0) + glob-parent: 3.1.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1(supports-color@4.5.0) + upath: 1.2.0 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + requiresBuild: true + 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: false + optional: true + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: false + + /cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: false + optional: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: false + optional: true + + /clf-date@0.2.1: + resolution: {integrity: sha512-U4FALii5pfAvg93GfFDj08gf9p9ldA6yxsIknnma+efLJQajT0EpTnn/iv2/+EL1WpQaPNi+fhn1W+om6lgWpg==} + hasBin: true + dev: false + + /cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + dependencies: + restore-cursor: 2.0.0 + dev: false + + /cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + dev: false + + /cliui@2.1.0: + resolution: {integrity: sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==} + dependencies: + center-align: 0.1.3 + right-align: 0.1.3 + wordwrap: 0.0.2 + dev: false + + /cliui@3.2.0: + resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + wrap-ansi: 2.1.0 + dev: false + + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: false + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: false + optional: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: false + + /combine-errors@3.0.3: + resolution: {integrity: sha512-C8ikRNRMygCwaTx+Ek3Yr+OuZzgZjduCOfSQBjbM8V3MfgcjSTeto/GXP6PAwKvJz/v15b7GHZvx5rOlczFw/Q==} + dependencies: + custom-error-instance: 2.1.1 + lodash.uniqby: 4.5.0 + dev: false + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + dev: false + optional: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + dev: false + + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: false + + /console-polyfill@0.3.0: + resolution: {integrity: sha512-w+JSDZS7XML43Xnwo2x5O5vxB0ID7T5BdqDtyqT6uiCAX2kZAgcWxNaGqT97tZfSHzfOcvrfsDAodKcJ3UvnXQ==} + dev: false + + /constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + dev: false + + /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-hrtime@3.0.0: + resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==} + engines: {node: '>=8'} + 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'} + dev: false + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: false + + /create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + dev: false + + /create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + dev: false + + /create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: false + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /credit-card-type@9.1.0: + resolution: {integrity: sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==} + dev: false + + /cron-validate@1.4.5: + resolution: {integrity: sha512-nKlOJEnYKudMn/aNyNH8xxWczlfpaazfWV32Pcx/2St51r2bxWbGhZD7uwzMcRhunA/ZNL+Htm/i0792Z59UMQ==} + dependencies: + yup: 0.32.9 + dev: false + + /cross-env@5.2.1: + resolution: {integrity: sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + cross-spawn: 6.0.5 + dev: false + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + + /crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.2 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + dev: false + + /custom-error-instance@2.1.1: + resolution: {integrity: sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg==} + dev: false + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: false + + /debug@2.6.9(supports-color@4.5.0): + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + supports-color: 4.5.0 + dev: false + + /debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /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 + dev: false + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: false + optional: true + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: false + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /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 + dev: false + + /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 + dev: false + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.7 + dev: false + optional: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + dev: false + optional: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + dev: false + optional: true + + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: false + + /denque@1.5.1: + resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==} + engines: {node: '>=0.10'} + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + dev: false + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /domain-browser@1.2.0: + resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} + engines: {node: '>=0.4', npm: '>=1.2'} + dev: false + + /dotgitconfig@1.1.2: + resolution: {integrity: sha512-M+nUsYHJT2qs6bnYqotmO+1IQ09w3ZwLcX4MmbblaWN9C7ydDWM2xQLv22xfl4bUxienESi1GsZnZJPb8jslqQ==} + dependencies: + ini: 1.3.8 + dev: false + + /dottie@2.0.6: + resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: false + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + dev: false + optional: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false + + /enhanced-resolve@3.4.1: + resolution: {integrity: sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + dependencies: + graceful-fs: 4.2.11 + memory-fs: 0.4.1 + object-assign: 4.1.1 + tapable: 0.2.9 + dev: false + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: false + optional: true + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: false + optional: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + dependencies: + prr: 1.0.1 + dev: false + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /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 + dev: false + + /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 + dev: false + + /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 + dev: false + + /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: false + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: false + + /escope@3.6.0: + resolution: {integrity: sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==} + engines: {node: '>=0.4.0'} + dependencies: + es6-map: 0.1.5 + es6-weak-map: 2.0.3 + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: false + + /eslint-scope@4.0.3: + resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} + engines: {node: '>=4.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: false + + /eslint-utils@1.4.3: + resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: false + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: false + + /eslint@5.16.0: + resolution: {integrity: sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==} + engines: {node: ^6.14.0 || ^8.10.0 || >=9.10.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.23.4 + ajv: 6.12.6 + chalk: 2.4.2 + cross-spawn: 6.0.5 + debug: 4.3.4 + doctrine: 3.0.0 + eslint-scope: 4.0.3 + eslint-utils: 1.4.3 + eslint-visitor-keys: 1.3.0 + espree: 5.0.1 + esquery: 1.5.0 + esutils: 2.0.3 + file-entry-cache: 5.0.1 + functional-red-black-tree: 1.0.1 + glob: 7.2.3 + globals: 11.12.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + inquirer: 6.5.2 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.3.0 + lodash: 4.17.21 + minimatch: 3.1.2 + mkdirp: 0.5.6 + natural-compare: 1.4.0 + optionator: 0.8.3 + path-is-inside: 1.0.2 + progress: 2.0.3 + regexpp: 2.0.1 + semver: 5.7.2 + strip-ansi: 4.0.0 + strip-json-comments: 2.0.1 + table: 5.4.6 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@5.0.1: + resolution: {integrity: sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==} + engines: {node: '>=6.0.0'} + dependencies: + acorn: 6.4.2 + acorn-jsx: 5.3.2(acorn@6.4.2) + eslint-visitor-keys: 1.3.0 + 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: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.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'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /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 + dev: false + + /events@1.1.1: + resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} + engines: {node: '>=0.4.x'} + dev: false + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: false + + /evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + dev: false + + /execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: false + + /expand-brackets@2.1.4(supports-color@4.5.0): + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9(supports-color@4.5.0) + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@4.5.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + + /express-session@1.17.3: + resolution: {integrity: sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==} + engines: {node: '>= 0.8.0'} + dependencies: + cookie: 0.4.2 + cookie-signature: 1.0.6 + debug: 2.6.9(supports-color@4.5.0) + depd: 2.0.0 + on-headers: 1.0.2 + parseurl: 1.3.3 + safe-buffer: 5.2.1 + uid-safe: 2.1.5 + transitivePeerDependencies: + - supports-color + 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(supports-color@4.5.0) + 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 + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + optional: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: false + optional: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: false + + /extglob@2.0.4(supports-color@4.5.0): + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4(supports-color@4.5.0) + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@4.5.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: false + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: false + + /figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: false + + /file-entry-cache@5.0.1: + resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} + engines: {node: '>=4'} + dependencies: + flat-cache: 2.0.1 + dev: false + + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + requiresBuild: true + dev: false + optional: true + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: false + optional: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + optional: true + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9(supports-color@4.5.0) + 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@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: false + + /flat-cache@2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} + dependencies: + flatted: 2.0.2 + rimraf: 2.6.3 + write: 1.0.3 + dev: false + + /flatted@2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + dev: false + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /follow-redirects@1.5.10: + resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==} + engines: {node: '>=4.0'} + dependencies: + debug: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /format-specifiers@1.0.0: + resolution: {integrity: sha512-/xcmy6xn/DsR+V6flFj3E47yCbrsk70r90moAMENVkKckUPUG9CRE79S/2xajLVx1iADIoWx+1R304uMXB/riQ==} + dev: false + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: false + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: false + optional: true + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: false + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /fsevents@1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + requiresBuild: true + dependencies: + bindings: 1.5.0 + nan: 2.18.0 + dev: false + optional: true + + /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: false + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: false + + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: false + + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: false + optional: true + + /generic-pool@3.9.0: + resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} + engines: {node: '>= 4'} + dev: false + + /get-caller-file@1.0.3: + resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} + dev: false + + /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 + dev: false + + /get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} + dev: false + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /get-value@3.0.1: + resolution: {integrity: sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==} + engines: {node: '>=6.0'} + dependencies: + isobject: 3.0.1 + dev: false + + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + + /glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + dev: false + optional: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + optional: true + + /glob@3.2.11: + resolution: {integrity: sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==} + dependencies: + inherits: 2.0.4 + minimatch: 0.3.0 + dev: false + + /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 + dev: false + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: false + + /has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} + dev: false + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: false + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: false + optional: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: false + optional: true + + /has-value@2.0.2: + resolution: {integrity: sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==} + engines: {node: '>=6'} + dependencies: + get-value: 3.0.1 + has-values: 2.0.1 + dev: false + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: false + optional: true + + /has-values@2.0.1: + resolution: {integrity: sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==} + engines: {node: '>=6'} + dependencies: + kind-of: 6.0.3 + dev: false + + /hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + dev: false + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /heap@0.2.5: + resolution: {integrity: sha512-G7HLD+WKcrOyJP5VQwYZNC3Z6FcQ7YYjEFiFoIj8PfEr73mu421o8B1N5DKUcc8K37EsJ2XXWA8DtrDz/2dReg==} + dev: false + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: false + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: false + optional: 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-headers@3.0.2: + resolution: {integrity: sha512-87E1I+2Wg4dxxz4rcxElo3dxO/w1ZtgL1yA0Sb6vH3qU16vRKq1NjWQv9SCY3ly2OQROcoxHZOUpmelS+k6wOw==} + dependencies: + next-line: 1.1.0 + dev: false + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: false + + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + dev: false + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /human-interval@2.0.1: + resolution: {integrity: sha512-r4Aotzf+OtKIGQCB3odUowy4GfUDTy3aTWTfLd7ZF2gBCy3XW3v/dJLRefZnOFFnjqs5B1TypvS8WarpBkYUNQ==} + dependencies: + numbered: 1.1.0 + dev: false + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: false + optional: 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 + optional: true + + /ieee754@1.1.13: + resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} + dev: false + + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: false + + /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: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: false + optional: true + + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: false + optional: true + + /inflection@1.13.4: + resolution: {integrity: sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==} + engines: {'0': node >= 0.4.0} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false + + /inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} + engines: {node: '>=6.0.0'} + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + dev: false + + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: false + + /invert-kv@1.0.0: + resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} + engines: {node: '>=0.10.0'} + dev: false + + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + dev: false + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: false + optional: true + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: false + + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + dependencies: + hasown: 2.0.0 + dev: false + optional: true + + /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: false + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-binary-path@1.0.1: + resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} + engines: {node: '>=0.10.0'} + dependencies: + binary-extensions: 1.13.1 + dev: false + optional: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + optional: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: false + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: false + + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.0 + dev: false + optional: true + + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: false + optional: true + + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: false + optional: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: false + optional: true + + /is-extglob@1.0.0: + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: false + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@2.0.1: + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 1.0.0 + dev: false + + /is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + 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: false + optional: true + + /is-invalid-path@0.1.0: + resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-glob: 2.0.1 + dev: false + + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + dev: false + optional: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: false + optional: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + optional: true + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: false + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: false + optional: true + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false + + /is-string-and-not-blank@0.0.2: + resolution: {integrity: sha512-FyPGAbNVyZpTeDCTXnzuwbu9/WpNXbCfbHXLpCRpN4GANhS00eEIP5Ef+k5HYSNIzIhdN9zRDoBj6unscECvtQ==} + engines: {node: '>=6.4.0'} + dependencies: + is-string-blank: 1.0.1 + dev: false + + /is-string-blank@1.0.1: + resolution: {integrity: sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==} + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /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: false + + /is-uuid@1.0.2: + resolution: {integrity: sha512-tCByphFcJgf2qmiMo5hMCgNAquNSagOetVetDvBXswGkNfoyEMvGH1yDlF8cbZbKnbVBr4Y5/rlpMz9umxyBkQ==} + dev: false + + /is-valid-path@0.1.1: + resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==} + engines: {node: '>=0.10.0'} + dependencies: + is-invalid-path: 0.1.0 + dev: false + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: false + + /iserror@0.0.2: + resolution: {integrity: sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: false + optional: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: false + + /isobject@4.0.0: + resolution: {integrity: sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==} + engines: {node: '>=0.10.0'} + dev: false + + /isolated-vm@4.7.2: + resolution: {integrity: sha512-JVEs5gzWObzZK5+OlBplCdYSpokMcdhLSs/xWYYxmYWVfOOFF4oZJsYh7E/FmfX8e7gMioXMpMMeEyX1afuKrg==} + engines: {node: '>=16.0.0'} + requiresBuild: true + dependencies: + prebuild-install: 7.1.1 + dev: false + + /jmespath@0.16.0: + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-loader@0.5.7: + resolution: {integrity: sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==} + dev: false + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /json5@0.5.1: + resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} + hasBin: true + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: false + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: false + optional: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + + /last-commit-log@3.3.0: + resolution: {integrity: sha512-qYzhTltQvQ/mMIDWnG16KyUi79y4F5uEqHDDbAJm2HLuWgDuBhZ8g5PyWomYV0wsDQDuYcPWMQdJ91wsZOZ5NQ==} + dependencies: + dotgitconfig: 1.1.2 + dev: false + + /lazy-cache@1.0.4: + resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==} + engines: {node: '>=0.10.0'} + dev: false + + /lcid@1.0.0: + resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} + engines: {node: '>=0.10.0'} + dependencies: + invert-kv: 1.0.0 + 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 + + /lil-http-terminator@1.2.3: + resolution: {integrity: sha512-vQcHSwAFq/kTR2cG6peOVS7SjgksGgSPeH0G2lkw+buue33thE/FCHdn10wJXXshc5RswFy0Iaz48qA2Busw5Q==} + engines: {node: '>=12'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /load-json-file@2.0.0: + resolution: {integrity: sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + strip-bom: 3.0.0 + dev: false + + /loader-runner@2.4.0: + resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + dev: false + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: false + + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: false + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash._baseiteratee@4.7.0: + resolution: {integrity: sha512-nqB9M+wITz0BX/Q2xg6fQ8mLkyfF7MU7eE+MNBNjTHFKeKaZAPEzEg+E8LWxKWf1DQVflNEn9N49yAuqKh2mWQ==} + dependencies: + lodash._stringtopath: 4.8.0 + dev: false + + /lodash._basetostring@4.12.0: + resolution: {integrity: sha512-SwcRIbyxnN6CFEEK4K1y+zuApvWdpQdBHM/swxP962s8HIxPO3alBH5t3m/dl+f4CMUug6sJb7Pww8d13/9WSw==} + dev: false + + /lodash._baseuniq@4.6.0: + resolution: {integrity: sha512-Ja1YevpHZctlI5beLA7oc5KNDhGcPixFhcqSiORHNsp/1QTv7amAXzw+gu4YOvErqVlMVyIJGgtzeepCnnur0A==} + dependencies: + lodash._createset: 4.0.3 + lodash._root: 3.0.1 + dev: false + + /lodash._createset@4.0.3: + resolution: {integrity: sha512-GTkC6YMprrJZCYU3zcqZj+jkXkrXzq3IPBcF/fIPpNEAB4hZEtXU8zp/RwKOvZl43NUmwDbyRk3+ZTbeRdEBXA==} + dev: false + + /lodash._root@3.0.1: + resolution: {integrity: sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==} + dev: false + + /lodash._stringtopath@4.8.0: + resolution: {integrity: sha512-SXL66C731p0xPDC5LZg4wI5H+dJo/EO4KTqOMwLYCH3+FmmfAKJEZCm6ohGpI+T1xwsDsJCfL4OnhorllvlTPQ==} + dependencies: + lodash._basetostring: 4.12.0 + dev: false + + /lodash.uniqby@4.5.0: + resolution: {integrity: sha512-IRt7cfTtHy6f1aRVA5n7kT8rgN3N1nH6MOWLcHfpWG2SH19E3JksLK38MktLxZDhlAjCP9jpIXkOnRXlu6oByQ==} + dependencies: + lodash._baseiteratee: 4.7.0 + lodash._baseuniq: 4.6.0 + dev: false + + /lodash@3.10.1: + resolution: {integrity: sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==} + dev: false + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false + + /lokijs@1.5.12: + resolution: {integrity: sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==} + dev: false + + /longest@1.0.1: + resolution: {integrity: sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==} + engines: {node: '>=0.10.0'} + dev: false + + /lower-case@1.1.4: + resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} + dev: false + + /lru-cache@2.7.3: + resolution: {integrity: sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==} + dev: false + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + 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 + dev: false + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: false + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /make-fetch-happen@9.1.0(bluebird@3.7.2): + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + dependencies: + agentkeepalive: 4.5.0 + cacache: 15.3.0(bluebird@3.7.2) + http-cache-semantics: 4.1.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + optional: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: false + optional: true + + /md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + + /mem@1.1.0: + resolution: {integrity: sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: false + + /memory-fs@0.4.1: + resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} + dependencies: + errno: 0.1.8 + readable-stream: 2.3.8 + dev: false + + /memory-pager@1.5.0: + resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + dev: false + optional: true + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: false + + /merge-options@3.0.4: + resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} + engines: {node: '>=10'} + dependencies: + is-plain-obj: 2.1.0 + dev: false + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: false + + /micromatch@3.1.10(supports-color@4.5.0): + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2(supports-color@4.5.0) + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4(supports-color@4.5.0) + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13(supports-color@4.5.0) + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@4.5.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + dev: false + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + dev: false + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: false + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + dev: false + + /minimatch@0.3.0: + resolution: {integrity: sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==} + deprecated: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue + dependencies: + lru-cache: 2.7.3 + sigmund: 1.0.1 + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: false + optional: true + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: false + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: false + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: false + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: false + optional: true + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: false + + /moment-timezone@0.5.43: + resolution: {integrity: sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==} + dependencies: + moment: 2.29.4 + dev: false + + /moment@2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + dev: false + + /mongodb@3.7.4: + resolution: {integrity: sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==} + engines: {node: '>=4'} + peerDependencies: + aws4: '*' + bson-ext: '*' + kerberos: '*' + mongodb-client-encryption: '*' + mongodb-extjson: '*' + snappy: '*' + peerDependenciesMeta: + aws4: + optional: true + bson-ext: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + mongodb-extjson: + optional: true + snappy: + optional: true + dependencies: + bl: 2.2.1 + bson: 1.1.6 + denque: 1.5.1 + optional-require: 1.1.8 + safe-buffer: 5.2.1 + optionalDependencies: + saslprep: 1.0.3 + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + dev: false + + /nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + dev: false + + /nanoclone@0.2.1: + resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} + dev: false + + /nanomatch@1.2.13(supports-color@4.5.0): + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@4.5.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: false + + /next-line@1.1.0: + resolution: {integrity: sha512-+I10J3wKNoKddNxn0CNpoZ3eTZuqxjNM3b1GImVx22+ePI+Y15P8g/j3WsbP0fhzzrFzrtjOAoq5NCCucswXOQ==} + dev: false + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: false + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: false + + /no-case@2.3.2: + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + dependencies: + lower-case: 1.1.4 + dev: false + + /node-abi@3.54.0: + resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: false + + /node-addon-api@4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} + dev: false + + /node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} + dev: false + + /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-gyp@8.4.1(bluebird@3.7.2): + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + requiresBuild: true + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 9.1.0(bluebird@3.7.2) + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.5.4 + tar: 6.2.0 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + optional: true + + /node-libs-browser@2.2.1: + resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} + dependencies: + assert: 1.5.1 + browserify-zlib: 0.2.0 + buffer: 4.9.2 + console-browserify: 1.2.0 + constants-browserify: 1.0.0 + crypto-browserify: 3.12.0 + domain-browser: 1.2.0 + events: 3.3.0 + https-browserify: 1.0.0 + os-browserify: 0.3.0 + path-browserify: 0.0.1 + process: 0.11.10 + punycode: 1.4.1 + querystring-es3: 0.2.1 + readable-stream: 2.3.8 + stream-browserify: 2.0.2 + stream-http: 2.8.3 + string_decoder: 1.3.0 + timers-browserify: 2.0.12 + tty-browserify: 0.0.0 + url: 0.11.3 + util: 0.11.1 + vm-browserify: 1.1.2 + dev: false + + /node-worker-threads-pool@1.5.1: + resolution: {integrity: sha512-7TXAhpMm+jO4MfESxYLtMGSnJWv+itdNHMdaFmeZuPXxwFGU90mtEB42BciUULXOUAxYBfXILAuvrSG3rQZ7mw==} + dev: false + + /nodemailer@6.9.7: + resolution: {integrity: sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==} + engines: {node: '>=6.0.0'} + dev: false + + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: false + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: false + + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + dependencies: + remove-trailing-separator: 1.1.0 + dev: false + optional: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: false + + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + dev: false + + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: false + optional: true + + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: false + + /numbered@1.1.0: + resolution: {integrity: sha512-pv/ue2Odr7IfYOO0byC1KgBI10wo5YDauLhxY6/saNzAdAs0r1SotGCPzzCLNPL0xtrAwWRialLu23AAu9xO1g==} + dev: false + + /oauth@0.9.15: + resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: false + optional: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: false + optional: true + + /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: false + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: false + optional: 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 + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: false + + /openid@2.0.10: + resolution: {integrity: sha512-EFTQ61/OUVhCeq78Y3rBpdKSuvgb0lwkU8nN4QTdcv0afc5MT7e4IVuZwgkMsgE993dmhbIhkxHFP3iTVJXWmw==} + engines: {node: '>= 0.6.0'} + dependencies: + axios: 0.21.4 + qs: 6.11.2 + transitivePeerDependencies: + - debug + dev: false + + /optional-require@1.1.8: + resolution: {integrity: sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==} + engines: {node: '>=4'} + dependencies: + require-at: 1.0.6 + 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 + + /os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + dev: false + + /os-locale@2.1.0: + resolution: {integrity: sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + lcid: 1.0.0 + mem: 1.1.0 + dev: false + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: false + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: false + + /p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + dev: false + + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: false + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: false + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-map-series@2.1.0: + resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} + engines: {node: '>=8'} + dev: false + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: false + optional: true + + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + dependencies: + p-finally: 1.0.0 + dev: false + + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: false + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: false + + /p-wait-for@3.2.0: + resolution: {integrity: sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==} + engines: {node: '>=8'} + dependencies: + p-timeout: 3.2.0 + dev: false + + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + 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: false + + /parse-app-info@5.0.0: + resolution: {integrity: sha512-uP4Bcso/FvnPpPmO5iPszdf0HoqugxoYjXxnosL6XBxR8gRl78NJdKoRxrsTESeYQv4qN4jThPsCxdmEzpIZ5g==} + engines: {node: '>=14'} + dependencies: + ip: 1.1.8 + last-commit-log: 3.3.0 + lodash: 4.17.21 + read-pkg-up: 7.0.1 + semver: 7.5.4 + dev: false + + /parse-asn1@5.1.6: + resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} + dependencies: + asn1.js: 5.4.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + dev: false + + /parse-err@1.0.0: + resolution: {integrity: sha512-K2RCrbPe7CXezMfRQTZJgCOQB6kyUofAkEriwGfaP4oiwbRm3YDTG6F8qEBSFVA7QiLzph/rMqokPcOz26UxSw==} + engines: {node: '>=6.4.0'} + dependencies: + iserror: 0.0.2 + dev: false + + /parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} + dependencies: + error-ex: 1.3.2 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /parse-request@6.0.2: + resolution: {integrity: sha512-wmCf8NpelQKw0NdBqWAlC+jQ+p4SNrwsD2T/4d4a1VQzVAeC1ZisoAVAGrUTPEfx0ZaLY+F+PTAalk9xM1UsPg==} + engines: {node: '>=14'} + dependencies: + browser-hrtime: 1.1.8 + bson-objectid: 2.0.4 + convert-hrtime: 3.0.0 + cookie: 0.5.0 + credit-card-type: 9.1.0 + debug: 4.3.4 + fast-safe-stringify: 2.1.1 + http-headers: 3.0.2 + is-array-buffer: 3.0.2 + is-buffer: 2.0.5 + is-stream: 2.0.1 + is-uuid: 1.0.2 + ms: 2.1.3 + no-case: 2.3.2 + qs: 6.11.2 + rfdc: 1.3.0 + sensitive-fields: 1.0.1 + url-parse: 1.5.10 + transitivePeerDependencies: + - supports-color + dev: false + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: false + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /passport-github@1.1.0: + resolution: {integrity: sha512-XARXJycE6fFh/dxF+Uut8OjlwbFEXgbPVj/+V+K7cvriRK7VcAOm+NgBmbiLM9Qv3SSxEAV+V6fIk89nYHXa8A==} + engines: {node: '>= 0.4.0'} + dependencies: + passport-oauth2: 1.7.0 + dev: false + + /passport-gitlab2@5.0.0: + resolution: {integrity: sha512-cXQMgM6JQx9wHVh7JLH30D8fplfwjsDwRz+zS0pqC8JS+4bNmc1J04NGp5g2M4yfwylH9kQRrMN98GxMw7q7cg==} + engines: {node: '>= 6.0.0'} + dependencies: + passport-oauth2: 1.7.0 + dev: false + + /passport-http@0.3.0: + resolution: {integrity: sha512-OwK9DkqGVlJfO8oD0Bz1VDIo+ijD3c1ZbGGozIZw+joIP0U60pXY7goB+8wiDWtNqHpkTaQiJ9Ux1jE3Ykmpuw==} + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: 1.0.0 + dev: false + + /passport-local@1.0.0: + resolution: {integrity: sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow==} + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: 1.0.0 + dev: false + + /passport-oauth2@1.7.0: + resolution: {integrity: sha512-j2gf34szdTF2Onw3+76alNnaAExlUmHvkc7cL+cmaS5NzHzDP/BvFHJruueQ9XAeNOdpI+CH+PWid8RA7KCwAQ==} + engines: {node: '>= 0.4.0'} + dependencies: + base64url: 3.0.1 + oauth: 0.9.15 + passport-strategy: 1.0.0 + uid2: 0.0.4 + utils-merge: 1.0.1 + dev: false + + /passport-steam@1.0.17: + resolution: {integrity: sha512-aolIlooF5hZwp1GAaoK3d8einOGLeDDauQEmrb1jtEFrNYP2lC6WS5hVeUdP4rPfZiBHwY60lHcQksCKiSgnlA==} + engines: {node: '>= 0.4.0'} + dependencies: + '@passport-next/passport-openid': 1.0.0 + steam-web: 0.4.0 + transitivePeerDependencies: + - debug + dev: false + + /passport-strategy@1.0.0: + resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} + engines: {node: '>= 0.4.0'} + dev: false + + /passport-token@0.2.0: + resolution: {integrity: sha512-/hpNCYArQQKMnGVhTie/6VA7f1PjZkPS5wx8g7ihq2VaBikBjxk33tXvL8CtT0gPthoxh47oEbkWx5DFzgNYyg==} + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: 1.0.0 + dev: false + + /passport@0.3.2: + resolution: {integrity: sha512-aqgxMQxuRz79M4LVo8fl3/bsh6Ozcb34G8MVDs7Oavy88ROLSVvTgYoWnX3TpxdQg66HiXvpb+lcuFPnDrmiOA==} + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: 1.0.0 + pause: 0.0.1 + dev: false + + /path-browserify@0.0.1: + resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} + dev: false + + /path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + dev: false + optional: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: false + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: false + + /path-type@2.0.0: + resolution: {integrity: sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: false + + /pause@0.0.1: + resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} + dev: false + + /pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: false + + /pg-connection-string@2.6.2: + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + dev: false + + /pick-deep@1.0.0: + resolution: {integrity: sha512-Uy0VUtabou1sPl/vVClBFrWi4Ae/D3Vqu44FJawmm4lnduu5E16ykw8kh15fiUeLQ6lbmXQ0EMr3YIsqpLZl+A==} + engines: {node: '>=6.0.0'} + dependencies: + '@strikeentco/get': 1.0.1 + '@strikeentco/set': 1.0.2 + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + optional: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: false + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.54.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: false + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: false + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: false + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: false + + /promise-inflight@1.0.1(bluebird@3.7.2): + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dependencies: + bluebird: 3.7.2 + dev: false + optional: true + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: false + optional: true + + /property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + 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 + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + dev: false + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: false + + /public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + parse-asn1: 5.1.6 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: false + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + + /punycode@1.3.2: + resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} + dev: false + + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: false + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: false + + /q-json-response@0.1.3: + resolution: {integrity: sha512-v3SbbBCZw1z3ASTJU/cA7kTnevqVrDkiGD1uKm33kZwOuji2QvOqF+kE445h6lOggBclN/D260tlEswiDLI2dw==} + dependencies: + lodash: 3.10.1 + q: 1.5.1 + dev: false + + /q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: false + + /qs@1.2.2: + resolution: {integrity: sha512-xEqT+49YIt+BdwQthXKTOkp7atENe6JqrGGerxBPiER6BArOIiVJtpZZYpWOpq2IOkTPVnDM8CgYvppFoJNwyQ==} + dev: false + + /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: false + + /querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} + engines: {node: '>=0.4.x'} + dev: false + + /querystring@0.2.0: + resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} + engines: {node: '>=0.4.x'} + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + dev: false + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: false + + /ramda@0.27.2: + resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} + dev: false + + /random-bytes@1.0.0: + resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} + engines: {node: '>= 0.8'} + dev: false + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: false + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + 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 + + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + 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 + + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: false + + /read-pkg-up@2.0.0: + resolution: {integrity: sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 2.0.0 + dev: false + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: false + + /read-pkg@2.0.0: + resolution: {integrity: sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 2.0.0 + normalize-package-data: 2.5.0 + path-type: 2.0.0 + dev: false + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: false + + /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@2.2.1(supports-color@4.5.0): + resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} + engines: {node: '>=0.10'} + dependencies: + graceful-fs: 4.2.11 + micromatch: 3.1.10(supports-color@4.5.0) + readable-stream: 2.3.8 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + optional: true + + /redis-commands@1.7.0: + resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==} + dev: false + + /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 + + /redis@3.1.2: + resolution: {integrity: sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==} + engines: {node: '>=10'} + dependencies: + denque: 1.5.1 + redis-commands: 1.7.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: false + optional: true + + /regexpp@2.0.1: + resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} + engines: {node: '>=6.5.0'} + dev: false + + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: false + optional: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: false + + /require-at@1.0.6: + resolution: {integrity: sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==} + engines: {node: '>=4'} + dev: false + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + + /require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + dev: false + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: false + optional: true + + /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 + dev: false + + /restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + dev: false + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: false + optional: true + + /retry-as-promised@7.0.4: + resolution: {integrity: sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==} + dev: false + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: false + optional: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: false + + /right-align@0.1.3: + resolution: {integrity: sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==} + engines: {node: '>=0.10.0'} + dependencies: + align-text: 0.1.4 + dev: false + + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + dev: false + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: false + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: false + + /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@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: false + optional: true + + /safe-timers@1.1.0: + resolution: {integrity: sha512-9aqY+v5eMvmRaluUEtdRThV1EjlSElzO7HuCj0sTW9xvp++8iJ9t/RWGNWV6/WHcUJLHpyT2SNf/apoKTU2EpA==} + dev: false + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /saslprep@1.0.3: + resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + sparse-bitfield: 3.0.3 + dev: false + optional: true + + /sax@1.2.1: + resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} + dev: false + + /screepsbot-zeswarm@1.0.3: + resolution: {integrity: sha512-o/7uNiXYjejqH43s1ZViqqkd0chbKqxwXdONo5j4NVR22KVeYhhFZWxMPzERhcoNCdWporavrXwLTe7z6pvFnw==} + dev: false + + /screepsmod-admin-utils-ui@0.4.0: + resolution: {integrity: sha512-8x5H+i42gDRTHpYvorDdt42GNL+BZilCXCeOsbMWMOBfBrKFz7RATJ8Dk00d/gitx8byZ4d7Z+Co507tlZ6m8w==} + dependencies: + express: 4.18.2 + vue-router-layout: 0.1.6 + transitivePeerDependencies: + - supports-color + dev: false + + /screepsmod-admin-utils@1.31.1(@screeps/backend@3.2.3): + resolution: {integrity: sha512-Ow0wFbXFBGxilTCPm3yUHnQkmsis8sY7jFpXJC1Zt3ECx/bHaogdRQZIrtZ2cfaEOsIsjJv4TPSIFrYzAvfrZg==} + peerDependencies: + '@screeps/backend': '>=3.2.3' + dependencies: + '@screeps/backend': 3.2.3 + axios: 0.19.2 + body-parser: 1.20.2 + lodash: 4.17.21 + ramda: 0.27.2 + screepsmod-admin-utils-ui: 0.4.0 + yamljs: 0.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /screepsmod-auth@2.8.1(@screeps/backend@3.2.3): + resolution: {integrity: sha512-Jo2FhHYH72bdskJP6bExaXdK20YJIJ6+dvLUICirX+xvNNM8ZmnQ/y0avUMl56wdvKiwMl5dZFIHc1ptKU/g6Q==} + peerDependencies: + '@screeps/backend': '>=3.2.0' + dependencies: + '@screeps/backend': 3.2.3 + basic-auth: 1.1.0 + body-parser: 1.20.2 + cookie-parser: 1.4.6 + express: 4.18.2 + ini: 1.3.8 + passport: 0.3.2 + passport-github: 1.1.0 + passport-gitlab2: 5.0.0 + passport-http: 0.3.0 + passport-local: 1.0.0 + passport-steam: 1.0.17 + transitivePeerDependencies: + - debug + - supports-color + dev: false + + /screepsmod-dynamicmarket@1.1.14: + resolution: {integrity: sha512-ZYYSPyBrVweKELAKd+nzG7SXwkPB4eFQrFgLr6kakbzMo+aMYc8g2n0gkGJ+aYjwvxdFW6JbYyOdhWuNr4bhCQ==} + dev: false + + /screepsmod-history@1.6.0: + resolution: {integrity: sha512-fO9KEgj1133kwsHT05Mj6cTsZ0OnDrmne/MRy1Yca7hxNqOYJOR2zJP8Nsu2tuRGwCmBJYJzttKWuy3Axqpwjg==} + dependencies: + aws-sdk: 2.1499.0 + bluebird: 3.7.2 + ini: 1.3.8 + lodash: 4.17.21 + mkdirp: 0.5.6 + node-worker-threads-pool: 1.5.1 + sequelize: 6.35.1(sqlite3@5.1.6) + sqlite3: 5.1.6(bluebird@3.7.2) + transitivePeerDependencies: + - encoding + - ibm_db + - mariadb + - mysql2 + - oracledb + - pg + - pg-hstore + - snowflake-sdk + - supports-color + - tedious + dev: false + + /screepsmod-mail-aws-ses@1.1.0: + resolution: {integrity: sha512-xwwDGfFz5YixhRjWPqs1A6stMojxlIQvm6BsLXGBBzlXGqdUZOIsIcrpTEFHVVxNsVxxbw7NpYVHZAvxJhsZzg==} + dependencies: + aws-sdk: 2.1499.0 + handlebars: 4.7.8 + nodemailer: 6.9.7 + dev: false + + /screepsmod-map-tool@1.10.0: + resolution: {integrity: sha512-dqxSEqBxMQ9dO/0A64wF2WvdYIpfpr1cLaW1MeEMz/RQsVCEN/rrWmfJy9XhYrT5Hn+AkgJWFREzPz5LgauSWg==} + dependencies: + basic-auth: 2.0.1 + dev: false + + /screepsmod-market@1.2.0: + resolution: {integrity: sha512-h+fsArAesv8p9tYvYaROgMNxyjuUxZY9B1yARJftN9eBE6JSNJeltplA8hE0yJzjqX5EJT0CizgpRyndgX5OxQ==} + dependencies: + yamljs: 0.3.0 + dev: false + + /screepsmod-mongo@2.11.1: + resolution: {integrity: sha512-NTnsSnhok+kYiF1PAMamP1GlvjWXQG8dKejmO/47HiQ3jEOyFxRYDA51Yo1IQ44sWnUkXwksraBtmbtQvOSZkQ==} + dependencies: + body-parser: 1.20.2 + express: 4.18.2 + ini: 1.3.8 + lodash: 4.17.21 + mongodb: 3.7.4 + q: 1.5.1 + q-json-response: 0.1.3 + redis: 3.1.2 + transitivePeerDependencies: + - aws4 + - bson-ext + - kerberos + - mongodb-client-encryption + - mongodb-extjson + - snappy + - supports-color + dev: false + + /screepsmod-pure-automation@1.0.3: + resolution: {integrity: sha512-/Voz+8ir/K+QSDNnP3x3fPI08seFeHBaGxq2troj4pKp1nM7MiIjES9oloUvWKP0nE8JfYh+Z2SSy5w7ZzlpoA==} + dependencies: + ini: 1.3.8 + dev: false + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: false + + /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 + dev: false + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9(supports-color@4.5.0) + 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 + + /sensitive-fields@1.0.1: + resolution: {integrity: sha512-hGytH4oxZYaJwskUmnt6gJlk3WALnxZME/Tn/PMKrZmp64cC2LjJBOSAoXQmQZDJCrgtjGA1uNouiQpbuY+wOQ==} + engines: {node: '>=14'} + dev: false + + /sequelize-pool@7.1.0: + resolution: {integrity: sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==} + engines: {node: '>= 10.0.0'} + dev: false + + /sequelize@6.35.1(sqlite3@5.1.6): + resolution: {integrity: sha512-UlP5k33nJsN11wCDLaWZXw9bB8w4ESKc5QmG6D04qMimwBwKVNeqRJiaaBlEJdtg8cRK+OJh95dliP+uEi+g9Q==} + engines: {node: '>=10.0.0'} + peerDependencies: + ibm_db: '*' + mariadb: '*' + mysql2: '*' + oracledb: '*' + pg: '*' + pg-hstore: '*' + snowflake-sdk: '*' + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + ibm_db: + optional: true + mariadb: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-hstore: + optional: true + snowflake-sdk: + optional: true + sqlite3: + optional: true + tedious: + optional: true + dependencies: + '@types/debug': 4.1.12 + '@types/validator': 13.11.6 + debug: 4.3.4 + dottie: 2.0.6 + inflection: 1.13.4 + lodash: 4.17.21 + moment: 2.29.4 + moment-timezone: 0.5.43 + pg-connection-string: 2.6.2 + retry-as-promised: 7.0.4 + semver: 7.5.4 + sequelize-pool: 7.1.0 + sqlite3: 5.1.6(bluebird@3.7.2) + toposort-class: 1.0.1 + uuid: 8.3.2 + validator: 13.11.0 + wkx: 0.5.0 + transitivePeerDependencies: + - supports-color + 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-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: false + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: false + optional: true + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: false + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: false + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: false + + /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 + dev: false + + /sigmund@1.0.1: + resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} + dev: false + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: false + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + dev: false + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: false + optional: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: false + optional: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: false + optional: true + + /snapdragon@0.8.2(supports-color@4.5.0): + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9(supports-color@4.5.0) + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: false + + /socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + dev: false + optional: true + + /source-list-map@2.0.1: + resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} + dev: false + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: false + optional: true + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + 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'} + dev: false + + /sparse-bitfield@3.0.3: + resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + dependencies: + memory-pager: 1.5.0 + dev: false + optional: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: false + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: false + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: false + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: false + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: false + optional: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false + + /sqlite3@5.1.6(bluebird@3.7.2): + resolution: {integrity: sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==} + requiresBuild: true + peerDependenciesMeta: + node-gyp: + optional: true + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + node-addon-api: 4.3.0 + tar: 6.2.0 + optionalDependencies: + node-gyp: 8.4.1(bluebird@3.7.2) + transitivePeerDependencies: + - bluebird + - encoding + - supports-color + dev: false + + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: false + optional: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /steam-web@0.4.0: + resolution: {integrity: sha512-FgSYhL7GaP4Va5JKT09yZ+WrTZttFtLwenIPuZd7GUA1z3W7vu7qqPT/qTC76Pd9+sf85txMgIPr/y0+3gNlUA==} + engines: {'0': node >= 0.4.0} + dependencies: + qs: 6.11.2 + dev: false + + /steam-webapi@0.6.5: + resolution: {integrity: sha512-4b9hLMLSRtMEJW12xReId8AhcMOkU25hK2cuTDRupk+dWXMAvRwVCpJqLEb9PuVYQ5IBOWflWaFnL77NtkkpIQ==} + dependencies: + qs: 1.2.2 + dev: false + + /stream-browserify@2.0.2: + resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + dev: false + + /stream-http@2.8.3: + resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==} + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + to-arraybuffer: 1.0.1 + xtend: 4.0.2 + dev: false + + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + + /string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: false + + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: false + + /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@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: false + + /strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: false + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: false + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + + /supports-color@4.5.0: + resolution: {integrity: sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==} + engines: {node: '>=4'} + dependencies: + has-flag: 2.0.0 + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: false + + /table@5.4.6: + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} + engines: {node: '>=6.0.0'} + dependencies: + ajv: 6.12.6 + lodash: 4.17.21 + slice-ansi: 2.1.0 + string-width: 3.1.0 + dev: false + + /tapable@0.2.9: + resolution: {integrity: sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==} + engines: {node: '>=0.6'} + dev: false + + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: false + + /timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + dependencies: + setimmediate: 1.0.5 + dev: false + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: false + + /to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} + dev: false + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: false + optional: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + 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: false + optional: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: false + optional: true + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + + /toposort-class@1.0.1: + resolution: {integrity: sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==} + dev: false + + /toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + dev: false + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /ts-node@10.9.1(@types/node@20.9.2)(typescript@5.2.2): + 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': 20.9.2 + acorn: 8.11.2 + acorn-walk: 8.3.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.2.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + + /tty-browserify@0.0.0: + resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} + dev: false + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /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-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: false + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: false + + /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==} + dev: false + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + dev: false + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /uglify-js@2.8.29: + resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + source-map: 0.5.7 + yargs: 3.10.0 + optionalDependencies: + uglify-to-browserify: 1.0.2 + dev: false + + /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 + + /uglify-to-browserify@1.0.2: + resolution: {integrity: sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==} + requiresBuild: true + dev: false + optional: true + + /uglifyjs-webpack-plugin@0.4.6(webpack@3.12.0): + resolution: {integrity: sha512-TNM20HMW67kxHRNCZdvLyiwE1ST6WyY5Ae+TG55V81NpvNwJ9+V4/po4LHA1R9afV/WrqzfedG2UJCk2+swirw==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + requiresBuild: true + peerDependencies: + webpack: ^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0 + dependencies: + source-map: 0.5.7 + uglify-js: 2.8.29 + webpack: 3.12.0 + webpack-sources: 1.4.3 + dev: false + + /uid-safe@2.1.5: + resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} + engines: {node: '>= 0.8'} + dependencies: + random-bytes: 1.0.0 + dev: false + + /uid2@0.0.4: + resolution: {integrity: sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==} + dev: false + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: false + optional: true + + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + dependencies: + unique-slug: 2.0.2 + dev: false + optional: true + + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + dependencies: + imurmurhash: 0.1.4 + dev: false + optional: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: false + optional: true + + /unset-value@2.0.1: + resolution: {integrity: sha512-2hvrBfjUE00PkqN+q0XP6yRAOGrR06uSiUoIQGZkc7GxvQ9H7v8quUPNtZjMg4uux69i8HWpIjLPUKwCuRGyNg==} + engines: {node: '>=10'} + dependencies: + has-value: 2.0.2 + isobject: 4.0.0 + dev: false + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: false + optional: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: false + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: false + optional: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: false + + /url@0.10.3: + resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} + dependencies: + punycode: 1.3.2 + querystring: 0.2.0 + dev: false + + /url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + dependencies: + punycode: 1.4.1 + qs: 6.11.2 + dev: false + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /util@0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + dependencies: + inherits: 2.0.3 + dev: false + + /util@0.11.1: + resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==} + dependencies: + inherits: 2.0.3 + dev: false + + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.13 + dev: false + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: false + + /uuid@8.0.0: + resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} + hasBin: true + dev: false + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: false + + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + dev: false + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + + /vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + dev: false + + /vue-router-layout@0.1.6: + resolution: {integrity: sha512-l6s2Epc6wHTKZyN+ipFphI2dGoCX9S88VmtlA9vFhUpX+1zzRDAQ0HzQ7WWYWaDHlO0SRfQA3kKtZzsr1UoIOQ==} + dev: false + + /watchpack-chokidar2@2.0.1(supports-color@4.5.0): + resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} + requiresBuild: true + dependencies: + chokidar: 2.1.8(supports-color@4.5.0) + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /watchpack@1.7.5(supports-color@4.5.0): + resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} + dependencies: + graceful-fs: 4.2.11 + neo-async: 2.6.2 + optionalDependencies: + chokidar: 3.5.3 + watchpack-chokidar2: 2.0.1(supports-color@4.5.0) + transitivePeerDependencies: + - supports-color + dev: false + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false + + /webpack-shell-plugin@0.5.0: + resolution: {integrity: sha512-BJMcVgXzA7Yc/Dq9JFj/wvquYG5qP3lgmCpMYzhP1a+LxZ/z3TbqKJ3W2xTkzQqBeYsgTdOcSdZ/+qYoFBhMhA==} + dev: false + + /webpack-sources@1.4.3: + resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + dependencies: + source-list-map: 2.0.1 + source-map: 0.6.1 + dev: false + + /webpack@3.12.0: + resolution: {integrity: sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + hasBin: true + peerDependencies: + webpack-cli: '*' + webpack-command: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + webpack-command: + optional: true + dependencies: + acorn: 5.7.4 + acorn-dynamic-import: 2.0.2 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + async: 2.6.4 + enhanced-resolve: 3.4.1 + escope: 3.6.0 + interpret: 1.4.0 + json-loader: 0.5.7 + json5: 0.5.1 + loader-runner: 2.4.0 + loader-utils: 1.4.2 + memory-fs: 0.4.1 + mkdirp: 0.5.6 + node-libs-browser: 2.2.1 + source-map: 0.5.7 + supports-color: 4.5.0 + tapable: 0.2.9 + uglifyjs-webpack-plugin: 0.4.6(webpack@3.12.0) + watchpack: 1.7.5(supports-color@4.5.0) + webpack-sources: 1.4.3 + yargs: 8.0.2 + 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-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + + /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: false + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + optional: true + + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: false + + /window-size@0.1.0: + resolution: {integrity: sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==} + engines: {node: '>= 0.8.0'} + dev: false + + /wkx@0.5.0: + resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} + dependencies: + '@types/node': 20.9.2 + dev: false + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /wordwrap@0.0.2: + resolution: {integrity: sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==} + engines: {node: '>=0.4.0'} + dev: false + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: false + + /wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /write@1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} + dependencies: + mkdirp: 0.5.6 + dev: false + + /xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.1 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: false + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: false + + /y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} + dev: false + + /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==} + dev: false + + /yamljs@0.3.0: + resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==} + hasBin: true + dependencies: + argparse: 1.0.10 + glob: 7.2.3 + dev: false + + /yargs-parser@7.0.0: + resolution: {integrity: sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==} + dependencies: + camelcase: 4.1.0 + dev: false + + /yargs@3.10.0: + resolution: {integrity: sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==} + dependencies: + camelcase: 1.2.1 + cliui: 2.1.0 + decamelize: 1.2.0 + window-size: 0.1.0 + dev: false + + /yargs@8.0.2: + resolution: {integrity: sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==} + dependencies: + camelcase: 4.1.0 + cliui: 3.2.0 + decamelize: 1.2.0 + get-caller-file: 1.0.3 + os-locale: 2.1.0 + read-pkg-up: 2.0.0 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 2.1.1 + which-module: 2.0.1 + y18n: 3.2.2 + yargs-parser: 7.0.0 + dev: false + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yup@0.32.9: + resolution: {integrity: sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==} + engines: {node: '>=10'} + dependencies: + '@babel/runtime': 7.23.4 + '@types/lodash': 4.14.201 + lodash: 4.17.21 + lodash-es: 4.17.21 + nanoclone: 0.2.1 + property-expr: 2.0.6 + toposort: 2.0.2 + dev: false + + file:screeps-driver-5.2.5.tgz: + resolution: {integrity: sha512-JOZRS0YTheequD6eIycYy+awuI6V/PifRFSjzR7BLmESmM8W1UI30y5BRr8e4KBoP0Ce0Ke6TybQ/alRXp/pHw==, tarball: file:screeps-driver-5.2.5.tgz} + name: '@screeps/driver' + version: 5.2.5 + requiresBuild: true + dependencies: + '@screeps/backend': 3.2.5 + '@screeps/common': 2.15.5 + '@screeps/engine': 4.2.22 + '@screeps/pathfinding': 0.4.17 + '@screeps/storage': 5.1.2 + generic-pool: 3.9.0 + isolated-vm: 4.7.2 + lodash: 3.10.1 + nan: 2.18.0 + node-addon-api: 7.1.0 + q: 1.5.1 + webpack: 3.12.0 + webpack-shell-plugin: 0.5.0 + transitivePeerDependencies: + - webpack-cli + - webpack-command + dev: false diff --git a/screeps-driver-5.2.5.tgz b/screeps-driver-5.2.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7c743b5fe265769d131077454ce973220c015bed GIT binary patch literal 78480 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

-{s>CJJ70JW*(D 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 ALI3~& literal 0 HcmV?d00001 diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..887e8cb --- /dev/null +++ b/src/app.ts @@ -0,0 +1,41 @@ +import Graceful from '@ladjs/graceful' +import Bree from 'bree' +// @ts-ignore +import Cabin from 'cabin' +import { ConfigManager } from './config' +import { ModuleManager } from './modules' + +const bree = new Bree({ + logger: new Cabin(), + jobs: [], + root: false, // join(__dirname, '../jobs'), + async workerMessageHandler(message, workerMetadata) { + if (message === 'terminate') { + await bree.stop() + console.log('Worker triggered terminate') + process.exit() + } + }, + // removeCompleted: true, +}) + +// handle graceful reloads, pm2 support, and events like SIGHUP, SIGINT, etc. +const graceful = new Graceful({ brees: [bree] }) +graceful.listen(); + +// start all jobs (this is the equivalent of reloading a crontab): +(async () => { + const cm = new ConfigManager() + const config = await cm.getConfig() + const modman = new ModuleManager(config, bree) + for(const mod of config.mods) { + await modman.enableMod(mod) + } + await modman.writeMods() + for(const [module, enabled] of Object.entries(config.modules)) { + if (enabled) { + await modman.startModule(module) + } + } + // await bree.start() +})() diff --git a/src/config.ts b/src/config.ts new file mode 100644 index 0000000..60ec044 --- /dev/null +++ b/src/config.ts @@ -0,0 +1,155 @@ +import jsYaml from 'js-yaml' +import { access, readFile } from 'node:fs/promises' +import os from 'node:os' +import path from 'node:path' + +export type StringMap = { + [key: string]: string +} + +export type EnvMap = StringMap + +export interface ConfigEnv { + [name: string]: EnvMap + // shared: EnvMap + // backend: EnvMap + // engine: EnvMap + // storage: EnvMap +} + +export interface ConfigBackup { + dirs: string[] + files: string[] +} + +export interface ConfigCli { + username: string + password: string + host: string + port: number +} + +export interface Config { + steamKey: string + steamKeyFile: string + cli: ConfigCli + env: ConfigEnv + processors: number + runnerThreads: number + version: string + nodeVersion: string + mods: string[] + bots: StringMap + extraPackages: StringMap + localMods: string + backup: ConfigBackup + modules: { + backend: boolean + main: boolean + processor: boolean + runner: boolean + storage: boolean + } +} + +export class ConfigManager { + public readonly config: Config + constructor() { + const cores = os.cpus().length + const runners = Math.max(1, cores - 1) + this.config = { + processors: cores, + runnerThreads: runners, + version: 'latest', + nodeVersion: 'Erbium', + steamKey: '', + steamKeyFile: '', + cli: { + username: '', + password: '', + host: '127.0.0.1', + port: 21026, + }, + env: { + shared: { + MODFILE: 'mods.json', + STORAGE_HOST: '127.0.0.1', + STORAGE_PORT: '21027', + }, + backend: { + GAME_HOST: '0.0.0.0', + GAME_PORT: '21025', + CLI_HOST: '127.0.0.1', + CLI_PORT: '21026', + ASSET_DIR: 'assets', + }, + engine: { + // DRIVER_MODULE: path.resolve(__dirname, '../driver'), + DRIVER_MODULE: '@screeps/driver' + }, + storage: { + DB_PATH: 'db.json', + }, + }, + localMods: 'mods', + mods: [], + bots: {}, + extraPackages: {}, + backup: { + dirs: [], + files: [], + }, + modules: { + backend: true, + main: true, + processor: true, + runner: true, + storage: true, + }, + } + } + async getConfig(dir: string = ''): Promise { + const files = ['config.yml', 'config.yaml'] + for (const file of files) { + const filePath = dir ? path.join(dir, file) : file + try { + const data = await readFile(filePath, 'utf8') + const conf = jsYaml.load(data) as Partial + Object.assign(this.config, conf) + console.log(`Loaded config from ${filePath}`) + } catch(e) { + // Ignore, not handling missing files. + } + } + await this.syncConfig() + return this.config + } + + async syncConfig() { + const c = this.config + c.env.shared["MODFILE"] = "mods.json" + c.env.backend = Object.assign(c.env.backend, c.env.shared, c.env.backend) + c.env.engine = Object.assign(c.env.engine, c.env.shared, c.env.engine) + c.env.storage = Object.assign(c.env.storage, c.env.shared, c.env.storage) + if (c.runnerThreads > 0) { + c.env.engine['RUNNER_THREADS'] = c.runnerThreads.toString() + } + const isSuccess = (p: Promise): Promise => p.then(() => true).catch(() => false) + if (await isSuccess(access('STEAM_KEY'))) { + c.steamKeyFile = 'STEAM_KEY' + } + if (c.steamKeyFile) { + c.steamKey = await readFile(c.steamKeyFile, 'utf8') + } + if (c.steamKey) { + c.env.backend['STEAM_KEY'] = c.steamKey + } + if (!c.backup.dirs) { + c.backup.dirs = [] + } + if (!c.backup.files) { + c.backup.files = [] + } + return c + } +} \ No newline at end of file diff --git a/src/mod.ts b/src/mod.ts new file mode 100644 index 0000000..b309168 --- /dev/null +++ b/src/mod.ts @@ -0,0 +1,124 @@ +import { parentPort } from 'worker_threads' +import type { Config, ModConstructor } from './mod.types' + +enum TestConditionType { + RoomObject = 'roomObject', + EnvValue = 'envValue', +} + +interface TestConditionBase { + type: TestConditionType +} + +interface TestConditionRoomObject extends TestConditionBase { + type: TestConditionType.RoomObject + roomObject: Partial +} + +interface TestConditionEnvValue extends TestConditionBase { + type: TestConditionType.EnvValue + key: string + value: string +} + +type TestConditionFn = (config: Config) => Promise + +type TestCondition = TestConditionRoomObject | TestConditionEnvValue | TestConditionFn + +interface Test { + condition: TestCondition + action: (config: Config) => Promise + triggered?: boolean + repeat?: boolean +} + +const mod: ModConstructor = config => { + let tests: Test[] = [] + + + + tests.push({ + condition: { + type: TestConditionType.EnvValue, + key: 'gameTime', + value: '100', + }, + async action(config) { + console.log('Tick 100 hit, terminating!') + config.screepsLauncher.terminate() + } + }) + + tests.push({ + async condition(config) { + return true // Forcing trigger, for abuse purpose + }, + async action(config) { + // config.utils. + } + }) + + const doTest = async (test: Test) => { + if (test.triggered && !test.repeat) return + const { condition, action } = test + const map = () => { + if (typeof condition === 'function') return condition(config) + if (condition.type === TestConditionType.EnvValue) { + return testForEnvValue(condition.key, condition.value) + } + if (condition.type === TestConditionType.RoomObject) { + return testForRoomObject(condition.roomObject) + } + return Promise.resolve(false) + } + const ret = await map() + if (ret) { + await action(config) + test.triggered = true + } + } + + const screepsLauncher = config.screepsLauncher = config.screepsLauncher || {} + screepsLauncher.terminate = () => { + parentPort?.postMessage('terminate') + } + + if (config.backend) { + config.backend.on('expressPreConfig', () => { + + }) + } + if (config.engine) { + config.engine.on('init', module => { + if (module === 'main') { + if (!config.engine) return // Just to satisfy TS + const orig = config.engine.mainLoopCustomStage + config.engine.mainLoopCustomStage = async () => { + await Promise.all(tests.map(doTest)) + } + } + }) + } + + async function testForRoomObject(object: Partial) { + const rec = await config.common.storage.db['rooms.objects'].findOne(object) + return !!rec + } + + async function testForEnvValue(key: string, value: string) { + const val = await config.common.env.get(key) + return val == value + } +} + +interface RoomObject { + _id: string + type: string + room: string + name: string + x: number + y: number + [prop: string]: any +} + +export default mod \ No newline at end of file diff --git a/src/mod.types.ts b/src/mod.types.ts new file mode 100644 index 0000000..0811d13 --- /dev/null +++ b/src/mod.types.ts @@ -0,0 +1,88 @@ +import EventEmitter from "node:events" +import { Socket } from "node:net" + +export interface CronJobs { + [name: string]: [time: number, () => void, number] +} + +export interface Backend extends EventEmitter { + on(event: 'expressPreConfig', listener: (app: any) => void): this +} + +export interface Engine extends EventEmitter { + on(event: 'init', listener: (module: string) => void): this + mainLoopCustomStage(): Promise +} + +export type DBQuery = any +export interface DBUpdateOpts { + multi: boolean +} + +export interface DBFindExOpts { + offset: number + skip: number +} + +export interface Database { + [collectionName: string]: Collection +} +export interface Collection { + find(query: DBQuery, projection?: any): Promise + findOne(query: DBQuery): Promise + findEx(query: DBQuery, opts?: DBFindExOpts): Promise + insert(doc: Partial | Partial[]): Promise + count(query: DBQuery): Promise + update(doc: T | { $set: Partial }, opts?: DBUpdateOpts): Promise + update(query: DBQuery, doc: T | { $set: Partial }, opts?: DBUpdateOpts): Promise + drop(): Promise + clear(): Promise + by(_id: string): Promise + bulk(bulk: any, cb: (err?: string) => void): Promise +} + +export interface Storage { + db: Database + env: any + pubsub: any +} + +export interface Env { + get(key: string): Promise + set(key: string, value: string): Promise +} + +export interface Common { + storage: Storage + env: Env +} + +export interface CliSandbox { + print(...args: any): void + storage: Storage + map: any + bots: any + strongholds: any + system: any +} + +export interface Cli extends EventEmitter { + greeting: string + connectionListener(socket: Socket): void + createSandbox(outputCallback: (data: string) => void): CliSandbox + on(event: 'sandbox', listener: (sanbox: CliSandbox) => void): this +} + +export interface Config { + common: Common + cronjobs?: CronJobs + cli?: Cli + backend?: Backend + engine?: Engine + screepsLauncher: { + terminate(): void + } + [name: string]: any +} + +export type ModConstructor = (config: Config) => void \ No newline at end of file diff --git a/src/modules.ts b/src/modules.ts new file mode 100644 index 0000000..d0da186 --- /dev/null +++ b/src/modules.ts @@ -0,0 +1,163 @@ +import Bree from "bree" +import { createWriteStream } from "node:fs" +import { mkdir, readFile, readdir, writeFile } from "node:fs/promises" +import { dirname, join } from "node:path" +import { Config } from "./config" + +const moduleCode = `process.on('unhandledRejection', err => console.error(err));require(process.argv[2])` + +interface BotMap { + [key: string]: string +} + +interface BotFile { + mods: string[] + bots: BotMap +} + +const moduleMap = { + backend: { + envKey: 'backend', + module: '@screeps/backend/bin/start', + }, + main: { + envKey: 'engine', + module: '@screeps/engine/dist/main', + }, + processor: { + envKey: 'engine', + module: '@screeps/engine/dist/processor', + }, + runner: { + envKey: 'engine', + module: '@screeps/engine/dist/runner', + }, + storage: { + envKey: 'storage', + module: '@screeps/storage/bin/start', + }, +} as { + [name: string]: { + envKey: string + module: string + } +} + +export class ModuleManager { + public config: Config + private bree: Bree + private jobs: { [module: string]: string[] } = {} + constructor(config: Config, bree: Bree) { + this.config = config + this.bree = bree + this.bree.on('worker deleted', worker => { + const [mod] = worker.split('_') + if(this.jobs[mod].includes(worker)) { + setTimeout(() => { + console.log(`Restarting ${worker}`) + // bree.start(worker) + }, 1000); + + } + }) + } + async startModule(name: string) { + await this.stopModule(name) + console.log(`Starting ${name}`) + const ps = [] + const jobs = this.jobs[name] = this.jobs[name] || [] + const add = async (job: string) => { + const mod = moduleMap[name] + const env = Object.assign({}, this.config.env[mod.envKey] || {}, process.env) + console.log(job, env) + await this.bree.add({ + name: job, + path: moduleCode, //`${__dirname}/jobs/${name}.js`, + worker: { + argv: [require.resolve(mod.module)], + eval: true, + env, + // stdout: true, + // stderr: true, + }, + }) + await this.bree.start(job) + const worker = await this.bree.workers.get(job) + await mkdir('logs', {recursive:true}) + const log = createWriteStream(`logs/${job}.log`, { flags: 'a' }) + worker?.stdout.on('data', data => { + console.log(job, data) + log.write(data, () => {}) + }) + worker?.stderr.on('data', data => { + console.log(job, data) + log.write(data, () => {}) + }) + worker?.on('exit', () => log.close()) + } + switch (name) { + case 'processor': + for (let i = 0; i < this.config.processors; i++) { + const n = `processor_${i}` + await add(n) + jobs.push(n) + } + break + default: + await add(name) + jobs.push(name) + break + } + // await Promise.all(ps) + } + async stopModule(name: string) { + const jobs = this.jobs[name] || [] + this.jobs[name] = [] + if (!jobs.length) return + console.log(`Stopping ${name}`) + await Promise.all(jobs.map(async j => { + await this.bree.stop(j) + await this.bree.remove(j) + })) + } + enableMod(mod: string) { + const mods = new Set(this.config.mods) + mods.add(mod) + this.config.mods = Array.from(mods) + } + + disableMod(mod: string) { + const mods = new Set(this.config.mods) + mods.delete(mod) + this.config.mods = Array.from(mods) + } + + async writeMods() { + const c = this.config + const bots: BotMap = {} + const mods = await Promise.all(c.mods.map(mod => this.getPackageMain(mod))) + for (const [name, bot] of Object.values(c.bots)) { + if (bot.startsWith('.')) { + bots[name] = bot + } else { + const main = await this.getPackageMain(bot) + bots[name] = dirname(main) + } + } + if (c.localMods) { + await mkdir(c.localMods, { recursive: true }) + const modDir = await readdir(c.localMods) + mods.push(...modDir + .filter(m => m.endsWith('.js')) + .map(m => join(c.localMods, m)) + ) + } + console.log(`Writing ${mods.length} mods and ${Object.keys(bots).length} bots to mods.json`) + await writeFile('mods.json', JSON.stringify({ mods, bots, }, null, 2)) + } + + async getPackageMain(pkg: string): Promise { + const pack = JSON.parse(await readFile(join(__dirname, '..', 'node_modules', pkg, 'package.json'), 'utf8')) + return join(__dirname, '..', 'node_modules', pkg, pack.main) + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2094a1f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@tsconfig/node18/tsconfig.json", + "compilerOptions": { + "rootDir": "src/", + "outDir": "dist/", + } +} \ No newline at end of file