diff --git a/.changeset/big-years-repair.md b/.changeset/big-years-repair.md new file mode 100644 index 000000000..b32335d54 --- /dev/null +++ b/.changeset/big-years-repair.md @@ -0,0 +1,8 @@ +--- +'@verdaccio/api': minor +'@verdaccio/middleware': minor +'@verdaccio/utils': minor +'@verdaccio/web': minor +--- + +feat: expose middleware utils diff --git a/.github/workflows/e2e-ci.yml b/.github/workflows/e2e-ci.yml index 3778fc6f8..1bea778e0 100644 --- a/.github/workflows/e2e-ci.yml +++ b/.github/workflows/e2e-ci.yml @@ -75,14 +75,15 @@ jobs: strategy: fail-fast: false matrix: - pkg: [npm6, npm7, npm8, npm9, pnpm6, pnpm7, yarn1, yarn2, yarn3, yarn4] - name: ${{ matrix.pkg }} / ${{ matrix.os }} + pkg: [npm6, npm7, npm8, npm9, pnpm6, pnpm7, yarn1, yarn2, yarn3, yarn4] + node: [16, 18, 19] + name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }} runs-on: ubuntu-latest steps: - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # tag=v3 - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # tag=v3 with: - node-version-file: '.nvmrc' + node-version: ${{ matrix.node }} - name: Install pnpm run: npm i pnpm@6.32.15 -g - uses: actions/cache@58c146cc91c5b9e778e71775dfe9bf1442ad9a12 # v3 diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index 9d730d4b8..c7c419dc7 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -42,7 +42,6 @@ export default function (config: Config, auth: Auth, storage: Storage): Router { // TODO: For some reason? what reason? app.param('_rev', match(/^-rev$/)); app.param('org_couchdb_user', match(/^org\.couchdb\.user:/)); - app.param('anything', match(/.*/)); app.use(auth.apiJWTmiddleware()); app.use(bodyParser.json({ strict: false, limit: config.max_body_size || '10mb' })); // @ts-ignore diff --git a/packages/middleware/.babelrc b/packages/middleware/.babelrc index 633f93f42..73b7005da 100644 --- a/packages/middleware/.babelrc +++ b/packages/middleware/.babelrc @@ -1,3 +1,14 @@ { - "extends": "../../.babelrc" + "extends": "../../.babelrc", + "presets": [ + [ + "@babel/env", + { + "targets": { + "node": 12 + } + } + ], + "@babel/typescript" + ] } diff --git a/packages/middleware/jest.config.js b/packages/middleware/jest.config.js index 7da7d2da8..85e888999 100644 --- a/packages/middleware/jest.config.js +++ b/packages/middleware/jest.config.js @@ -1,3 +1,12 @@ const config = require('../../jest/config'); -module.exports = Object.assign({}, config, {}); +module.exports = Object.assign({}, config, { + coverageThreshold: { + global: { + lines: 67, + functions: 80, + branches: 56, + statements: 67, + }, + }, +}); diff --git a/packages/middleware/package.json b/packages/middleware/package.json index 33746435d..92bf5a69c 100644 --- a/packages/middleware/package.json +++ b/packages/middleware/package.json @@ -35,19 +35,23 @@ "build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json", "build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps", "watch": "pnpm build:js -- --watch", + "test": "jest", "build": "pnpm run build:js && pnpm run build:types" }, "dependencies": { - "debug": "4.3.4", - "body-parser": "1.20.1", - "@verdaccio/auth": "workspace:6.0.0-6-next.34", "@verdaccio/core": "workspace:6.0.0-6-next.55", "@verdaccio/logger": "workspace:6.0.0-6-next.23", "@verdaccio/utils": "workspace:6.0.0-6-next.23", - "lodash": "4.17.21" + "debug": "4.3.4", + "lodash": "4.17.21", + "mime": "2.6.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/verdaccio" + }, + "devDependencies": { + "body-parser": "1.20.1", + "supertest": "6.3.3" } } diff --git a/packages/middleware/src/index.ts b/packages/middleware/src/index.ts index 2d3c0f4ef..27d775957 100644 --- a/packages/middleware/src/index.ts +++ b/packages/middleware/src/index.ts @@ -1 +1,17 @@ -export * from './middleware'; +export { match } from './middlewares/match'; +export { setSecurityWebHeaders } from './middlewares/security-headers'; +export { validateName, validatePackage } from './middlewares/validation'; +export { media } from './middlewares/media'; +export { encodeScopePackage } from './middlewares/encode-pkg'; +export { expectJson } from './middlewares/json'; +export { antiLoop } from './middlewares/antiLoop'; +export { final } from './middlewares/final'; +export { allow } from './middlewares/allow'; +export { errorReportingMiddleware, handleError } from './middlewares/error'; +export { + log, + LOG_STATUS_MESSAGE, + LOG_VERDACCIO_BYTES, + LOG_VERDACCIO_ERROR, +} from './middlewares/log'; +export * from './types'; diff --git a/packages/middleware/src/middleware.ts b/packages/middleware/src/middleware.ts deleted file mode 100644 index ad0cbad79..000000000 --- a/packages/middleware/src/middleware.ts +++ /dev/null @@ -1,413 +0,0 @@ -import buildDebug from 'debug'; -import { NextFunction, Request, Response } from 'express'; -import { HttpError } from 'http-errors'; -import _ from 'lodash'; - -import { Auth } from '@verdaccio/auth'; -import { - API_ERROR, - HEADERS, - HEADER_TYPE, - HTTP_STATUS, - TOKEN_BASIC, - TOKEN_BEARER, - VerdaccioError, - errorUtils, -} from '@verdaccio/core'; -import { logger } from '@verdaccio/logger'; -import { Config, Logger, Package, RemoteUser } from '@verdaccio/types'; -import { - isObject, - stringToMD5, - validateName as utilValidateName, - validatePackage as utilValidatePackage, -} from '@verdaccio/utils'; - -import { getVersionFromTarball } from './middleware-utils'; - -export type $RequestExtend = Request & { remote_user?: RemoteUser; log: Logger }; -export type $ResponseExtend = Response & { cookies?: any }; -export type $NextFunctionVer = NextFunction & any; - -const debug = buildDebug('verdaccio:middleware'); - -export function match(regexp: RegExp): any { - return function ( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer, - value: string - ): void { - if (regexp.exec(value)) { - next(); - } else { - next('route'); - } - }; -} - -// TODO: remove, was relocated to web package -// @ts-deprecated -export function setSecurityWebHeaders( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - // disable loading in frames (clickjacking, etc.) - res.header(HEADERS.FRAMES_OPTIONS, 'deny'); - // avoid stablish connections outside of domain - res.header(HEADERS.CSP, "connect-src 'self'"); - // https://stackoverflow.com/questions/18337630/what-is-x-content-type-options-nosniff - res.header(HEADERS.CTO, 'nosniff'); - // https://stackoverflow.com/questions/9090577/what-is-the-http-header-x-xss-protection - res.header(HEADERS.XSS, '1; mode=block'); - next(); -} - -export function validateName( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer, - value: string, - name: string -): void { - if (value === '-') { - // special case in couchdb usually - next('route'); - } else if (utilValidateName(value)) { - next(); - } else { - next(errorUtils.getForbidden('invalid ' + name)); - } -} - -export function validatePackage( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer, - value: string, - name: string -): void { - if (value === '-') { - // special case in couchdb usually - next('route'); - } else if (utilValidatePackage(value)) { - next(); - } else { - next(errorUtils.getForbidden('invalid ' + name)); - } -} - -export function media(expect: string | null): any { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - if (req.headers[HEADER_TYPE.CONTENT_TYPE] !== expect) { - next( - errorUtils.getCode( - HTTP_STATUS.UNSUPPORTED_MEDIA, - 'wrong content-type, expect: ' + expect + ', got: ' + req.get[HEADER_TYPE.CONTENT_TYPE] - ) - ); - } else { - next(); - } - }; -} - -export function encodeScopePackage( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - if (req.url.indexOf('@') !== -1) { - // e.g.: /@org/pkg/1.2.3 -> /@org%2Fpkg/1.2.3, /@org%2Fpkg/1.2.3 -> /@org%2Fpkg/1.2.3 - req.url = req.url.replace(/^(\/@[^\/%]+)\/(?!$)/, '$1%2F'); - } - next(); -} - -export function expectJson( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - if (!isObject(req.body)) { - return next(errorUtils.getBadRequest("can't parse incoming json")); - } - next(); -} - -export function antiLoop(config: Config): Function { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - if (req?.headers?.via != null) { - const arr = req.headers.via.split(','); - - for (let i = 0; i < arr.length; i++) { - const m = arr[i].match(/\s*(\S+)\s+(\S+)/); - if (m && m[2] === config.server_id) { - return next(errorUtils.getCode(HTTP_STATUS.LOOP_DETECTED, 'loop detected')); - } - } - } - next(); - }; -} - -export function allow(auth: Auth): Function { - return function (action: string): Function { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - req.pause(); - const packageName = req.params.scope - ? `@${req.params.scope}/${req.params.package}` - : req.params.package; - const packageVersion = req.params.filename - ? getVersionFromTarball(req.params.filename) - : undefined; - const remote = req.remote_user; - logger.trace( - { action, user: remote?.name }, - `[middleware/allow][@{action}] allow for @{user}` - ); - auth['allow_' + action]( - { packageName, packageVersion }, - remote, - function (error, allowed): void { - req.resume(); - if (error) { - next(error); - } else if (allowed) { - next(); - } else { - // last plugin (that's our built-in one) returns either - // cb(err) or cb(null, true), so this should never happen - throw errorUtils.getInternalError(API_ERROR.PLUGIN_ERROR); - } - } - ); - }; - }; -} - -export interface MiddlewareError { - error: string; -} - -export type FinalBody = Package | MiddlewareError | string; - -export function final( - body: FinalBody, - req: $RequestExtend, - res: $ResponseExtend, - // if we remove `next` breaks test - // eslint-disable-next-line @typescript-eslint/no-unused-vars - next: $NextFunctionVer -): void { - if (res.statusCode === HTTP_STATUS.UNAUTHORIZED && !res.getHeader(HEADERS.WWW_AUTH)) { - // they say it's required for 401, so... - res.header(HEADERS.WWW_AUTH, `${TOKEN_BASIC}, ${TOKEN_BEARER}`); - } - - try { - if (_.isString(body) || _.isObject(body)) { - if (!res.getHeader(HEADERS.CONTENT_TYPE)) { - res.header(HEADERS.CONTENT_TYPE, HEADERS.JSON); - } - - if (typeof body === 'object' && _.isNil(body) === false) { - if (typeof (body as MiddlewareError).error === 'string') { - res.locals._verdaccio_error = (body as MiddlewareError).error; - // res._verdaccio_error = (body as MiddlewareError).error; - } - body = JSON.stringify(body, undefined, ' ') + '\n'; - } - - // don't send etags with errors - if ( - !res.statusCode || - (res.statusCode >= HTTP_STATUS.OK && res.statusCode < HTTP_STATUS.MULTIPLE_CHOICES) - ) { - res.header(HEADERS.ETAG, '"' + stringToMD5(body as string) + '"'); - } - } else { - // send(null), send(204), etc. - } - } catch (err: any) { - // if verdaccio sends headers first, and then calls res.send() - // as an error handler, we can't report error properly, - // and should just close socket - if (err.message.match(/set headers after they are sent/)) { - if (_.isNil(res.socket) === false) { - res.socket?.destroy(); - } - return; - } - throw err; - } - - res.send(body); -} - -// FIXME: deprecated, moved to @verdaccio/dev-commons -export const LOG_STATUS_MESSAGE = - "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}'"; -export const LOG_VERDACCIO_ERROR = `${LOG_STATUS_MESSAGE}, error: @{!error}`; -export const LOG_VERDACCIO_BYTES = `${LOG_STATUS_MESSAGE}, bytes: @{bytes.in}/@{bytes.out}`; - -export function log(req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - // logger - req.log = logger.child({ sub: 'in' }); - - const _auth = req.headers.authorization; - if (_.isNil(_auth) === false) { - req.headers.authorization = ''; - } - - const _cookie = req.get('cookie'); - if (_.isNil(_cookie) === false) { - req.headers.cookie = ''; - } - - req.url = req.originalUrl; - req.log.info({ req: req, ip: req.ip }, "@{ip} requested '@{req.method} @{req.url}'"); - req.originalUrl = req.url; - - if (_.isNil(_auth) === false) { - req.headers.authorization = _auth; - } - - if (_.isNil(_cookie) === false) { - req.headers.cookie = _cookie; - } - - let bytesin = 0; - req.on('data', function (chunk): void { - bytesin += chunk.length; - }); - - let bytesout = 0; - const _write = res.write; - // FIXME: res.write should return boolean - // @ts-ignore - res.write = function (buf): boolean { - bytesout += buf.length; - /* eslint prefer-rest-params: "off" */ - // @ts-ignore - _write.apply(res, arguments); - }; - - const log = function (): void { - const forwardedFor = req.get('x-forwarded-for'); - const remoteAddress = req.connection.remoteAddress; - const remoteIP = forwardedFor ? `${forwardedFor} via ${remoteAddress}` : remoteAddress; - let message; - if (res.locals._verdaccio_error) { - message = LOG_VERDACCIO_ERROR; - } else { - message = LOG_VERDACCIO_BYTES; - } - - req.url = req.originalUrl; - req.log.http( - { - request: { - method: req.method, - url: req.url, - }, - user: (req.remote_user && req.remote_user.name) || null, - remoteIP, - status: res.statusCode, - error: res.locals._verdaccio_error, - bytes: { - in: bytesin, - out: bytesout, - }, - }, - message - ); - req.originalUrl = req.url; - }; - - req.on('close', function (): void { - log(); - }); - - const _end = res.end; - // @ts-ignore - res.end = function (buf): void { - if (buf) { - bytesout += buf.length; - } - /* eslint prefer-rest-params: "off" */ - // @ts-ignore - _end.apply(res, arguments); - log(); - }; - next(); -} - -export function handleError( - err: HttpError, - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -) { - debug('error handler init'); - if (_.isError(err)) { - debug('is native error'); - if (err.code === 'ECONNABORT' && res.statusCode === HTTP_STATUS.NOT_MODIFIED) { - return next(); - } - if (_.isFunction(res.locals.report_error) === false) { - debug('is locals error report ref'); - // in case of very early error this middleware may not be loaded before error is generated - // fixing that - errorReportingMiddleware(req, res, _.noop); - } - debug('set locals error report ref'); - res.locals.report_error(err); - } else { - // Fall to Middleware.final - debug('no error to report, jump next layer'); - return next(err); - } -} - -// Middleware -export function errorReportingMiddleware( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - debug('error report middleware'); - res.locals.report_error = - res.locals.report_error || - function (err: VerdaccioError): void { - if (err.status && err.status >= HTTP_STATUS.BAD_REQUEST && err.status < 600) { - debug('is error > 409 %o', err?.status); - if (_.isNil(res.headersSent) === false) { - debug('send status %o', err?.status); - res.status(err.status); - debug('next layer %o', err?.message); - next({ error: err.message || API_ERROR.UNKNOWN_ERROR }); - } - } else { - debug('is error < 409 %o', err?.status); - logger.error({ err: err }, 'unexpected error: @{!err.message}\n@{err.stack}'); - if (!res.status || !res.send) { - // TODO: decide which debug keep - logger.error('this is an error in express.js, please report this'); - debug('this is an error in express.js, please report this, destroy response %o', err); - res.destroy(); - } else if (!res.headersSent) { - debug('report internal error %o', err); - res.status(HTTP_STATUS.INTERNAL_ERROR); - next({ error: API_ERROR.INTERNAL_SERVER_ERROR }); - } else { - // socket should be already closed - debug('this should not happen, otherwise report %o', err); - } - } - }; - - debug('error report middleware next()'); - next(); -} diff --git a/packages/middleware/src/middlewares/allow.ts b/packages/middleware/src/middlewares/allow.ts new file mode 100644 index 000000000..0c88369e0 --- /dev/null +++ b/packages/middleware/src/middlewares/allow.ts @@ -0,0 +1,40 @@ +import { API_ERROR, errorUtils } from '@verdaccio/core'; +import { logger } from '@verdaccio/logger'; +import { getVersionFromTarball } from '@verdaccio/utils'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +export function allow(auth: T): Function { + return function (action: string): Function { + return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { + req.pause(); + const packageName = req.params.scope + ? `@${req.params.scope}/${req.params.package}` + : req.params.package; + const packageVersion = req.params.filename + ? getVersionFromTarball(req.params.filename) + : undefined; + const remote = req.remote_user; + logger.trace( + { action, user: remote?.name }, + `[middleware/allow][@{action}] allow for @{user}` + ); + auth['allow_' + action]( + { packageName, packageVersion }, + remote, + function (error, allowed): void { + req.resume(); + if (error) { + next(error); + } else if (allowed) { + next(); + } else { + // last plugin (that's our built-in one) returns either + // cb(err) or cb(null, true), so this should never happen + throw errorUtils.getInternalError(API_ERROR.PLUGIN_ERROR); + } + } + ); + }; + }; +} diff --git a/packages/middleware/src/middlewares/antiLoop.ts b/packages/middleware/src/middlewares/antiLoop.ts new file mode 100644 index 000000000..0aeb1a05f --- /dev/null +++ b/packages/middleware/src/middlewares/antiLoop.ts @@ -0,0 +1,30 @@ +import { HTTP_STATUS, errorUtils } from '@verdaccio/core'; +import { Config } from '@verdaccio/types'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +/** + * A middleware that avoid a registry points itself as proxy and avoid create infinite loops. + * @param config + * @returns + */ +export function antiLoop(config: Config): Function { + return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { + if (req?.headers?.via != null) { + const arr = req.get('via')?.split(','); + if (Array.isArray(arr)) { + for (let i = 0; i < arr.length; i++) { + // the "via" header must contains an specific headers, this has to be on sync + // with the proxy request + // match eg: Server 1 or Server 2 + // TODO: improve this RegEX + const m = arr[i].trim().match(/\s*(\S+)\s+(\S+)/); + if (m && m[2] === config.server_id) { + return next(errorUtils.getCode(HTTP_STATUS.LOOP_DETECTED, 'loop detected')); + } + } + } + } + next(); + }; +} diff --git a/packages/middleware/src/middlewares/encode-pkg.ts b/packages/middleware/src/middlewares/encode-pkg.ts new file mode 100644 index 000000000..21c4c99b5 --- /dev/null +++ b/packages/middleware/src/middlewares/encode-pkg.ts @@ -0,0 +1,19 @@ +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +/** + * Encode / in a scoped package name to be matched as a single parameter in routes + * @param req + * @param res + * @param next + */ +export function encodeScopePackage( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer +): void { + if (req.url.indexOf('@') !== -1) { + // e.g.: /@org/pkg/1.2.3 -> /@org%2Fpkg/1.2.3, /@org%2Fpkg/1.2.3 -> /@org%2Fpkg/1.2.3 + req.url = req.url.replace(/^(\/@[^\/%]+)\/(?!$)/, '$1%2F'); + } + next(); +} diff --git a/packages/middleware/src/middlewares/error.ts b/packages/middleware/src/middlewares/error.ts new file mode 100644 index 000000000..0eb70285e --- /dev/null +++ b/packages/middleware/src/middlewares/error.ts @@ -0,0 +1,78 @@ +import buildDebug from 'debug'; +import { HttpError } from 'http-errors'; +import _ from 'lodash'; + +import { API_ERROR, HTTP_STATUS, VerdaccioError } from '@verdaccio/core'; +import { logger } from '@verdaccio/logger'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +const debug = buildDebug('verdaccio:middleware:error'); + +export function handleError( + err: HttpError, + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer +) { + debug('error handler init'); + if (_.isError(err)) { + debug('is native error'); + if (err.code === 'ECONNABORT' && res.statusCode === HTTP_STATUS.NOT_MODIFIED) { + return next(); + } + if (_.isFunction(res.locals.report_error) === false) { + debug('is locals error report ref'); + // in case of very early error this middleware may not be loaded before error is generated + // fixing that + errorReportingMiddleware(req, res, _.noop); + } + debug('set locals error report ref'); + res.locals.report_error(err); + } else { + // Fall to Middleware.final + debug('no error to report, jump next layer'); + return next(err); + } +} + +// Middleware +export function errorReportingMiddleware( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer +): void { + debug('error report middleware'); + res.locals.report_error = + res.locals.report_error || + function (err: VerdaccioError): void { + if (err.status && err.status >= HTTP_STATUS.BAD_REQUEST && err.status < 600) { + debug('is error > 409 %o', err?.status); + if (_.isNil(res.headersSent) === false) { + debug('send status %o', err?.status); + res.status(err.status); + debug('next layer %o', err?.message); + next({ error: err.message || API_ERROR.UNKNOWN_ERROR }); + } + } else { + debug('is error < 409 %o', err?.status); + logger.error({ err: err }, 'unexpected error: @{!err.message}\n@{err.stack}'); + if (!res.status || !res.send) { + // TODO: decide which debug keep + logger.error('this is an error in express.js, please report this'); + debug('this is an error in express.js, please report this, destroy response %o', err); + res.destroy(); + } else if (!res.headersSent) { + debug('report internal error %o', err); + res.status(HTTP_STATUS.INTERNAL_ERROR); + next({ error: API_ERROR.INTERNAL_SERVER_ERROR }); + } else { + // socket should be already closed + debug('this should not happen, otherwise report %o', err); + } + } + }; + + debug('error report middleware next()'); + next(); +} diff --git a/packages/middleware/src/middlewares/final.ts b/packages/middleware/src/middlewares/final.ts new file mode 100644 index 000000000..9a9af5e24 --- /dev/null +++ b/packages/middleware/src/middlewares/final.ts @@ -0,0 +1,60 @@ +import _ from 'lodash'; + +import { HEADERS, HTTP_STATUS, TOKEN_BASIC, TOKEN_BEARER } from '@verdaccio/core'; +import { Manifest } from '@verdaccio/types'; +import { stringToMD5 } from '@verdaccio/utils'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend, MiddlewareError } from '../types'; + +export type FinalBody = Manifest | MiddlewareError | string; + +export function final( + body: FinalBody, + req: $RequestExtend, + res: $ResponseExtend, + // if we remove `next` breaks test + // eslint-disable-next-line @typescript-eslint/no-unused-vars + next: $NextFunctionVer +): void { + if (res.statusCode === HTTP_STATUS.UNAUTHORIZED && !res.getHeader(HEADERS.WWW_AUTH)) { + res.header(HEADERS.WWW_AUTH, `${TOKEN_BASIC}, ${TOKEN_BEARER}`); + } + + try { + if (_.isString(body) || _.isObject(body)) { + if (!res.get(HEADERS.CONTENT_TYPE)) { + res.header(HEADERS.CONTENT_TYPE, HEADERS.JSON); + } + + if (typeof body === 'object' && _.isNil(body) === false) { + if (typeof (body as MiddlewareError).error === 'string') { + res.locals._verdaccio_error = (body as MiddlewareError).error; + } + body = JSON.stringify(body, undefined, ' ') + '\n'; + } + + // don't send etags with errors + if ( + !res.statusCode || + (res.statusCode >= HTTP_STATUS.OK && res.statusCode < HTTP_STATUS.MULTIPLE_CHOICES) + ) { + res.header(HEADERS.ETAG, '"' + stringToMD5(body as string) + '"'); + } + } else { + // send(null), send(204), etc. + } + } catch (err: any) { + // if verdaccio sends headers first, and then calls res.send() + // as an error handler, we can't report error properly, + // and should just close socket + if (err.message.match(/set headers after they are sent/)) { + if (_.isNil(res.socket) === false) { + res.socket?.destroy(); + } + return; + } + throw err; + } + + res.send(body); +} diff --git a/packages/middleware/src/middlewares/json.ts b/packages/middleware/src/middlewares/json.ts new file mode 100644 index 000000000..8fc782b32 --- /dev/null +++ b/packages/middleware/src/middlewares/json.ts @@ -0,0 +1,15 @@ +import { errorUtils } from '@verdaccio/core'; +import { isObject } from '@verdaccio/utils'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +export function expectJson( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer +): void { + if (!isObject(req.body)) { + return next(errorUtils.getBadRequest("can't parse incoming json")); + } + next(); +} diff --git a/packages/middleware/src/middlewares/log.ts b/packages/middleware/src/middlewares/log.ts new file mode 100644 index 000000000..852054f5f --- /dev/null +++ b/packages/middleware/src/middlewares/log.ts @@ -0,0 +1,103 @@ +import _ from 'lodash'; + +import { logger } from '@verdaccio/logger'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +// FIXME: deprecated, moved to @verdaccio/dev-commons +export const LOG_STATUS_MESSAGE = + "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}'"; +export const LOG_VERDACCIO_ERROR = `${LOG_STATUS_MESSAGE}, error: @{!error}`; +export const LOG_VERDACCIO_BYTES = `${LOG_STATUS_MESSAGE}, bytes: @{bytes.in}/@{bytes.out}`; + +export function log(req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { + // logger + req.log = logger.child({ sub: 'in' }); + + const _auth = req.headers.authorization; + if (_.isNil(_auth) === false) { + req.headers.authorization = ''; + } + + const _cookie = req.get('cookie'); + if (_.isNil(_cookie) === false) { + req.headers.cookie = ''; + } + + req.url = req.originalUrl; + req.log.info({ req: req, ip: req.ip }, "@{ip} requested '@{req.method} @{req.url}'"); + req.originalUrl = req.url; + + if (_.isNil(_auth) === false) { + req.headers.authorization = _auth; + } + + if (_.isNil(_cookie) === false) { + req.headers.cookie = _cookie; + } + + let bytesin = 0; + req.on('data', function (chunk): void { + bytesin += chunk.length; + }); + + let bytesout = 0; + const _write = res.write; + // FIXME: res.write should return boolean + // @ts-ignore + res.write = function (buf): boolean { + bytesout += buf.length; + /* eslint prefer-rest-params: "off" */ + // @ts-ignore + _write.apply(res, arguments); + }; + + const log = function (): void { + const forwardedFor = req.get('x-forwarded-for'); + const remoteAddress = req.connection.remoteAddress; + const remoteIP = forwardedFor ? `${forwardedFor} via ${remoteAddress}` : remoteAddress; + let message; + if (res.locals._verdaccio_error) { + message = LOG_VERDACCIO_ERROR; + } else { + message = LOG_VERDACCIO_BYTES; + } + + req.url = req.originalUrl; + req.log.http( + { + request: { + method: req.method, + url: req.url, + }, + user: req.remote_user?.name || null, + remoteIP, + status: res.statusCode, + error: res.locals._verdaccio_error, + bytes: { + in: bytesin, + out: bytesout, + }, + }, + message + ); + req.originalUrl = req.url; + }; + + req.on('close', function (): void { + log(); + }); + + const _end = res.end; + // @ts-ignore + res.end = function (buf): void { + if (buf) { + bytesout += buf.length; + } + /* eslint prefer-rest-params: "off" */ + // @ts-ignore + _end.apply(res, arguments); + log(); + }; + next(); +} diff --git a/packages/middleware/src/middlewares/match.ts b/packages/middleware/src/middlewares/match.ts new file mode 100644 index 000000000..0be96e919 --- /dev/null +++ b/packages/middleware/src/middlewares/match.ts @@ -0,0 +1,16 @@ +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +export function match(regexp: RegExp): any { + return function ( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer, + value: string + ): void { + if (regexp.exec(value)) { + next(); + } else { + next('route'); + } + }; +} diff --git a/packages/middleware/src/middlewares/media.ts b/packages/middleware/src/middlewares/media.ts new file mode 100644 index 000000000..c1c98a7a9 --- /dev/null +++ b/packages/middleware/src/middlewares/media.ts @@ -0,0 +1,18 @@ +import { HEADER_TYPE, HTTP_STATUS, errorUtils } from '@verdaccio/core'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +export function media(expect: string | null): any { + return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { + if (req.headers[HEADER_TYPE.CONTENT_TYPE] !== expect) { + next( + errorUtils.getCode( + HTTP_STATUS.UNSUPPORTED_MEDIA, + 'wrong content-type, expect: ' + expect + ', got: ' + req.get[HEADER_TYPE.CONTENT_TYPE] + ) + ); + } else { + next(); + } + }; +} diff --git a/packages/middleware/src/middlewares/security-headers.ts b/packages/middleware/src/middlewares/security-headers.ts new file mode 100644 index 000000000..021f0f1ac --- /dev/null +++ b/packages/middleware/src/middlewares/security-headers.ts @@ -0,0 +1,21 @@ +import { HEADERS } from '@verdaccio/core'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +// TODO: remove, was relocated to web package +// @ts-deprecated +export function setSecurityWebHeaders( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer +): void { + // disable loading in frames (clickjacking, etc.) + res.header(HEADERS.FRAMES_OPTIONS, 'deny'); + // avoid stablish connections outside of domain + res.header(HEADERS.CSP, "connect-src 'self'"); + // https://stackoverflow.com/questions/18337630/what-is-x-content-type-options-nosniff + res.header(HEADERS.CTO, 'nosniff'); + // https://stackoverflow.com/questions/9090577/what-is-the-http-header-x-xss-protection + res.header(HEADERS.XSS, '1; mode=block'); + next(); +} diff --git a/packages/middleware/src/middlewares/validation.ts b/packages/middleware/src/middlewares/validation.ts new file mode 100644 index 000000000..f44d352a0 --- /dev/null +++ b/packages/middleware/src/middlewares/validation.ts @@ -0,0 +1,41 @@ +import { errorUtils } from '@verdaccio/core'; +import { + validateName as utilValidateName, + validatePackage as utilValidatePackage, +} from '@verdaccio/utils'; + +import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types'; + +export function validateName( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer, + value: string, + name: string +): void { + if (value === '-') { + // special case in couchdb usually + next('route'); + } else if (utilValidateName(value)) { + next(); + } else { + next(errorUtils.getForbidden('invalid ' + name)); + } +} + +export function validatePackage( + req: $RequestExtend, + res: $ResponseExtend, + next: $NextFunctionVer, + value: string, + name: string +): void { + if (value === '-') { + // special case in couchdb usually + next('route'); + } else if (utilValidatePackage(value)) { + next(); + } else { + next(errorUtils.getForbidden('invalid ' + name)); + } +} diff --git a/packages/middleware/src/types.ts b/packages/middleware/src/types.ts new file mode 100644 index 000000000..0b0d0ead5 --- /dev/null +++ b/packages/middleware/src/types.ts @@ -0,0 +1,11 @@ +import { NextFunction, Request, Response } from 'express'; + +import { Logger, RemoteUser } from '@verdaccio/types'; + +export type $RequestExtend = Request & { remote_user?: RemoteUser; log: Logger }; +export type $ResponseExtend = Response & { cookies?: any }; +export type $NextFunctionVer = NextFunction & any; + +export interface MiddlewareError { + error: string; +} diff --git a/packages/middleware/test/allow.spec.ts b/packages/middleware/test/allow.spec.ts new file mode 100644 index 000000000..34969f72e --- /dev/null +++ b/packages/middleware/test/allow.spec.ts @@ -0,0 +1,82 @@ +import request from 'supertest'; + +import { HTTP_STATUS } from '@verdaccio/core'; +import { setup } from '@verdaccio/logger'; + +import { allow } from '../src'; +import { getApp } from './helper'; + +setup({}); + +test('should allow request', async () => { + const can = allow({ + allow_publish: (params, remove, cb) => { + return cb(null, true); + }, + }); + const app = getApp([]); + // @ts-ignore + app.get('/:package', can('publish'), (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/react').expect(HTTP_STATUS.OK); +}); + +test('should allow scope request', async () => { + const can = allow({ + allow_publish: (params, remove, cb) => { + return cb(null, true); + }, + }); + const app = getApp([]); + // @ts-ignore + app.get('/:package/:scope', can('publish'), (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/@verdaccio/core').expect(HTTP_STATUS.OK); +}); + +test('should allow filename request', async () => { + const can = allow({ + allow_publish: (params, remove, cb) => { + return cb(null, true); + }, + }); + const app = getApp([]); + // @ts-ignore + app.get('/:filename', can('publish'), (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/aaa-0.0.1.tgz').expect(HTTP_STATUS.OK); +}); + +test('should not allow request', async () => { + const can = allow({ + allow_publish: (params, remove, cb) => { + return cb(null, false); + }, + }); + const app = getApp([]); + // @ts-ignore + app.get('/sec', can('publish'), (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/sec').expect(HTTP_STATUS.INTERNAL_ERROR); +}); + +test('should handle error request', async () => { + const can = allow({ + allow_publish: (params, remove, cb) => { + return cb(Error('foo error')); + }, + }); + const app = getApp([]); + // @ts-ignore + app.get('/err', can('publish')); + + return request(app).get('/err').expect(HTTP_STATUS.INTERNAL_ERROR); +}); diff --git a/packages/middleware/test/encode.spec.ts b/packages/middleware/test/encode.spec.ts new file mode 100644 index 000000000..37652b22d --- /dev/null +++ b/packages/middleware/test/encode.spec.ts @@ -0,0 +1,21 @@ +import request from 'supertest'; + +import { HTTP_STATUS } from '@verdaccio/core'; + +import { encodeScopePackage } from '../src'; +import { getApp } from './helper'; + +test('encode is json', async () => { + const app = getApp([]); + // @ts-ignore + app.use(encodeScopePackage); + // @ts-ignore + app.get('/:id', (req, res) => { + const { id } = req.params; + res.status(HTTP_STATUS.OK).json({ id }); + }); + + const res = await request(app).get('/@scope/foo'); + expect(res.body).toEqual({ id: '@scope/foo' }); + expect(res.status).toEqual(HTTP_STATUS.OK); +}); diff --git a/packages/middleware/test/final.spec.ts b/packages/middleware/test/final.spec.ts new file mode 100644 index 000000000..3a09a0ace --- /dev/null +++ b/packages/middleware/test/final.spec.ts @@ -0,0 +1,60 @@ +import bodyParser from 'body-parser'; +import express from 'express'; +import request from 'supertest'; + +import { HEADERS, HTTP_STATUS } from '@verdaccio/core'; + +import { final } from '../src'; + +test('handle error as object', async () => { + const app = express(); + app.use(bodyParser.json({ strict: false, limit: '10mb' })); + app.get('/401', (req, res, next) => { + res.status(HTTP_STATUS.UNAUTHORIZED); + next({ error: 'some error' }); + }); + // @ts-ignore + app.use(final); + + const res = await request(app).get('/401'); + expect(res.get(HEADERS.WWW_AUTH)).toEqual('Basic, Bearer'); + expect(res.get(HEADERS.CONTENT_TYPE)).toEqual(HEADERS.JSON_CHARSET); + expect(res.get(HEADERS.ETAG)).toEqual('W/"1c-CP1UoQiM59AjHpEk0334sfSp1kc"'); + expect(res.body).toEqual({ error: 'some error' }); +}); + +test('handle error as string', async () => { + const app = express(); + app.use(bodyParser.json({ strict: false, limit: '10mb' })); + app.get('/200', (req, res, next) => { + res.status(HTTP_STATUS.OK); + // error as json string + next(JSON.stringify({ error: 'some error' })); + }); + // @ts-ignore + app.use(final); + + const res = await request(app).get('/200'); + expect(res.get(HEADERS.WWW_AUTH)).not.toBeDefined(); + expect(res.get(HEADERS.CONTENT_TYPE)).toEqual(HEADERS.JSON_CHARSET); + expect(res.get(HEADERS.ETAG)).toEqual('"3f3a7b9afa23269e16685af6e707d109"'); + expect(res.body).toEqual({ error: 'some error' }); +}); + +test('handle error as unknown string no parsable', async () => { + const app = express(); + app.use(bodyParser.json({ strict: false, limit: '10mb' })); + app.get('/200', (req, res) => { + res.status(HTTP_STATUS.OK); + // error as json string + throw Error('uknonwn'); + }); + // @ts-ignore + app.use(final); + + const res = await request(app).get('/200'); + expect(res.get(HEADERS.WWW_AUTH)).not.toBeDefined(); + expect(res.get(HEADERS.CONTENT_TYPE)).toEqual(HEADERS.JSON_CHARSET); + expect(res.get(HEADERS.ETAG)).toEqual('"8a80554c91d9fca8acb82f023de02f11"'); + expect(res.body).toEqual({}); +}); diff --git a/packages/middleware/test/helper.ts b/packages/middleware/test/helper.ts new file mode 100644 index 000000000..3a70a5539 --- /dev/null +++ b/packages/middleware/test/helper.ts @@ -0,0 +1,14 @@ +import express from 'express'; + +export const getApp = (middlewares = []) => { + const app = express(); + middlewares.map((middleware) => { + app.use(middleware); + }); + + // app.get('/', function (req, res) { + // res.status(200).json({ name: 'pkg' }); + // }); + + return app; +}; diff --git a/packages/middleware/test/json.spec.ts b/packages/middleware/test/json.spec.ts new file mode 100644 index 000000000..0d44040dc --- /dev/null +++ b/packages/middleware/test/json.spec.ts @@ -0,0 +1,32 @@ +import bodyParser from 'body-parser'; +import request from 'supertest'; + +import { HEADERS, HTTP_STATUS } from '@verdaccio/core'; + +import { expectJson } from '../src'; +import { getApp } from './helper'; + +test('body is json', async () => { + const app = getApp([]); + app.use(bodyParser.json({ strict: false, limit: '10mb' })); + // @ts-ignore + app.put('/json', expectJson, (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app) + .put('/json') + .send({ name: 'john' }) + .set(HEADERS.CONTENT_TYPE, 'application/json') + .expect(HTTP_STATUS.OK); +}); + +test('body is not json', async () => { + const app = getApp([]); + // @ts-ignore + app.put('/json', expectJson, (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).put('/json').send('test=4').expect(HTTP_STATUS.BAD_REQUEST); +}); diff --git a/packages/middleware/test/log.spec.ts b/packages/middleware/test/log.spec.ts new file mode 100644 index 000000000..18d6231dd --- /dev/null +++ b/packages/middleware/test/log.spec.ts @@ -0,0 +1,28 @@ +import path from 'path'; +import request from 'supertest'; + +import { HTTP_STATUS } from '@verdaccio/core'; +import { setup } from '@verdaccio/logger'; + +import { log } from '../src'; +import { getApp } from './helper'; + +setup({ + type: 'file', + path: path.join(__dirname, './verdaccio.log'), + level: 'trace', + format: 'json', +}); + +test('should log request', async () => { + const app = getApp([]); + // @ts-ignore + app.use(log); + // @ts-ignore + app.get('/:package', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + // TODO: pending output + return request(app).get('/react').expect(HTTP_STATUS.OK); +}); diff --git a/packages/middleware/test/loop.spec.ts b/packages/middleware/test/loop.spec.ts new file mode 100644 index 000000000..3f350148f --- /dev/null +++ b/packages/middleware/test/loop.spec.ts @@ -0,0 +1,31 @@ +import request from 'supertest'; + +import { HTTP_STATUS } from '@verdaccio/core'; + +import { antiLoop } from '../src'; +import { getApp } from './helper'; + +test('should not be a loop', async () => { + const app = getApp([]); + // @ts-ignore + app.use(antiLoop({ server_id: '1' })); + app.get('/sec', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/sec').set('via', 'Server 2').expect(HTTP_STATUS.OK); +}); + +test('should be a loop', async () => { + const app = getApp([]); + // @ts-ignore + app.use(antiLoop({ server_id: '1' })); + app.get('/sec', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app) + .get('/sec') + .set('via', 'Server 1, Server 2') + .expect(HTTP_STATUS.LOOP_DETECTED); +}); diff --git a/packages/middleware/test/media.spec.ts b/packages/middleware/test/media.spec.ts new file mode 100644 index 000000000..5b6be649d --- /dev/null +++ b/packages/middleware/test/media.spec.ts @@ -0,0 +1,33 @@ +import mime from 'mime'; +import request from 'supertest'; + +import { HEADERS, HTTP_STATUS } from '@verdaccio/core'; + +import { media } from '../src'; +import { getApp } from './helper'; + +test('media is json', async () => { + const app = getApp([]); + app.get('/json', media(mime.getType('json')), (req, res) => { + res.status(200).json(); + }); + + return request(app) + .get('/json') + .set(HEADERS.CONTENT_TYPE, 'application/json') + .expect('Content-Type', /json/) + .expect(200); +}); + +test('media is not json', async () => { + const app = getApp([]); + app.get('/json', media(mime.getType('json')), (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app) + .get('/json') + .set(HEADERS.CONTENT_TYPE, 'text/html; charset=utf-8') + .expect('Content-Type', /html/) + .expect(HTTP_STATUS.UNSUPPORTED_MEDIA); +}); diff --git a/packages/middleware/test/params.spec.ts b/packages/middleware/test/params.spec.ts new file mode 100644 index 000000000..c4b7d102e --- /dev/null +++ b/packages/middleware/test/params.spec.ts @@ -0,0 +1,83 @@ +import request from 'supertest'; + +import { HTTP_STATUS } from '@verdaccio/core'; + +import { match, validateName, validatePackage } from '../src'; +import { getApp } from './helper'; + +describe('validate params', () => { + test('should validate package name', async () => { + const app = getApp([]); + // @ts-ignore + app.param('package', validatePackage); + app.get('/pkg/:package', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/pkg/react').expect(HTTP_STATUS.OK); + }); + + test('should fails validate package name', async () => { + const app = getApp([]); + // @ts-ignore + app.param('package', validatePackage); + app.get('/pkg/:package', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/pkg/node_modules').expect(HTTP_STATUS.FORBIDDEN); + }); + + test('should fails file name package name', async () => { + const app = getApp([]); + // @ts-ignore + app.param('filename', validateName); + app.get('/file/:filename', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/file/__proto__').expect(HTTP_STATUS.FORBIDDEN); + }); + + test('should validate file name package name', async () => { + const app = getApp([]); + // @ts-ignore + app.param('filename', validateName); + app.get('/file/:filename', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + return request(app).get('/file/react.tar.gz').expect(HTTP_STATUS.OK); + }); +}); + +describe('match', () => { + test('should not match middleware', async () => { + const app = getApp([]); + app.param('_rev', match(/^-rev$/)); + app.param('org_couchdb_user', match(/^org\.couchdb\.user:/)); + app.get('/-/user/:org_couchdb_user', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + app.use((res: any) => { + res.status(HTTP_STATUS.INTERNAL_ERROR); + }); + + return request(app).get('/-/user/test').expect(HTTP_STATUS.INTERNAL_ERROR); + }); + + test('should match middleware', async () => { + const app = getApp([]); + app.param('_rev', match(/^-rev$/)); + app.get('/-/user/:_rev?', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + app.use((res: any) => { + res.status(HTTP_STATUS.INTERNAL_ERROR); + }); + + return request(app).get('/-/user/-rev').expect(HTTP_STATUS.OK); + }); +}); diff --git a/packages/middleware/test/security.spec.ts b/packages/middleware/test/security.spec.ts new file mode 100644 index 000000000..8670ce91d --- /dev/null +++ b/packages/middleware/test/security.spec.ts @@ -0,0 +1,54 @@ +import request from 'supertest'; + +import { HEADERS, HTTP_STATUS } from '@verdaccio/core'; + +import { setSecurityWebHeaders } from '../src'; +import { getApp } from './helper'; + +test('should get frame options', async () => { + const app = getApp([]); + // @ts-ignore + app.use(setSecurityWebHeaders); + app.get('/sec', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + const res = await request(app).get('/sec').expect(HTTP_STATUS.OK); + expect(res.get(HEADERS.FRAMES_OPTIONS)).toEqual('deny'); +}); + +test('should get csp options', async () => { + const app = getApp([]); + // @ts-ignore + app.use(setSecurityWebHeaders); + app.get('/sec', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + const res = await request(app).get('/sec').expect(HTTP_STATUS.OK); + expect(res.get(HEADERS.CSP)).toEqual("connect-src 'self'"); +}); + +test('should get cto', async () => { + const app = getApp([]); + // @ts-ignore + app.use(setSecurityWebHeaders); + app.get('/sec', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + const res = await request(app).get('/sec').expect(HTTP_STATUS.OK); + expect(res.get(HEADERS.CTO)).toEqual('nosniff'); +}); + +test('should get xss', async () => { + const app = getApp([]); + // @ts-ignore + app.use(setSecurityWebHeaders); + app.get('/sec', (req, res) => { + res.status(HTTP_STATUS.OK).json({}); + }); + + const res = await request(app).get('/sec').expect(HTTP_STATUS.OK); + expect(res.get(HEADERS.XSS)).toEqual('1; mode=block'); +}); diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index deb2eb338..0a982c4a4 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -3,3 +3,4 @@ export * from './utils'; export * from './crypto-utils'; export * from './replace-lodash'; export * from './matcher'; +export * from './middleware-utils'; diff --git a/packages/middleware/src/middleware-utils.ts b/packages/utils/src/middleware-utils.ts similarity index 100% rename from packages/middleware/src/middleware-utils.ts rename to packages/utils/src/middleware-utils.ts diff --git a/packages/middleware/test/middleware-utils.spec.ts b/packages/utils/test/middleware-utils.spec.ts similarity index 100% rename from packages/middleware/test/middleware-utils.spec.ts rename to packages/utils/test/middleware-utils.spec.ts diff --git a/packages/web/src/middleware/web-api.ts b/packages/web/src/middleware/web-api.ts index 1f1b84986..f31f9558b 100644 --- a/packages/web/src/middleware/web-api.ts +++ b/packages/web/src/middleware/web-api.ts @@ -2,7 +2,7 @@ import bodyParser from 'body-parser'; import { Router } from 'express'; import { Auth } from '@verdaccio/auth'; -import { match, validateName, validatePackage } from '@verdaccio/middleware'; +import { validateName, validatePackage } from '@verdaccio/middleware'; import { Storage } from '@verdaccio/store'; import { Config } from '@verdaccio/types'; @@ -17,7 +17,6 @@ export function webAPI(config: Config, auth: Auth, storage: Storage): Router { route.param('package', validatePackage); route.param('filename', validateName); route.param('version', validateName); - route.param('anything', match(/.*/)); route.use(bodyParser.urlencoded({ extended: false })); route.use(auth.webUIJWTmiddleware()); route.use(setSecurityWebHeaders); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98fd1fc9e..f136dd42b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -280,7 +280,7 @@ importers: pnpm: next-7 dependencies: '@verdaccio/test-cli-commons': link:../cli-commons - pnpm: 7.26.1 + pnpm: 7.26.2 e2e/cli/e2e-yarn1: specifiers: @@ -612,21 +612,24 @@ importers: packages/middleware: specifiers: - '@verdaccio/auth': workspace:6.0.0-6-next.34 '@verdaccio/core': workspace:6.0.0-6-next.55 '@verdaccio/logger': workspace:6.0.0-6-next.23 '@verdaccio/utils': workspace:6.0.0-6-next.23 body-parser: 1.20.1 debug: 4.3.4 lodash: 4.17.21 + mime: 2.6.0 + supertest: 6.3.3 dependencies: - '@verdaccio/auth': link:../auth '@verdaccio/core': link:../core/core '@verdaccio/logger': link:../logger '@verdaccio/utils': link:../utils - body-parser: 1.20.1 debug: 4.3.4 lodash: 4.17.21 + mime: 2.6.0 + devDependencies: + body-parser: 1.20.1 + supertest: 6.3.3 packages/node-api: specifiers: @@ -1729,7 +1732,6 @@ packages: /@babel/compat-data/7.19.4: resolution: {integrity: sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==} engines: {node: '>=6.9.0'} - dev: false /@babel/compat-data/7.20.1: resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} @@ -1852,7 +1854,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false /@babel/core/7.20.7: resolution: {integrity: sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==} @@ -1875,7 +1876,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: true /@babel/generator/7.12.5: resolution: {integrity: sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==} @@ -1987,7 +1987,6 @@ packages: '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 - dev: false /@babel/helper-compilation-targets/7.19.3_@babel+core@7.17.8: resolution: {integrity: sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==} @@ -2013,7 +2012,6 @@ packages: '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 - dev: false /@babel/helper-compilation-targets/7.20.0_@babel+core@7.19.3: resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} @@ -2026,7 +2024,6 @@ packages: '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 - dev: false /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.7: resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} @@ -2081,7 +2078,6 @@ packages: browserslist: 4.21.4 lru-cache: 5.1.1 semver: 6.3.0 - dev: false /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.7: resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} @@ -2095,7 +2091,6 @@ packages: browserslist: 4.21.4 lru-cache: 5.1.1 semver: 6.3.0 - dev: true /@babel/helper-create-class-features-plugin/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==} @@ -2149,7 +2144,6 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 transitivePeerDependencies: - supports-color - dev: false /@babel/helper-create-class-features-plugin/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==} @@ -2221,7 +2215,6 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 transitivePeerDependencies: - supports-color - dev: false /@babel/helper-create-class-features-plugin/7.20.7_@babel+core@7.20.7: resolution: {integrity: sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w==} @@ -2294,7 +2287,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-annotate-as-pure': 7.18.6 regexpu-core: 5.1.0 - dev: false /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.20.7: resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} @@ -2371,7 +2363,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.7: resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} @@ -2576,7 +2567,6 @@ packages: '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color - dev: false /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} @@ -2604,7 +2594,6 @@ packages: '@babel/types': 7.19.4 transitivePeerDependencies: - supports-color - dev: false /@babel/helper-replace-supers/7.19.1: resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} @@ -2636,7 +2625,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.19.4 - dev: false /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} @@ -2649,7 +2637,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.19.0 - dev: false /@babel/helper-skip-transparent-expression-wrappers/7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} @@ -2731,7 +2718,6 @@ packages: '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -2839,7 +2825,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} @@ -2885,7 +2870,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.19.3 - dev: false /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} @@ -2942,7 +2926,6 @@ packages: '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-proposal-async-generator-functions/7.20.1_@babel+core@7.20.7: resolution: {integrity: sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==} @@ -2996,7 +2979,6 @@ packages: '@babel/helper-plugin-utils': 7.18.9 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} @@ -3051,7 +3033,6 @@ packages: '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} @@ -3114,7 +3095,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} @@ -3169,7 +3149,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.18.9 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} @@ -3227,7 +3206,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.18.9 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} @@ -3271,7 +3249,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} @@ -3315,7 +3292,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.18.9 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} @@ -3359,7 +3335,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.18.9 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} @@ -3422,7 +3397,6 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.19.3 '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.7: resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} @@ -3469,7 +3443,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} @@ -3516,7 +3489,6 @@ packages: '@babel/helper-plugin-utils': 7.18.9 '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.18.10: resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} @@ -3552,7 +3524,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.19.3 - dev: false /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.7: resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} @@ -3603,7 +3574,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} @@ -3661,7 +3631,6 @@ packages: '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} @@ -3720,7 +3689,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} @@ -3758,7 +3726,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.7: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -3767,7 +3734,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -3776,7 +3742,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.18.10: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -3803,7 +3768,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.7: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -3812,7 +3776,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.18.10: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -3842,7 +3805,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.7: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -3889,7 +3851,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.16.5 - dev: false /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -3935,7 +3896,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -3994,7 +3954,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.7: resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} @@ -4013,7 +3972,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.10.4 - dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.18.10: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -4040,7 +3998,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -4049,7 +4006,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-syntax-jsx/7.12.1_@babel+core@7.12.9: resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} @@ -4087,7 +4043,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} @@ -4123,7 +4078,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.7: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -4132,7 +4086,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.18.10: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -4159,7 +4112,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.16.7 - dev: false /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -4168,7 +4120,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.16.7 - dev: true /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.18.10: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -4195,7 +4146,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.16.7 - dev: false /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.7: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -4204,7 +4154,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.16.7 - dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.9: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -4239,7 +4188,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -4248,7 +4196,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.18.10: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -4275,7 +4222,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -4284,7 +4230,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.18.10: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -4311,7 +4256,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.7: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -4320,7 +4264,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.18.10: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -4350,7 +4293,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.7: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -4400,7 +4342,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.7: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -4410,7 +4351,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 - dev: true /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} @@ -4430,7 +4370,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} @@ -4440,7 +4379,6 @@ packages: dependencies: '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.19.0 - dev: true /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} @@ -4470,7 +4408,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} @@ -4522,7 +4459,6 @@ packages: '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.7: resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} @@ -4566,7 +4502,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} @@ -4606,7 +4541,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-transform-block-scoping/7.20.2_@babel+core@7.20.7: resolution: {integrity: sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==} @@ -4674,7 +4608,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.7: resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} @@ -4724,7 +4657,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} @@ -4764,7 +4696,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-transform-destructuring/7.20.2_@babel+core@7.20.7: resolution: {integrity: sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==} @@ -4807,7 +4738,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} @@ -4848,7 +4778,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} @@ -4891,7 +4820,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} @@ -4943,7 +4871,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.7: resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} @@ -4989,7 +4916,6 @@ packages: '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.19.3 '@babel/helper-function-name': 7.19.0 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} @@ -5031,7 +4957,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} @@ -5071,7 +4996,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} @@ -5123,7 +5047,6 @@ packages: babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-modules-amd/7.19.6_@babel+core@7.20.7: resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} @@ -5181,7 +5104,6 @@ packages: babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.20.7: resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} @@ -5243,7 +5165,6 @@ packages: babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.20.7: resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} @@ -5297,7 +5218,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} @@ -5343,7 +5263,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.20.7: resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} @@ -5384,7 +5303,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} @@ -5433,7 +5351,6 @@ packages: '@babel/helper-replace-supers': 7.20.7 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} @@ -5485,7 +5402,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.20.7: resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} @@ -5535,7 +5451,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} @@ -5565,7 +5480,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.18.9 - dev: false /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} @@ -5595,7 +5509,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} @@ -5635,7 +5548,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/plugin-transform-react-jsx': 7.18.10_@babel+core@7.19.3 - dev: false /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} @@ -5687,7 +5599,6 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.3 '@babel/types': 7.19.0 - dev: false /@babel/plugin-transform-react-jsx/7.18.10_@babel+core@7.20.7: resolution: {integrity: sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==} @@ -5734,7 +5645,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} @@ -5778,7 +5688,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 regenerator-transform: 0.15.0 - dev: false /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} @@ -5819,7 +5728,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} @@ -5863,7 +5771,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-runtime/7.19.6_@babel+core@7.20.7: resolution: {integrity: sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==} @@ -5910,7 +5817,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} @@ -5953,7 +5859,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: false /@babel/plugin-transform-spread/7.19.0_@babel+core@7.20.7: resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} @@ -5994,7 +5899,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} @@ -6034,7 +5938,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} @@ -6074,7 +5977,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.7: resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} @@ -6112,7 +6014,6 @@ packages: '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-typescript/7.18.12_@babel+core@7.20.7: resolution: {integrity: sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==} @@ -6156,7 +6057,6 @@ packages: dependencies: '@babel/core': 7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.7: resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} @@ -6199,7 +6099,6 @@ packages: '@babel/core': 7.19.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.19.3 '@babel/helper-plugin-utils': 7.20.2 - dev: false /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} @@ -6468,7 +6367,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false /@babel/preset-env/7.20.2_@babel+core@7.20.7: resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} @@ -6605,7 +6503,6 @@ packages: '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.19.3 '@babel/types': 7.20.7 esutils: 2.0.3 - dev: false /@babel/preset-modules/0.1.5_@babel+core@7.20.7: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} @@ -6663,7 +6560,6 @@ packages: '@babel/plugin-transform-react-jsx': 7.18.10_@babel+core@7.19.3 '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.19.3 '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.19.3 - dev: false /@babel/preset-react/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} @@ -6706,7 +6602,6 @@ packages: '@babel/plugin-transform-typescript': 7.18.12_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /@babel/preset-typescript/7.18.6_@babel+core@7.20.7: resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==} @@ -6742,7 +6637,6 @@ packages: dependencies: core-js-pure: 3.21.1 regenerator-runtime: 0.13.11 - dev: false /@babel/runtime/7.15.4: resolution: {integrity: sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==} @@ -6997,7 +6891,6 @@ packages: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - dev: false /@babel/types/7.19.4: resolution: {integrity: sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==} @@ -7030,7 +6923,6 @@ packages: /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true /@braintree/sanitize-url/6.0.2: resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==} @@ -7281,7 +7173,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true /@csstools/selector-specificity/2.0.2_d5e47c13600a2304adeb61035602f868: resolution: {integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==} @@ -7635,7 +7526,6 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false /@docusaurus/core/2.2.0_5a641ae79f2b496fc3bde1735ec29b82: resolution: {integrity: sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==} @@ -7751,7 +7641,6 @@ packages: postcss: 8.4.18 postcss-sort-media-queries: 4.2.1_postcss@8.4.18 tslib: 2.4.0 - dev: false /@docusaurus/logger/2.2.0: resolution: {integrity: sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==} @@ -7759,7 +7648,6 @@ packages: dependencies: chalk: 4.1.2 tslib: 2.4.0 - dev: false /@docusaurus/mdx-loader/2.2.0_275b5e113b7d789bf37da835e1f2a2a2: resolution: {integrity: sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==} @@ -7829,7 +7717,6 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false /@docusaurus/module-type-aliases/2.2.0_e04bad828ac717e6587f05c972df8358: resolution: {integrity: sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==} @@ -8502,7 +8389,6 @@ packages: optional: true dependencies: tslib: 2.4.0 - dev: false /@docusaurus/utils-common/2.2.0_@docusaurus+types@2.2.0: resolution: {integrity: sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==} @@ -8566,7 +8452,6 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false /@docusaurus/utils/2.0.0-beta.3_esbuild@0.14.10: resolution: {integrity: sha512-DApc6xcb3CvvsBCfRU6Zk3KoZa4mZfCJA4XRv5zhlhaSb0GFuAo7KQ353RUu6d0eYYylY3GGRABXkxRE1SEClA==} @@ -8684,7 +8569,6 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false /@emotion/babel-plugin/11.10.5_@babel+core@7.20.7: resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} @@ -8939,7 +8823,6 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true /@fastify/ajv-compiler/3.3.1: resolution: {integrity: sha512-IRnids8lblQ8e1i8h4JLyfJmebXE+ohcj8x8X/+Ew6ZB4H0Ui05z5YL6q5FOcl0zItVpu4adRzeyVNNUwmduIg==} @@ -9029,16 +8912,13 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true /@istanbuljs/load-nyc-config/1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -9049,12 +8929,10 @@ packages: get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 - dev: true /@istanbuljs/schema/0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - dev: true /@jest/console/29.3.1: resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} @@ -9066,7 +8944,6 @@ packages: jest-message-util: 29.3.1 jest-util: 29.3.1 slash: 3.0.0 - dev: true /@jest/core/29.3.1_ts-node@10.9.1: resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==} @@ -9108,7 +8985,6 @@ packages: transitivePeerDependencies: - supports-color - ts-node - dev: true /@jest/environment/29.3.1: resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} @@ -9118,14 +8994,12 @@ packages: '@jest/types': 29.3.1 '@types/node': 17.0.21 jest-mock: 29.3.1 - dev: true /@jest/expect-utils/29.3.1: resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 - dev: true /@jest/expect/29.3.1: resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==} @@ -9135,7 +9009,6 @@ packages: jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color - dev: true /@jest/fake-timers/29.3.1: resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} @@ -9147,7 +9020,6 @@ packages: jest-message-util: 29.3.1 jest-mock: 29.3.1 jest-util: 29.3.1 - dev: true /@jest/globals/29.3.1: resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==} @@ -9159,7 +9031,6 @@ packages: jest-mock: 29.3.1 transitivePeerDependencies: - supports-color - dev: true /@jest/reporters/29.3.1: resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==} @@ -9196,14 +9067,12 @@ packages: v8-to-istanbul: 9.0.1 transitivePeerDependencies: - supports-color - dev: true /@jest/schemas/29.0.0: resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.24.34 - dev: true /@jest/source-map/29.2.0: resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==} @@ -9212,7 +9081,6 @@ packages: '@jridgewell/trace-mapping': 0.3.15 callsites: 3.1.0 graceful-fs: 4.2.9 - dev: true /@jest/test-result/29.3.1: resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==} @@ -9222,7 +9090,6 @@ packages: '@jest/types': 29.3.1 '@types/istanbul-lib-coverage': 2.0.3 collect-v8-coverage: 1.0.1 - dev: true /@jest/test-sequencer/29.3.1: resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==} @@ -9232,7 +9099,6 @@ packages: graceful-fs: 4.2.9 jest-haste-map: 29.3.1 slash: 3.0.0 - dev: true /@jest/transform/26.6.2: resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} @@ -9278,7 +9144,6 @@ packages: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color - dev: true /@jest/types/26.6.2: resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} @@ -9312,7 +9177,6 @@ packages: '@types/node': 17.0.21 '@types/yargs': 17.0.12 chalk: 4.1.2 - dev: true /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -9350,11 +9214,9 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.0.5 '@jridgewell/sourcemap-codec': 1.4.11 - dev: true /@leichtgewicht/ip-codec/2.0.3: resolution: {integrity: sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==} - dev: false /@lyrasearch/lyra/0.3.1: resolution: {integrity: sha512-c0k8R026nfXu/FhA9xgh7jo/+HM4I7XCn5J+us32mQEmqNBmGpD0CEyJ8PiJxmsDapyeYwpMNQgT2lNmnIL86w==} @@ -10290,7 +10152,6 @@ packages: /@sinclair/typebox/0.24.34: resolution: {integrity: sha512-x3ejWKw7rpy30Bvm6U0AQMOHdjqe2E3YJrBHlTxH0KFsp77bBa+MH324nJxtXZFpnTy/JW2h5HPYVm0vG2WPnw==} - dev: true /@sindresorhus/is/4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -10300,13 +10161,11 @@ packages: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} dependencies: type-detect: 4.0.8 - dev: true /@sinonjs/fake-timers/9.1.2: resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: '@sinonjs/commons': 1.8.3 - dev: true /@slorber/static-site-generator-webpack-plugin/4.0.7: resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} @@ -10315,7 +10174,6 @@ packages: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 - dev: false /@storybook/addon-actions/6.5.15_react-dom@18.2.0+react@18.2.0: resolution: {integrity: sha512-cnLzVK1S+EydFDSuvxMmMAxVqNXijBGdV9QTgsu6ys5sOkoiXRETKZmxuN8/ZRbkfc4N+1KAylSCZOOHzBQTBQ==} @@ -11753,7 +11611,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-remove-jsx-attribute/5.4.0: resolution: {integrity: sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==} @@ -11767,7 +11624,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-remove-jsx-empty-expression/5.0.1: resolution: {integrity: sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==} @@ -11781,7 +11637,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-replace-jsx-attribute-value/5.0.1: resolution: {integrity: sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==} @@ -11795,7 +11650,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-svg-dynamic-title/5.4.0: resolution: {integrity: sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==} @@ -11809,7 +11663,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-svg-em-dimensions/5.4.0: resolution: {integrity: sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==} @@ -11823,7 +11676,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-transform-react-native-svg/5.4.0: resolution: {integrity: sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==} @@ -11837,7 +11689,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-plugin-transform-svg-component/5.5.0: resolution: {integrity: sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==} @@ -11851,7 +11702,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.3 - dev: false /@svgr/babel-preset/5.5.0: resolution: {integrity: sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==} @@ -11882,7 +11732,6 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 6.0.0_@babel+core@7.19.3 '@svgr/babel-plugin-transform-react-native-svg': 6.0.0_@babel+core@7.19.3 '@svgr/babel-plugin-transform-svg-component': 6.2.0_@babel+core@7.19.3 - dev: false /@svgr/core/5.5.0: resolution: {integrity: sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==} @@ -11904,7 +11753,6 @@ packages: cosmiconfig: 7.0.1 transitivePeerDependencies: - supports-color - dev: false /@svgr/hast-util-to-babel-ast/5.5.0: resolution: {integrity: sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==} @@ -11919,7 +11767,6 @@ packages: dependencies: '@babel/types': 7.19.4 entities: 3.0.1 - dev: false /@svgr/plugin-jsx/5.5.0: resolution: {integrity: sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==} @@ -11946,7 +11793,6 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: false /@svgr/plugin-svgo/5.5.0: resolution: {integrity: sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==} @@ -11967,7 +11813,6 @@ packages: cosmiconfig: 7.0.1 deepmerge: 4.2.2 svgo: 2.8.0 - dev: false /@svgr/webpack/5.5.0: resolution: {integrity: sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==} @@ -11999,7 +11844,6 @@ packages: '@svgr/plugin-svgo': 6.2.0_@svgr+core@6.2.1 transitivePeerDependencies: - supports-color - dev: false /@szmarczak/http-timer/4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -12107,19 +11951,15 @@ packages: /@tsconfig/node10/1.0.7: resolution: {integrity: sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==} - dev: true /@tsconfig/node12/1.0.7: resolution: {integrity: sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==} - dev: true /@tsconfig/node14/1.0.0: resolution: {integrity: sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==} - dev: true /@tsconfig/node16/1.0.2: resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} - dev: true /@types/aria-query/5.0.1: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} @@ -12137,26 +11977,22 @@ packages: '@types/babel__generator': 7.6.2 '@types/babel__template': 7.4.0 '@types/babel__traverse': 7.11.1 - dev: true /@types/babel__generator/7.6.2: resolution: {integrity: sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==} dependencies: '@babel/types': 7.20.7 - dev: true /@types/babel__template/7.4.0: resolution: {integrity: sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==} dependencies: '@babel/parser': 7.20.7 '@babel/types': 7.20.7 - dev: true /@types/babel__traverse/7.11.1: resolution: {integrity: sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==} dependencies: '@babel/types': 7.20.7 - dev: true /@types/bcryptjs/2.4.2: resolution: {integrity: sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==} @@ -12172,7 +12008,6 @@ packages: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: '@types/node': 17.0.21 - dev: false /@types/btoa-lite/1.0.0: resolution: {integrity: sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==} @@ -12195,7 +12030,6 @@ packages: dependencies: '@types/express-serve-static-core': 4.17.28 '@types/node': 17.0.21 - dev: false /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} @@ -12254,7 +12088,6 @@ packages: '@types/node': 17.0.21 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 - dev: false /@types/express-serve-static-core/4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} @@ -12271,7 +12104,6 @@ packages: '@types/express-serve-static-core': 4.17.28 '@types/qs': 6.9.7 '@types/serve-static': 1.13.10 - dev: false /@types/express/4.17.15: resolution: {integrity: sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==} @@ -12296,7 +12128,6 @@ packages: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: '@types/node': 17.0.21 - dev: true /@types/hast/2.3.4: resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} @@ -12330,7 +12161,6 @@ packages: resolution: {integrity: sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==} dependencies: '@types/node': 17.0.21 - dev: false /@types/is-ci/3.0.0: resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} @@ -12344,26 +12174,22 @@ packages: /@types/istanbul-lib-coverage/2.0.3: resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} - dev: true /@types/istanbul-lib-report/3.0.0: resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} dependencies: '@types/istanbul-lib-coverage': 2.0.3 - dev: true /@types/istanbul-reports/3.0.1: resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} dependencies: '@types/istanbul-lib-report': 3.0.0 - dev: true /@types/jest/27.5.2: resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==} dependencies: jest-matcher-utils: 27.4.6 pretty-format: 27.5.1 - dev: true /@types/js-levenshtein/1.1.1: resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==} @@ -12460,7 +12286,6 @@ packages: /@types/node/16.18.10: resolution: {integrity: sha512-XU1+v7h81p7145ddPfjv7jtWvkSilpcnON3mQ+bDi9Yuf7OI56efOglXRyXWgQ57xH3fEQgh7WOJMncRHVew5w==} - dev: true /@types/node/17.0.21: resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} @@ -12481,7 +12306,6 @@ packages: /@types/prettier/2.3.0: resolution: {integrity: sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==} - dev: true /@types/pretty-hrtime/1.0.1: resolution: {integrity: sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==} @@ -12602,7 +12426,6 @@ packages: /@types/retry/0.12.1: resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} - dev: false /@types/sax/1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} @@ -12619,13 +12442,11 @@ packages: /@types/semver/7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} - dev: true /@types/serve-index/1.9.1: resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} dependencies: '@types/express': 4.17.14 - dev: false /@types/serve-static/1.13.10: resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} @@ -12651,7 +12472,6 @@ packages: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: '@types/node': 17.0.21 - dev: false /@types/source-list-map/0.1.2: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==} @@ -12659,7 +12479,6 @@ packages: /@types/stack-utils/2.0.0: resolution: {integrity: sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==} - dev: true /@types/superagent/4.1.10: resolution: {integrity: sha512-xAgkb2CMWUMCyVc/3+7iQfOEBE75NvuZeezvmixbUw3nmENf2tCnQkW5yQLTYqvXUQ+R6EXxdqKKbal2zM5V/g==} @@ -12741,11 +12560,9 @@ packages: resolution: {integrity: sha512-VXI82ykONr5tacHEojnErTQk+KQSoYbW1NB6iz6wUwrNd+BqfkfggQNoNdCqhJSzbNumShPERbM+Pc5zpfhlbw==} dependencies: '@types/node': 17.0.21 - dev: false /@types/yargs-parser/20.2.0: resolution: {integrity: sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==} - dev: true /@types/yargs/15.0.14: resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} @@ -12763,7 +12580,6 @@ packages: resolution: {integrity: sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==} dependencies: '@types/yargs-parser': 20.2.0 - dev: true /@types/yauzl/2.10.0: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} @@ -12802,7 +12618,6 @@ packages: typescript: 4.9.4 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/parser/5.47.0_eslint@8.30.0+typescript@4.9.4: resolution: {integrity: sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==} @@ -12822,7 +12637,6 @@ packages: typescript: 4.9.4 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/scope-manager/5.33.1: resolution: {integrity: sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==} @@ -12838,7 +12652,6 @@ packages: dependencies: '@typescript-eslint/types': 5.47.0 '@typescript-eslint/visitor-keys': 5.47.0 - dev: true /@typescript-eslint/type-utils/5.47.0_eslint@8.30.0+typescript@4.9.4: resolution: {integrity: sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==} @@ -12858,7 +12671,6 @@ packages: typescript: 4.9.4 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/types/5.33.1: resolution: {integrity: sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==} @@ -12868,7 +12680,6 @@ packages: /@typescript-eslint/types/5.47.0: resolution: {integrity: sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true /@typescript-eslint/typescript-estree/5.33.1_typescript@4.9.4: resolution: {integrity: sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==} @@ -12910,7 +12721,6 @@ packages: typescript: 4.9.4 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/utils/5.33.1_eslint@8.30.0+typescript@4.9.4: resolution: {integrity: sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==} @@ -12948,7 +12758,6 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true /@typescript-eslint/visitor-keys/5.33.1: resolution: {integrity: sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==} @@ -12964,7 +12773,6 @@ packages: dependencies: '@typescript-eslint/types': 5.47.0 eslint-visitor-keys: 3.3.0 - dev: true /@verdaccio-scope/verdaccio-auth-foo/0.0.2: resolution: {integrity: sha512-BqeDqLcYcm3CRYlrQnAueKg8vabBtqwgZ4jRLZJtig+JWzSX50sKdWrzbhf6waQT/HjRO+ADUs/2gjl1tdOTMQ==} @@ -13404,7 +13212,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.1 - dev: true /acorn-walk/7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} @@ -13576,7 +13383,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.21.3 - dev: true /ansi-html-community/0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} @@ -13603,7 +13409,6 @@ packages: /ansi-regex/6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: false /ansi-styles/2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} @@ -13625,12 +13430,10 @@ packages: /ansi-styles/5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - dev: true /ansi-styles/6.1.0: resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} engines: {node: '>=12'} - dev: false /ansi-to-html/0.6.15: resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==} @@ -13698,7 +13501,6 @@ packages: /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true /arg/5.0.1: resolution: {integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==} @@ -13958,7 +13760,6 @@ packages: picocolors: 1.0.0 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /autoprefixer/9.8.8: resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==} @@ -14022,7 +13823,6 @@ packages: follow-redirects: 1.14.9_debug@4.3.3 transitivePeerDependencies: - debug - dev: false /axobject-query/2.2.0: resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} @@ -14069,7 +13869,6 @@ packages: slash: 3.0.0 transitivePeerDependencies: - supports-color - dev: true /babel-loader/8.2.5_b1475583497452e4eb6a502a776a8f19: resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} @@ -14084,7 +13883,6 @@ packages: make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 5.74.0_esbuild@0.14.10 - dev: false /babel-loader/8.2.5_b8bce14f87162c3885dc6907ec4c380b: resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} @@ -14200,7 +13998,6 @@ packages: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - dev: true /babel-plugin-jest-hoist/29.2.0: resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==} @@ -14210,7 +14007,6 @@ packages: '@babel/types': 7.20.7 '@types/babel__core': 7.1.14 '@types/babel__traverse': 7.11.1 - dev: true /babel-plugin-macros/2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} @@ -14269,7 +14065,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.7: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} @@ -14330,7 +14125,6 @@ packages: core-js-compat: 3.25.2 transitivePeerDependencies: - supports-color - dev: false /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.7: resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} @@ -14375,7 +14169,6 @@ packages: '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.19.3 transitivePeerDependencies: - supports-color - dev: false /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.7: resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} @@ -14420,7 +14213,6 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.7 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.7 '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.7 - dev: true /babel-preset-jest/29.2.0_@babel+core@7.20.7: resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==} @@ -14431,7 +14223,6 @@ packages: '@babel/core': 7.20.7 babel-plugin-jest-hoist: 29.2.0 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.7 - dev: true /bail/1.0.5: resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} @@ -14607,7 +14398,6 @@ packages: dns-equal: 1.0.0 fast-deep-equal: 3.1.3 multicast-dns: 7.2.4 - dev: false /bonjour/3.5.0: resolution: {integrity: sha1-jokKGD2O6aI5OzhExpGkK897yfU=} @@ -14634,7 +14424,6 @@ packages: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 - dev: false /boxen/5.1.2: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} @@ -14662,7 +14451,6 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.0.1 - dev: false /bplist-parser/0.1.1: resolution: {integrity: sha512-2AEM0FXy8ZxVLBuqX0hqt1gDwcnz2zygEkQ6zaD5Wko/sB9paUNwlpawrFtKeHUAQUOzjVy9AO4oeonqIHKA9Q==} @@ -14827,7 +14615,6 @@ packages: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 - dev: true /btoa-lite/1.0.0: resolution: {integrity: sha1-M3dm2hWAEhD92VbCLpxokaudAzc=} @@ -15121,7 +14908,6 @@ packages: /char-regex/1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - dev: true /character-entities-legacy/1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} @@ -15259,7 +15045,6 @@ packages: /cjs-module-lexer/1.2.1: resolution: {integrity: sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==} - dev: true /class-utils/0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} @@ -15291,7 +15076,6 @@ packages: engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 - dev: false /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -15304,7 +15088,6 @@ packages: /cli-boxes/3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} - dev: false /cli-cursor/3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} @@ -15366,7 +15149,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-deep/4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} @@ -15398,7 +15180,6 @@ packages: /co/4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true /coa/2.0.2: resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} @@ -15414,7 +15195,6 @@ packages: /collect-v8-coverage/1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true /collection-visit/1.0.0: resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=} @@ -15458,7 +15238,6 @@ packages: /combine-promises/1.1.0: resolution: {integrity: sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==} engines: {node: '>=10'} - dev: false /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -15510,7 +15289,6 @@ packages: /commander/8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - dev: false /common-path-prefix/3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -15599,7 +15377,6 @@ packages: unique-string: 2.0.0 write-file-atomic: 3.0.3 xdg-basedir: 4.0.0 - dev: false /connect-history-api-fallback/1.6.0: resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} @@ -15608,11 +15385,9 @@ packages: /connect-history-api-fallback/2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} - dev: false /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: false /console-browserify/1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} @@ -15629,7 +15404,6 @@ packages: /content-disposition/0.5.2: resolution: {integrity: sha1-DPaLud318r55YcOoUXjLhdunjLQ=} engines: {node: '>= 0.6'} - dev: false /content-disposition/0.5.3: resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} @@ -15660,7 +15434,6 @@ packages: /convert-source-map/2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true /cookie-signature/1.0.6: resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} @@ -15723,7 +15496,6 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.0 webpack: 5.74.0_esbuild@0.14.10 - dev: false /copy-webpack-plugin/9.0.1_webpack@5.74.0: resolution: {integrity: sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==} @@ -15756,7 +15528,6 @@ packages: /core-js-pure/3.21.1: resolution: {integrity: sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==} requiresBuild: true - dev: false /core-js-pure/3.27.0: resolution: {integrity: sha512-fJml7FM6v1HI3Gkg5/Ifc/7Y2qXcJxaDwSROeZGAZfNykSTvUk94WT55TYzJ2lFHK0voSr/d4nOVChLuNCWNpA==} @@ -15771,7 +15542,6 @@ packages: /core-js/3.25.5: resolution: {integrity: sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==} requiresBuild: true - dev: false /core-js/3.27.0: resolution: {integrity: sha512-wY6cKosevs430KRkHUIsvepDXHGjlXOZO3hYXNyqpD6JvB0X28aXyv0t1Y1vZMwE7SoKmtfa6IASHCPN52FwBQ==} @@ -15878,7 +15648,6 @@ packages: /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true /cross-env/7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} @@ -15940,7 +15709,6 @@ packages: /crypto-random-string/2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - dev: false /css-declaration-sorter/6.3.0_postcss@8.3.6: resolution: {integrity: sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==} @@ -15967,7 +15735,6 @@ packages: postcss: ^8.0.9 dependencies: postcss: 8.4.18 - dev: false /css-functions-list/3.1.0: resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} @@ -16053,7 +15820,6 @@ packages: postcss-value-parser: 4.2.0 semver: 7.3.7 webpack: 5.74.0_esbuild@0.14.10 - dev: false /css-loader/6.7.3_webpack@5.75.0: resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} @@ -16124,7 +15890,6 @@ packages: serialize-javascript: 6.0.0 source-map: 0.6.1 webpack: 5.74.0_esbuild@0.14.10 - dev: false /css-select-base-adapter/0.1.1: resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==} @@ -16240,7 +16005,6 @@ packages: postcss-merge-idents: 5.1.1_postcss@8.4.18 postcss-reduce-idents: 5.2.0_postcss@8.4.18 postcss-zindex: 5.1.0_postcss@8.4.18 - dev: false /cssnano-preset-default/5.2.12_postcss@8.3.6: resolution: {integrity: sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==} @@ -16354,7 +16118,6 @@ packages: postcss-reduce-transforms: 5.1.0_postcss@8.4.18 postcss-svgo: 5.1.0_postcss@8.4.18 postcss-unique-selectors: 5.1.1_postcss@8.4.18 - dev: false /cssnano-utils/3.1.0_postcss@8.3.6: resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} @@ -16381,7 +16144,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /cssnano/5.0.7_postcss@8.3.6: resolution: {integrity: sha512-7C0tbb298hef3rq+TtBbMuezBQ9VrFtrQEsPNuBKNVgWny/67vdRsnq8EoNu7TRjAHURgYvWlRIpCUmcMZkRzw==} @@ -16418,7 +16180,6 @@ packages: lilconfig: 2.0.4 postcss: 8.4.18 yaml: 1.10.2 - dev: false /csso/4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} @@ -17203,7 +16964,6 @@ packages: /dedent/0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: true /deep-equal/1.1.1: resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} @@ -17218,11 +16978,9 @@ packages: /deep-extend/0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: false /deep-is/0.1.3: resolution: {integrity: sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw==} - dev: true /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} @@ -17252,7 +17010,6 @@ packages: engines: {node: '>= 10'} dependencies: execa: 5.1.1 - dev: false /defaults/1.0.3: resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} @@ -17318,7 +17075,6 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: false /delaunator/5.0.0: resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} @@ -17378,7 +17134,6 @@ packages: /detect-newline/3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - dev: true /detect-node/2.0.4: resolution: {integrity: sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==} @@ -17399,7 +17154,6 @@ packages: debug: 2.6.9 transitivePeerDependencies: - supports-color - dev: false /detect-port/1.3.0: resolution: {integrity: sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==} @@ -17432,17 +17186,14 @@ packages: /diff-sequences/27.5.1: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true /diff-sequences/29.3.1: resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dev: true /diff/5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} @@ -17483,7 +17234,6 @@ packages: engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.3 - dev: false /dns-txt/2.0.2: resolution: {integrity: sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=} @@ -17502,7 +17252,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: true /docusaurus-plugin-sass/0.2.1_2619879d3bac99c21a5b1cdc20972a32: resolution: {integrity: sha512-cRugbRWnKLjFPQTo1k2cyn/AANYkXAPHv+DaLs7bkOfOofEgTSrMdpNidt3oZ0ltQcjUUbvmSRRjH9R1ifdRMA==} @@ -17667,7 +17416,6 @@ packages: engines: {node: '>=8'} dependencies: is-obj: 2.0.0 - dev: false /dotenv-expand/5.1.0: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} @@ -17692,7 +17440,6 @@ packages: /eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: false /ecc-jsbn/0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} @@ -17731,7 +17478,6 @@ packages: /emittery/0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} - dev: true /emoji-regex/7.0.3: resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} @@ -17741,7 +17487,6 @@ packages: /emoji-regex/9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: false /emojis-list/3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} @@ -17749,7 +17494,6 @@ packages: /emoticon/3.2.0: resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} - dev: false /encodeurl/1.0.2: resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} @@ -17809,7 +17553,6 @@ packages: /entities/3.0.1: resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} engines: {node: '>=0.12'} - dev: false /entities/4.4.0: resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} @@ -17955,7 +17698,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /esbuild-darwin-64/0.13.15: @@ -17971,7 +17713,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /esbuild-darwin-arm64/0.13.15: @@ -17987,7 +17728,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /esbuild-freebsd-64/0.13.15: @@ -18003,7 +17743,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /esbuild-freebsd-arm64/0.13.15: @@ -18019,7 +17758,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /esbuild-linux-32/0.13.15: @@ -18035,7 +17773,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-64/0.13.15: @@ -18051,7 +17788,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-arm/0.13.15: @@ -18067,7 +17803,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-arm64/0.13.15: @@ -18083,7 +17818,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-mips64le/0.13.15: @@ -18099,7 +17833,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-ppc64le/0.13.15: @@ -18115,7 +17848,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-s390x/0.14.10: @@ -18123,7 +17855,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-loader/2.16.0: @@ -18153,7 +17884,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /esbuild-openbsd-64/0.13.15: @@ -18169,7 +17899,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /esbuild-sunos-64/0.13.15: @@ -18185,7 +17914,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /esbuild-windows-32/0.13.15: @@ -18201,7 +17929,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-64/0.13.15: @@ -18217,7 +17944,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-arm64/0.13.15: @@ -18233,7 +17959,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /esbuild/0.13.15: @@ -18283,7 +18008,6 @@ packages: esbuild-windows-32: 0.14.10 esbuild-windows-64: 0.14.10 esbuild-windows-arm64: 0.14.10 - dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -18292,7 +18016,6 @@ packages: /escape-goat/2.1.1: resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} engines: {node: '>=8'} - dev: false /escape-html/1.0.3: resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} @@ -18564,7 +18287,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true /eslint-utils/3.0.0_eslint@8.30.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} @@ -18634,7 +18356,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true /espree/9.4.0: resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} @@ -18643,7 +18364,6 @@ packages: acorn: 8.8.1 acorn-jsx: 5.3.2_acorn@8.8.1 eslint-visitor-keys: 3.3.0 - dev: true /esprima/4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -18655,7 +18375,6 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - dev: true /esrecurse/4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -18693,7 +18412,6 @@ packages: /eta/1.12.3: resolution: {integrity: sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==} engines: {node: '>=6.0.0'} - dev: false /etag/1.8.1: resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} @@ -18705,7 +18423,6 @@ packages: dependencies: '@types/node': 17.0.21 require-like: 0.1.2 - dev: false /event-target-shim/5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} @@ -18795,7 +18512,6 @@ packages: /exit/0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} - dev: true /expand-brackets/2.1.4: resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=} @@ -18834,7 +18550,6 @@ packages: jest-matcher-utils: 29.3.1 jest-message-util: 29.3.1 jest-util: 29.3.1 - dev: true /express-rate-limit/5.5.1: resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} @@ -19109,7 +18824,6 @@ packages: /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true /fast-querystring/1.0.0: resolution: {integrity: sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==} @@ -19131,7 +18845,6 @@ packages: resolution: {integrity: sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=} dependencies: punycode: 1.4.1 - dev: false /fastest-levenshtein/1.0.12: resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==} @@ -19183,13 +18896,11 @@ packages: engines: {node: '>=0.8.0'} dependencies: websocket-driver: 0.7.4 - dev: false /fb-watchman/2.0.1: resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} dependencies: bser: 2.1.1 - dev: true /fbemitter/3.0.0: resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} @@ -19247,7 +18958,6 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 - dev: true /file-loader/6.2.0_webpack@4.46.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} @@ -19269,7 +18979,6 @@ packages: loader-utils: 2.0.2 schema-utils: 3.1.1 webpack: 5.74.0 - dev: false /file-system-cache/1.1.0: resolution: {integrity: sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw==} @@ -19296,7 +19005,6 @@ packages: /filesize/8.0.7: resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} engines: {node: '>= 0.4.0'} - dev: false /fill-range/4.0.0: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} @@ -19418,11 +19126,9 @@ packages: dependencies: flatted: 3.1.1 rimraf: 3.0.2 - dev: true /flatted/3.1.1: resolution: {integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==} - dev: true /flush-write-stream/1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} @@ -19482,7 +19188,6 @@ packages: optional: true dependencies: debug: 4.3.4 - dev: false /for-each/0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -19656,7 +19361,6 @@ packages: tapable: 1.1.3 typescript: 4.9.4 webpack: 5.74.0_esbuild@0.14.10 - dev: false /form-data/2.3.3: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} @@ -19709,7 +19413,6 @@ packages: /fraction.js/4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: false /fragment-cache/0.2.1: resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=} @@ -19883,7 +19586,6 @@ packages: /get-package-type/0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - dev: true /get-port/5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} @@ -20038,7 +19740,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: true /globalthis/1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -20079,7 +19780,6 @@ packages: ignore: 5.2.0 merge2: 1.4.1 slash: 4.0.0 - dev: false /globby/6.1.0: resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} @@ -20137,7 +19837,6 @@ packages: /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true /graphlib/2.1.8: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} @@ -20158,7 +19857,6 @@ packages: kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 - dev: false /gzip-size/5.1.1: resolution: {integrity: sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==} @@ -20272,7 +19970,6 @@ packages: /has-yarn/2.1.0: resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} engines: {node: '>=8'} - dev: false /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} @@ -20441,7 +20138,6 @@ packages: /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true /html-minifier-terser/5.1.1: resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} @@ -20481,7 +20177,6 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.14.2 - dev: false /html-parse-stringify/3.0.1: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} @@ -20525,7 +20220,6 @@ packages: pretty-error: 4.0.0 tapable: 2.2.0 webpack: 5.74.0_esbuild@0.14.10 - dev: false /html-webpack-plugin/5.5.0_webpack@5.75.0: resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} @@ -20656,7 +20350,6 @@ packages: micromatch: 4.0.5 transitivePeerDependencies: - debug - dev: false /http-proxy/1.18.1_debug@4.3.3: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} @@ -20677,7 +20370,6 @@ packages: requires-port: 1.0.0 transitivePeerDependencies: - debug - dev: false /http-signature/1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} @@ -20802,7 +20494,6 @@ packages: /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} - dev: true /image-size/1.0.2: resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} @@ -20810,7 +20501,6 @@ packages: hasBin: true dependencies: queue: 6.0.2 - dev: false /immer/8.0.1: resolution: {integrity: sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==} @@ -20818,7 +20508,6 @@ packages: /immer/9.0.12: resolution: {integrity: sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==} - dev: false /immutable/4.0.0: resolution: {integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==} @@ -20834,7 +20523,6 @@ packages: /import-lazy/2.1.0: resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} engines: {node: '>=4'} - dev: false /import-lazy/4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} @@ -20856,7 +20544,6 @@ packages: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - dev: true /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -20993,7 +20680,6 @@ packages: /ipaddr.js/2.0.1: resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} engines: {node: '>= 10'} - dev: false /is-absolute-url/3.0.3: resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} @@ -21172,7 +20858,6 @@ packages: /is-generator-fn/2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - dev: true /is-generator-function/1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} @@ -21226,7 +20911,6 @@ packages: /is-npm/5.0.0: resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} engines: {node: '>=10'} - dev: false /is-number-object/1.0.5: resolution: {integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==} @@ -21249,7 +20933,6 @@ packages: /is-obj/2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - dev: false /is-object/1.0.2: resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} @@ -21287,7 +20970,6 @@ packages: /is-plain-obj/3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} - dev: false /is-plain-obj/4.0.0: resolution: {integrity: sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==} @@ -21330,7 +21012,6 @@ packages: /is-root/2.1.0: resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} engines: {node: '>=6'} - dev: false /is-set/2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} @@ -21423,7 +21104,6 @@ packages: /is-yarn-global/0.3.0: resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: false /isarray/0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -21469,7 +21149,6 @@ packages: /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} - dev: true /istanbul-lib-instrument/5.1.0: resolution: {integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==} @@ -21482,7 +21161,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: true /istanbul-lib-report/3.0.0: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} @@ -21491,7 +21169,6 @@ packages: istanbul-lib-coverage: 3.2.0 make-dir: 3.1.0 supports-color: 7.2.0 - dev: true /istanbul-lib-source-maps/4.0.0: resolution: {integrity: sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==} @@ -21502,7 +21179,6 @@ packages: source-map: 0.6.1 transitivePeerDependencies: - supports-color - dev: true /istanbul-reports/3.1.3: resolution: {integrity: sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==} @@ -21510,7 +21186,6 @@ packages: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.0 - dev: true /istanbul-reports/3.1.5: resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} @@ -21541,7 +21216,6 @@ packages: dependencies: execa: 5.1.1 p-limit: 3.1.0 - dev: true /jest-circus/29.3.1: resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==} @@ -21568,7 +21242,6 @@ packages: stack-utils: 2.0.3 transitivePeerDependencies: - supports-color - dev: true /jest-cli/29.3.1_0f89317ef48a2a24b0210d5ddc0c14be: resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} @@ -21596,7 +21269,6 @@ packages: - '@types/node' - supports-color - ts-node - dev: true /jest-config/29.3.1_0f89317ef48a2a24b0210d5ddc0c14be: resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} @@ -21636,7 +21308,6 @@ packages: ts-node: 10.9.1_5cc4fd05cdbba7efed0227e61dc065e1 transitivePeerDependencies: - supports-color - dev: true /jest-config/29.3.1_4c9218cc83705fb930ab54f5e2165d14: resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} @@ -21676,7 +21347,6 @@ packages: ts-node: 10.9.1_5cc4fd05cdbba7efed0227e61dc065e1 transitivePeerDependencies: - supports-color - dev: true /jest-diff/27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} @@ -21686,7 +21356,6 @@ packages: diff-sequences: 27.5.1 jest-get-type: 27.5.1 pretty-format: 27.5.1 - dev: true /jest-diff/29.3.1: resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==} @@ -21696,14 +21365,12 @@ packages: diff-sequences: 29.3.1 jest-get-type: 29.2.0 pretty-format: 29.3.1 - dev: true /jest-docblock/29.2.0: resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 - dev: true /jest-each/29.3.1: resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} @@ -21714,7 +21381,6 @@ packages: jest-get-type: 29.2.0 jest-util: 29.3.1 pretty-format: 29.3.1 - dev: true /jest-environment-jsdom-global/3.1.2_jest-environment-jsdom@29.3.1: resolution: {integrity: sha512-Suq/B0c8OVUYrx05j8ynKqKMzNCTNll72SLxzoTeBtjnsbrScM2Az0dBEBPN8EVTuP1lcgWN0tV0M9+hfkvXHQ==} @@ -21758,17 +21424,14 @@ packages: '@types/node': 17.0.21 jest-mock: 29.3.1 jest-util: 29.3.1 - dev: true /jest-get-type/27.5.1: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true /jest-get-type/29.2.0: resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true /jest-haste-map/26.6.2: resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} @@ -21810,7 +21473,6 @@ packages: walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 - dev: true /jest-junit/12.3.0: resolution: {integrity: sha512-+NmE5ogsEjFppEl90GChrk7xgz8xzvF0f+ZT5AnhW6suJC93gvQtmQjfyjDnE0Z2nXJqEkxF0WXlvjG/J+wn/g==} @@ -21828,7 +21490,6 @@ packages: dependencies: jest-get-type: 29.2.0 pretty-format: 29.3.1 - dev: true /jest-matcher-utils/27.4.6: resolution: {integrity: sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==} @@ -21838,7 +21499,6 @@ packages: jest-diff: 27.5.1 jest-get-type: 27.5.1 pretty-format: 27.5.1 - dev: true /jest-matcher-utils/29.3.1: resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==} @@ -21848,7 +21508,6 @@ packages: jest-diff: 29.3.1 jest-get-type: 29.2.0 pretty-format: 29.3.1 - dev: true /jest-message-util/29.3.1: resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} @@ -21863,7 +21522,6 @@ packages: pretty-format: 29.3.1 slash: 3.0.0 stack-utils: 2.0.3 - dev: true /jest-mock-process/1.5.1_jest@29.3.1: resolution: {integrity: sha512-CPu46KyUiVSxE+LkqBuscqGmy1bvW2vJQuNstt83iLtFaFjgrgmp6LY04IKuOhhlGhcrdi86Gqq5/fTE2wG6lg==} @@ -21888,7 +21546,6 @@ packages: '@jest/types': 29.3.1 '@types/node': 17.0.21 jest-util: 29.3.1 - dev: true /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} @@ -21900,7 +21557,6 @@ packages: optional: true dependencies: jest-resolve: 29.3.1 - dev: true /jest-regex-util/26.0.0: resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} @@ -21910,7 +21566,6 @@ packages: /jest-regex-util/29.2.0: resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true /jest-resolve-dependencies/29.3.1: resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==} @@ -21920,7 +21575,6 @@ packages: jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color - dev: true /jest-resolve/29.3.1: resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} @@ -21935,7 +21589,6 @@ packages: resolve: 1.22.0 resolve.exports: 1.1.0 slash: 3.0.0 - dev: true /jest-runner/29.3.1: resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==} @@ -21964,7 +21617,6 @@ packages: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - dev: true /jest-runtime/29.3.1: resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} @@ -21994,7 +21646,6 @@ packages: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - dev: true /jest-serializer/26.6.2: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} @@ -22034,7 +21685,6 @@ packages: semver: 7.3.8 transitivePeerDependencies: - supports-color - dev: true /jest-util/26.6.2: resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} @@ -22058,7 +21708,6 @@ packages: ci-info: 3.2.0 graceful-fs: 4.2.9 picomatch: 2.3.1 - dev: true /jest-validate/29.3.1: resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} @@ -22070,7 +21719,6 @@ packages: jest-get-type: 29.2.0 leven: 3.1.0 pretty-format: 29.3.1 - dev: true /jest-watcher/29.3.1: resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==} @@ -22084,7 +21732,6 @@ packages: emittery: 0.13.1 jest-util: 29.3.1 string-length: 4.0.2 - dev: true /jest-worker/26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} @@ -22120,7 +21767,6 @@ packages: jest-util: 29.3.1 merge-stream: 2.0.0 supports-color: 8.1.1 - dev: true /jest/29.3.1_0f89317ef48a2a24b0210d5ddc0c14be: resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} @@ -22140,7 +21786,6 @@ packages: - '@types/node' - supports-color - ts-node - dev: true /joi/17.6.0: resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} @@ -22167,7 +21812,6 @@ packages: /js-sdsl/4.1.4: resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} - dev: true /js-string-escape/1.0.1: resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} @@ -22266,7 +21910,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true /json-stable-stringify/1.0.1: resolution: {integrity: sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=} @@ -22531,7 +22174,6 @@ packages: engines: {node: '>=8'} dependencies: package-json: 6.5.0 - dev: false /lazy-ass/1.6.0: resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} @@ -22567,7 +22209,6 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /light-my-request/5.6.1: resolution: {integrity: sha512-sbJnC1UBRivi9L1kICr3CESb82pNiPNB3TvtdIrZZqW0Qh8uDXvoywMmWKZlihDcmw952CMICCzM+54LDf+E+g==} @@ -22704,7 +22345,6 @@ packages: /loader-utils/3.2.0: resolution: {integrity: sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==} engines: {node: '>= 12.13.0'} - dev: false /loadjs/4.2.0: resolution: {integrity: sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==} @@ -22788,7 +22428,6 @@ packages: /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true /lodash.once/4.1.1: resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} @@ -22929,13 +22568,11 @@ packages: /make-error/1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true /makeerror/1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 - dev: true /map-age-cleaner/0.1.3: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} @@ -23119,7 +22756,6 @@ packages: /mdast-util-to-string/2.0.0: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: false /mdast-util-to-string/3.1.0: resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} @@ -23267,7 +22903,7 @@ packages: dev: false /methods/1.1.2: - resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} /microevent.ts/0.1.1: @@ -23567,7 +23203,6 @@ packages: /mime-db/1.33.0: resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} engines: {node: '>= 0.6'} - dev: false /mime-db/1.48.0: resolution: {integrity: sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==} @@ -23582,7 +23217,6 @@ packages: engines: {node: '>= 0.6'} dependencies: mime-db: 1.33.0 - dev: false /mime-types/2.1.31: resolution: {integrity: sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==} @@ -23666,7 +23300,6 @@ packages: dependencies: schema-utils: 4.0.0 webpack: 5.74.0_esbuild@0.14.10 - dev: false /mini-css-extract-plugin/2.7.2_webpack@5.75.0: resolution: {integrity: sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==} @@ -23908,7 +23541,6 @@ packages: dependencies: dns-packet: 5.3.1 thunky: 1.1.0 - dev: false /mutationobserver-shim/0.3.7: resolution: {integrity: sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==} @@ -23970,11 +23602,9 @@ packages: /natural-compare-lite/1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true /negotiator/0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -24031,7 +23661,6 @@ packages: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} dependencies: lodash: 4.17.21 - dev: false /node-environment-flags/1.0.6: resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} @@ -24058,7 +23687,6 @@ packages: /node-forge/1.2.1: resolution: {integrity: sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==} engines: {node: '>= 6.13.0'} - dev: false /node-html-parser/4.1.5: resolution: {integrity: sha512-NLgqUXtftqnBqIjlRjYSaApaqE7TTxfTiH4VqKCjdUJKFOtUzRwney83EHz2qYc0XoxXAkYdmLjENCuZHvsIFg==} @@ -24069,7 +23697,6 @@ packages: /node-int64/0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: true /node-libs-browser/2.2.1: resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} @@ -24824,7 +24451,6 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.3 - dev: true /ora/5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -24980,7 +24606,6 @@ packages: dependencies: '@types/retry': 0.12.1 retry: 0.13.1 - dev: false /p-timeout/3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} @@ -25006,7 +24631,6 @@ packages: registry-auth-token: 4.2.1 registry-url: 5.1.0 semver: 6.3.0 - dev: false /pako/1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -25174,7 +24798,6 @@ packages: /path-to-regexp/2.2.1: resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: false /path-to-regexp/6.2.0: resolution: {integrity: sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==} @@ -25287,7 +24910,6 @@ packages: /pirates/4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} - dev: true /pkg-dir/3.0.0: resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} @@ -25313,7 +24935,6 @@ packages: engines: {node: '>=8'} dependencies: find-up: 3.0.0 - dev: false /please-upgrade-node/3.2.0: resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} @@ -25336,8 +24957,8 @@ packages: hasBin: true dev: false - /pnpm/7.26.1: - resolution: {integrity: sha512-l86ZNy8RZmG2aDxZVk6+vt9c8aV0tMZICQxPksRQOL5r2n92kgaIauYSFUZ+LNmPJFsbSGKpsvgOF41oiS7JWw==} + /pnpm/7.26.2: + resolution: {integrity: sha512-Ywwh8puMMJQDO0kX4gxW9yBdbYISt3B6IfekexzWIium5wmpopAHMUpLuxRac5U5AAIIvt4ZQntWy6VcXs0iEg==} engines: {node: '>=14.6'} hasBin: true dev: false @@ -25391,7 +25012,6 @@ packages: postcss: 8.4.18 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 - dev: false /postcss-colormin/5.3.0_postcss@8.3.6: resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} @@ -25430,7 +25050,6 @@ packages: colord: 2.9.3 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-convert-values/5.1.2_postcss@8.3.6: resolution: {integrity: sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==} @@ -25463,7 +25082,6 @@ packages: browserslist: 4.21.4 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-discard-comments/5.1.2_postcss@8.3.6: resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} @@ -25490,7 +25108,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /postcss-discard-duplicates/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} @@ -25517,7 +25134,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /postcss-discard-empty/5.1.1_postcss@8.3.6: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} @@ -25544,7 +25160,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /postcss-discard-overridden/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} @@ -25571,7 +25186,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /postcss-discard-unused/5.1.0_postcss@8.4.16: resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} @@ -25591,7 +25205,6 @@ packages: dependencies: postcss: 8.4.18 postcss-selector-parser: 6.0.10 - dev: false /postcss-flexbugs-fixes/4.2.1: resolution: {integrity: sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==} @@ -25641,7 +25254,6 @@ packages: postcss: 8.4.18 semver: 7.3.8 webpack: 5.74.0_esbuild@0.14.10 - dev: false /postcss-media-query-parser/0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} @@ -25667,7 +25279,6 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.18 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-merge-longhand/5.1.6_postcss@8.3.6: resolution: {integrity: sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==} @@ -25700,7 +25311,6 @@ packages: postcss: 8.4.18 postcss-value-parser: 4.2.0 stylehacks: 5.1.0_postcss@8.4.18 - dev: false /postcss-merge-rules/5.1.2_postcss@8.3.6: resolution: {integrity: sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==} @@ -25739,7 +25349,6 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.18 postcss: 8.4.18 postcss-selector-parser: 6.0.11 - dev: false /postcss-minify-font-values/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} @@ -25769,7 +25378,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-minify-gradients/5.1.1_postcss@8.3.6: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} @@ -25805,7 +25413,6 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.18 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-minify-params/5.1.3_postcss@8.3.6: resolution: {integrity: sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==} @@ -25841,7 +25448,6 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.18 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-minify-selectors/5.2.1_postcss@8.3.6: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} @@ -25871,7 +25477,6 @@ packages: dependencies: postcss: 8.4.18 postcss-selector-parser: 6.0.11 - dev: false /postcss-modules-extract-imports/2.0.0: resolution: {integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==} @@ -26008,7 +25613,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /postcss-normalize-display-values/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} @@ -26038,7 +25642,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-positions/5.1.1_postcss@8.3.6: resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} @@ -26068,7 +25671,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-repeat-style/5.1.1_postcss@8.3.6: resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} @@ -26098,7 +25700,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-string/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} @@ -26128,7 +25729,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-timing-functions/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} @@ -26158,7 +25758,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-unicode/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==} @@ -26191,7 +25790,6 @@ packages: browserslist: 4.21.4 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-url/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} @@ -26224,7 +25822,6 @@ packages: normalize-url: 6.1.0 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-normalize-whitespace/5.1.1_postcss@8.3.6: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} @@ -26254,7 +25851,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-ordered-values/5.1.3_postcss@8.3.6: resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} @@ -26287,7 +25883,6 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.18 postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-reduce-idents/5.2.0_postcss@8.4.16: resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} @@ -26307,7 +25902,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-reduce-initial/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==} @@ -26340,7 +25934,6 @@ packages: browserslist: 4.21.4 caniuse-api: 3.0.0 postcss: 8.4.18 - dev: false /postcss-reduce-transforms/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} @@ -26370,7 +25963,6 @@ packages: dependencies: postcss: 8.4.18 postcss-value-parser: 4.2.0 - dev: false /postcss-resolve-nested-selector/0.1.1: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} @@ -26391,7 +25983,6 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: false /postcss-selector-parser/6.0.11: resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} @@ -26418,7 +26009,6 @@ packages: dependencies: postcss: 8.4.18 sort-css-media-queries: 2.0.4 - dev: false /postcss-svgo/5.1.0_postcss@8.3.6: resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} @@ -26451,7 +26041,6 @@ packages: postcss: 8.4.18 postcss-value-parser: 4.2.0 svgo: 2.8.0 - dev: false /postcss-unique-selectors/5.1.1_postcss@8.3.6: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} @@ -26481,7 +26070,6 @@ packages: dependencies: postcss: 8.4.18 postcss-selector-parser: 6.0.11 - dev: false /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -26502,7 +26090,6 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.18 - dev: false /postcss/7.0.32: resolution: {integrity: sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==} @@ -26573,7 +26160,6 @@ packages: /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: true /prettier-linter-helpers/1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} @@ -26592,7 +26178,6 @@ packages: resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /pretty-bytes/5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -26619,7 +26204,6 @@ packages: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true /pretty-format/29.3.1: resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} @@ -26628,7 +26212,6 @@ packages: '@jest/schemas': 29.0.0 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true /pretty-hrtime/1.0.3: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} @@ -26638,7 +26221,6 @@ packages: /pretty-time/1.1.0: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} engines: {node: '>=4'} - dev: false /prism-react-renderer/1.2.1_react@17.0.2: resolution: {integrity: sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==} @@ -26834,7 +26416,6 @@ packages: engines: {node: '>=8'} dependencies: escape-goat: 2.1.1 - dev: false /pure-color/1.3.0: resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==} @@ -26886,7 +26467,6 @@ packages: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} dependencies: inherits: 2.0.4 - dev: false /quick-format-unescaped/4.0.3: resolution: {integrity: sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==} @@ -26919,7 +26499,6 @@ packages: /range-parser/1.2.0: resolution: {integrity: sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=} engines: {node: '>= 0.6'} - dev: false /range-parser/1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} @@ -26973,7 +26552,6 @@ packages: ini: 1.3.8 minimist: 1.2.6 strip-json-comments: 2.0.1 - dev: false /react-base16-styling/0.6.0: resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==} @@ -27053,7 +26631,6 @@ packages: - typescript - vue-template-compiler - webpack - dev: false /react-docgen-typescript/2.2.2_typescript@4.9.4: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} @@ -27116,7 +26693,6 @@ packages: /react-error-overlay/6.0.11: resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - dev: false /react-fast-compare/3.2.0: resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} @@ -27273,7 +26849,6 @@ packages: '@babel/runtime': 7.20.6 react-loadable: /@docusaurus/react-loadable/5.5.2_react@17.0.2 webpack: 5.74.0_esbuild@0.14.10 - dev: false /react-loadable-ssr-addon-v5-slorber/1.0.1_c83a830dd63b7b1afe877d4c76931366: resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} @@ -27385,7 +26960,6 @@ packages: '@babel/runtime': 7.20.6 react: 17.0.2 react-router: 5.3.4_react@17.0.2 - dev: false /react-router-dom/5.3.3_react@17.0.2: resolution: {integrity: sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==} @@ -27415,7 +26989,6 @@ packages: react-router: 5.3.4_react@17.0.2 tiny-invariant: 1.2.0 tiny-warning: 1.0.3 - dev: false /react-router-dom/5.3.4_react@18.2.0: resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} @@ -27464,7 +27037,6 @@ packages: react-is: 16.13.1 tiny-invariant: 1.2.0 tiny-warning: 1.0.3 - dev: false /react-router/5.3.4_react@18.2.0: resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} @@ -27722,7 +27294,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: minimatch: 3.0.4 - dev: false /redent/1.0.0: resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==} @@ -27801,7 +27372,6 @@ packages: /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} - dev: true /regexpu-core/5.1.0: resolution: {integrity: sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==} @@ -27819,14 +27389,12 @@ packages: engines: {node: '>=6.0.0'} dependencies: rc: 1.2.8 - dev: false /registry-url/5.1.0: resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} engines: {node: '>=8'} dependencies: rc: 1.2.8 - dev: false /regjsgen/0.6.0: resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==} @@ -27847,7 +27415,6 @@ packages: emoticon: 3.2.0 node-emoji: 1.11.0 unist-util-visit: 2.0.3 - dev: false /remark-external-links/8.0.0: resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==} @@ -27988,7 +27555,6 @@ packages: /require-like/0.1.2: resolution: {integrity: sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=} - dev: false /require-main-filename/2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -28010,7 +27576,6 @@ packages: engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 - dev: true /resolve-from/3.0.0: resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} @@ -28023,7 +27588,6 @@ packages: /resolve-from/5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - dev: true /resolve-pathname/3.0.0: resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} @@ -28034,7 +27598,6 @@ packages: /resolve.exports/1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} engines: {node: '>=10'} - dev: true /resolve/1.17.0: resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} @@ -28085,7 +27648,6 @@ packages: /retry/0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} - dev: false /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -28124,7 +27686,6 @@ packages: /rtl-detect/1.0.4: resolution: {integrity: sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==} - dev: false /rtlcss/3.5.0: resolution: {integrity: sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==} @@ -28356,7 +27917,6 @@ packages: dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 - dev: false /secure-json-parse/2.5.0: resolution: {integrity: sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w==} @@ -28380,7 +27940,6 @@ packages: engines: {node: '>=10'} dependencies: node-forge: 1.2.1 - dev: false /semver-compare/1.0.0: resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} @@ -28391,7 +27950,6 @@ packages: engines: {node: '>=8'} dependencies: semver: 6.3.0 - dev: false /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} @@ -28498,7 +28056,6 @@ packages: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 - dev: false /serve-index/1.9.1: resolution: {integrity: sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=} @@ -28513,7 +28070,6 @@ packages: parseurl: 1.3.3 transitivePeerDependencies: - supports-color - dev: false /serve-index/1.9.1_supports-color@6.1.0: resolution: {integrity: sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=} @@ -28620,7 +28176,6 @@ packages: /shell-quote/1.7.3: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} - dev: false /shelljs/0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} @@ -28693,7 +28248,6 @@ packages: /slash/4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - dev: false /slice-ansi/3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} @@ -28795,7 +28349,6 @@ packages: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - dev: false /sonic-boom/3.2.1: resolution: {integrity: sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==} @@ -28810,7 +28363,6 @@ packages: /sort-css-media-queries/2.0.4: resolution: {integrity: sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw==} engines: {node: '>= 6.3.0'} - dev: false /source-list-map/2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} @@ -28838,7 +28390,6 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true /source-map-support/0.5.19: resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} @@ -28921,7 +28472,6 @@ packages: wbuf: 1.7.3 transitivePeerDependencies: - supports-color - dev: false /spdy-transport/3.0.0_supports-color@6.1.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} @@ -28946,7 +28496,6 @@ packages: spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color - dev: false /spdy/4.0.2_supports-color@6.1.0: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} @@ -29015,7 +28564,6 @@ packages: engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 - dev: true /stackframe/1.2.0: resolution: {integrity: sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==} @@ -29047,7 +28595,6 @@ packages: /std-env/3.0.1: resolution: {integrity: sha512-mC1Ps9l77/97qeOZc+HrOL7TIaOboHqMZ24dGVQrlxFcpPpfCHpH+qfUT7Dz+6mlG8+JPA1KfBQo19iC/+Ngcw==} - dev: false /steno/0.4.4: resolution: {integrity: sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=} @@ -29110,7 +28657,6 @@ packages: dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 - dev: true /string-width/2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} @@ -29143,7 +28689,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.0.1 - dev: false /string.prototype.matchall/4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} @@ -29258,12 +28803,10 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: false /strip-bom-string/1.0.0: resolution: {integrity: sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=} engines: {node: '>=0.10.0'} - dev: false /strip-bom/2.0.0: resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} @@ -29280,7 +28823,6 @@ packages: /strip-bom/4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} - dev: true /strip-eof/1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} @@ -29309,7 +28851,6 @@ packages: /strip-json-comments/2.0.1: resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} engines: {node: '>=0.10.0'} - dev: false /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -29386,7 +28927,6 @@ packages: browserslist: 4.21.4 postcss: 8.4.18 postcss-selector-parser: 6.0.11 - dev: false /stylelint-config-recommended/7.0.0_stylelint@14.16.0: resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==} @@ -29548,7 +29088,6 @@ packages: /svg-parser/2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - dev: false /svg-tags/1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} @@ -29806,7 +29345,6 @@ packages: serialize-javascript: 6.0.0 terser: 5.14.2 webpack: 5.74.0 - dev: false /terser-webpack-plugin/5.3.6_webpack@5.75.0: resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} @@ -29869,7 +29407,6 @@ packages: '@istanbuljs/schema': 0.1.3 glob: 7.2.0 minimatch: 3.1.2 - dev: true /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -29929,7 +29466,6 @@ packages: /tmpl/1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true /to-arraybuffer/1.0.1: resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} @@ -30086,7 +29622,6 @@ packages: typescript: 4.9.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true /ts-pnp/1.2.0_typescript@4.9.4: resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==} @@ -30173,12 +29708,10 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - dev: true /type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dev: true /type-fest/0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} @@ -30197,7 +29730,6 @@ packages: /type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: true /type-fest/0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} @@ -30300,7 +29832,6 @@ packages: resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /ua-parser-js/0.7.31: resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==} @@ -30389,7 +29920,6 @@ packages: is-plain-obj: 2.1.0 trough: 1.0.5 vfile: 4.2.1 - dev: false /union-value/1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} @@ -30417,7 +29947,6 @@ packages: engines: {node: '>=8'} dependencies: crypto-random-string: 2.0.0 - dev: false /unist-builder/2.0.3: resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} @@ -30593,7 +30122,6 @@ packages: semver: 7.3.8 semver-diff: 3.1.1 xdg-basedir: 4.0.0 - dev: false /update-ts-references/2.4.1_typescript@4.9.4: resolution: {integrity: sha512-t5o/ijSiFhm67hmVN0m+lOkUopV3MYYZE/lhd3bYaGTCkU+3TpnfRxP/OoxRdapzPOuZaxVBmMwjtW1lN8WoqA==} @@ -30669,7 +30197,6 @@ packages: mime-types: 2.1.31 schema-utils: 3.1.1 webpack: 5.74.0 - dev: false /url-loader/4.1.1_webpack@5.75.0: resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} @@ -30885,7 +30412,6 @@ packages: /v8-compile-cache-lib/3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} @@ -30898,7 +30424,6 @@ packages: '@jridgewell/trace-mapping': 0.3.15 '@types/istanbul-lib-coverage': 2.0.3 convert-source-map: 1.8.0 - dev: true /v8flags/3.2.0: resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} @@ -31012,13 +30537,11 @@ packages: rxjs: 7.5.4 transitivePeerDependencies: - debug - dev: false /walker/1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 - dev: true /watchpack-chokidar2/2.0.1: resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} @@ -31123,7 +30646,6 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false /webpack-bundle-analyzer/4.7.0: resolution: {integrity: sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==} @@ -31295,7 +30817,6 @@ packages: range-parser: 1.2.1 schema-utils: 4.0.0 webpack: 5.74.0_esbuild@0.14.10 - dev: false /webpack-dev-server/3.11.3_78c1cd1c404fc7ed0a3af68b1f6f4aa1: resolution: {integrity: sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==} @@ -31444,7 +30965,6 @@ packages: - debug - supports-color - utf-8-validate - dev: false /webpack-filter-warnings-plugin/1.2.1_webpack@4.46.0: resolution: {integrity: sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==} @@ -31641,7 +31161,6 @@ packages: - '@swc/core' - esbuild - uglify-js - dev: false /webpack/5.74.0_esbuild@0.14.10: resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} @@ -31774,7 +31293,6 @@ packages: pretty-time: 1.1.0 std-env: 3.0.1 webpack: 5.74.0_esbuild@0.14.10 - dev: false /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} @@ -31880,7 +31398,6 @@ packages: engines: {node: '>=12'} dependencies: string-width: 5.1.2 - dev: false /wildcard/2.0.0: resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} @@ -31888,7 +31405,6 @@ packages: /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} - dev: true /wordwrap/1.0.0: resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} @@ -31936,7 +31452,6 @@ packages: ansi-styles: 6.1.0 string-width: 5.1.2 strip-ansi: 7.0.1 - dev: false /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -31955,7 +31470,6 @@ packages: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 - dev: true /ws/6.2.1: resolution: {integrity: sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==} @@ -32006,7 +31520,6 @@ packages: optional: true utf-8-validate: optional: true - dev: false /x-default-browser/0.4.0: resolution: {integrity: sha512-7LKo7RtWfoFN/rHx1UELv/2zHGMx8MkZKDq1xENmOCTkfIqZJ0zZ26NEJX8czhnPXVcqS0ARjjfJB+eJ0/5Cvw==} @@ -32018,7 +31531,6 @@ packages: /xdg-basedir/4.0.0: resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} engines: {node: '>=8'} - dev: false /xml-js/1.6.11: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} @@ -32050,7 +31562,6 @@ packages: /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - dev: true /yallist/2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -32097,7 +31608,6 @@ packages: /yargs-parser/21.0.0: resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==} engines: {node: '>=12'} - dev: true /yargs/13.3.2: resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} @@ -32154,7 +31664,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.0.0 - dev: true /yarn/1.22.19: resolution: {integrity: sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==} @@ -32173,7 +31682,6 @@ packages: /yn/3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - dev: true /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}