diff --git a/packages/exception/.dependency-cruiser.mjs b/packages/exception/.dependency-cruiser.mjs deleted file mode 100644 index 971c45328..000000000 --- a/packages/exception/.dependency-cruiser.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import { createConfig } from '@voiceflow/dependency-cruiser-config'; - -export default createConfig(); diff --git a/packages/exception/CHANGELOG.md b/packages/exception/CHANGELOG.md deleted file mode 100644 index 53b8addc0..000000000 --- a/packages/exception/CHANGELOG.md +++ /dev/null @@ -1,72 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [1.6.1](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.6.0...@voiceflow/exception@1.6.1) (2024-05-22) - -### Bug Fixes - -* attempt to fix unit tests ([#525](https://github.com/voiceflow/libs/issues/525)) ([b0c1aba](https://github.com/voiceflow/libs/commit/b0c1aba3265dc8427b5a97877a4c9bac9fb82d43)) - -# [1.6.0](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.5.4...@voiceflow/exception@1.6.0) (2024-04-24) - -### Features - -* update toolchain to latest ([#519](https://github.com/voiceflow/libs/issues/519)) ([232b6cf](https://github.com/voiceflow/libs/commit/232b6cfcc65955760950de753f37c8b4f7e0ae62)) - -## [1.5.4](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.5.3...@voiceflow/exception@1.5.4) (2024-02-12) - -**Note:** Version bump only for package @voiceflow/exception - -## [1.5.3](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.5.2...@voiceflow/exception@1.5.3) (2024-01-05) - -### Bug Fixes - -* working ESM build (DX-903) ([#492](https://github.com/voiceflow/libs/issues/492)) ([ab7c8b4](https://github.com/voiceflow/libs/commit/ab7c8b407344c77ac3716921360e27eedcfb8d04)) - -## [1.5.2](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.5.1...@voiceflow/exception@1.5.2) (2024-01-04) - -**Note:** Version bump only for package @voiceflow/exception - -## [1.5.1](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.5.0...@voiceflow/exception@1.5.1) (2024-01-02) - -### Bug Fixes - -* clone response in exception (DX-000) ([#488](https://github.com/voiceflow/libs/issues/488)) ([8d06ec4](https://github.com/voiceflow/libs/commit/8d06ec4e44d4e7f92969510653e9fe8e58e35ac8)) - -# [1.5.0](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.4.0...@voiceflow/exception@1.5.0) (2023-10-12) - -### Features - -* adding serialized check (CV3-289) ([#461](https://github.com/voiceflow/libs/issues/461)) ([0ba0d95](https://github.com/voiceflow/libs/commit/0ba0d958e62deac303a8ef99179acfe899be28d3)) - -# [1.4.0](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.3.0...@voiceflow/exception@1.4.0) (2022-12-14) - -### Features - -* add error details type guard (PL-000) ([#401](https://github.com/voiceflow/libs/issues/401)) ([0205d99](https://github.com/voiceflow/libs/commit/0205d9910b6c14d8b48464280d38320258b26591)) - -# [1.3.0](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.2.0...@voiceflow/exception@1.3.0) (2022-12-01) - -### Features - -* add integration errors (PL-304) ([#394](https://github.com/voiceflow/libs/issues/394)) ([d3258e9](https://github.com/voiceflow/libs/commit/d3258e9a048c4dcb024fce716adfd0e8d17adf04)) - -# [1.2.0](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.1.1...@voiceflow/exception@1.2.0) (2022-11-28) - -### Features - -* fetch exception utilities (DX-165) ([#386](https://github.com/voiceflow/libs/issues/386)) ([5fdc89a](https://github.com/voiceflow/libs/commit/5fdc89a03ec21207ed96b30ffc6c00e1ddcae863)) - -## [1.1.1](https://github.com/voiceflow/libs/compare/@voiceflow/exception@1.1.0...@voiceflow/exception@1.1.1) (2022-11-09) - -### Bug Fixes - -* release exception with built assets (vf-000) ([#387](https://github.com/voiceflow/libs/issues/387)) ([e8b8f59](https://github.com/voiceflow/libs/commit/e8b8f59491134f4159962dbe64843cc0b3777346)) - -# 1.1.0 (2022-11-09) - -### Features - -* standard exception library (DX-165) ([#381](https://github.com/voiceflow/libs/issues/381)) ([0c8271a](https://github.com/voiceflow/libs/commit/0c8271aa2267017830f3f03ee2d29340471c41f8)), closes [voiceflow/platform#261](https://github.com/voiceflow/platform/issues/261) diff --git a/packages/exception/README.md b/packages/exception/README.md deleted file mode 100644 index baccc3eff..000000000 --- a/packages/exception/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# exception - -Voiceflow standard exceptions and error codes - -![image](https://user-images.githubusercontent.com/3784470/200739313-495941eb-dab0-4801-87ae-182f1c43ff9e.png) - -## Install - -```sh -yarn add @voiceflow/exception -``` - -## Usage - -### HTTP Exceptions - -These exceptions are meant to be caught and transformed by express middleware or NestJS error filters. -Named exceptions exist for all standard HTTP 4xx and 5xx error codes. - -```ts -import { - ErrorCode, - BadRequestException, - NotFoundException, - InternalServerErrorException, - BadGatewayException, -} from '@voiceflow/exception'; - -// default error message -throw new BadRequestException(); - -// custom error message -throw new NotFoundException('implementation broken'); - -// internal error code -throw new BadGatewayException({ message: 'request timed out', errorCode: ErrorCode.THIRD_PARTY_TIMEOUT }); - -try { - // do something -} catch (err) { - // wrap internal error - throw new InternalServerErrorException({ message: 'implementation error', cause: err }); -} -``` - -### Internal Exceptions - -These exceptions can be used within business logic but should caught and wrapped or handled before being returned from a service. - -```ts -import { InternalException } from '@voiceflow/exception'; - -throw new InternalException('some internal error'); -``` diff --git a/packages/exception/package.json b/packages/exception/package.json deleted file mode 100644 index f62440a97..000000000 --- a/packages/exception/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@voiceflow/exception", - "version": "1.6.1", - "description": "Voiceflow standard exceptions and error codes", - "keywords": [ - "voiceflow" - ], - "homepage": "https://github.com/voiceflow/libs#readme", - "bugs": { - "url": "https://github.com/voiceflow/libs/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/voiceflow/libs.git" - }, - "license": "ISC", - "author": "Voiceflow", - "main": "build/cjs/main.js", - "module": "build/esm/main.js", - "types": "build/cjs/main.d.ts", - "files": [ - "build" - ], - "scripts": { - "build": "yarn g:turbo run build:cmd --filter=@voiceflow/exception...", - "build:cjs": "yarn g:build:pkg cjs", - "build:cmd": "yarn g:run-p build:cjs build:esm", - "build:esm": "yarn g:build:pkg esm", - "clean": "yarn g:rimraf build", - "lint": "yarn g:run-p -c lint:eslint lint:prettier", - "lint:eslint": "yarn g:eslint", - "lint:fix": "yarn g:run-p -c \"lint:eslint --fix\" \"lint:prettier --write\"", - "lint:prettier": "yarn g:prettier --check", - "test": "yarn g:run-p -c test:dependencies test:types", - "test:dependencies": "yarn g:depcruise", - "test:types": "yarn g:tsc --noEmit", - "test:unit": "" - }, - "volta": { - "extends": "../../package.json" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/exception/sonar-project.properties b/packages/exception/sonar-project.properties deleted file mode 100644 index 1f7ec6697..000000000 --- a/packages/exception/sonar-project.properties +++ /dev/null @@ -1,3 +0,0 @@ -sonar.projectName=libs-exception -sonar.sources=src/ -sonar.typescript.tsconfigPath=tsconfig.json diff --git a/packages/exception/src/base-error.interface.ts b/packages/exception/src/base-error.interface.ts deleted file mode 100644 index c7d43d4ab..000000000 --- a/packages/exception/src/base-error.interface.ts +++ /dev/null @@ -1,18 +0,0 @@ -import type { ErrorCode } from './error-code.enum'; - -export interface BaseError { - /** - * message describing this error - */ - message: string; - - /** - * additional details attached to the error - */ - details?: unknown; - - /** - * platform-internal error code - */ - errorCode?: ErrorCode; -} diff --git a/packages/exception/src/base-response.interface.ts b/packages/exception/src/base-response.interface.ts deleted file mode 100644 index 22966b35f..000000000 --- a/packages/exception/src/base-response.interface.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface BaseResponse { - status: number; - statusText: string; - clone: () => this; - text: () => Promise; -} diff --git a/packages/exception/src/client.exception.ts b/packages/exception/src/client.exception.ts deleted file mode 100644 index 29a37a5af..000000000 --- a/packages/exception/src/client.exception.ts +++ /dev/null @@ -1,60 +0,0 @@ -import type { BaseResponse } from './base-response.interface'; -import type { ErrorCode } from './error-code.enum'; -import type { ErrorPayload } from './error-payload.interface'; - -export class ClientException extends Error implements ErrorPayload { - public static instanceOf(err: any): err is ClientException { - return err instanceof ClientException; - } - - public response: Res; - - public statusCode: number; - - public statusText: string; - - public errorCode?: ErrorCode; - - public cause?: string; - - public details?: unknown; - - constructor(response: Res) { - super(); - this.name = this.constructor.name; - this.response = response.clone(); - this.statusCode = response.status; - this.statusText = response.statusText; - } - - private extractDetailedError(body: Partial) { - this.message = body.message || this.response.statusText; - if (body.cause) this.cause = body.cause; - if (body.details) this.details = body.details; - if (body.errorCode) this.errorCode = body.errorCode; - } - - private extractOpaqueError(text: string) { - this.message = text || this.response.statusText; - } - - public getCause() { - return this.cause; - } - - public async build() { - const text = await this.response.clone().text(); - - try { - this.extractDetailedError(JSON.parse(text)); - } catch { - this.extractOpaqueError(text); - } - - return this; - } - - public is
(code: ErrorCode): this is { details: Details } { - return this.errorCode === code; - } -} diff --git a/packages/exception/src/error-code.enum.ts b/packages/exception/src/error-code.enum.ts deleted file mode 100644 index 40f2ca0eb..000000000 --- a/packages/exception/src/error-code.enum.ts +++ /dev/null @@ -1,7 +0,0 @@ -export enum ErrorCode { - INTEGRATION_INVALID_CREDENTIALS = 'INTEGRATION_INVALID_CREDENTIALS', - INTEGRATION_RESOURCE_NOT_FOUND = 'INTEGRATION_RESOURCE_NOT_FOUND', - - BILLING_QUOTA_EXCEEDED = 'BILLING_QUOTA_EXCEEDED', - BILLING_PLAN_NOT_ALLOWED = 'BILLING_PLAN_NOT_ALLOWED', -} diff --git a/packages/exception/src/error-message.interface.ts b/packages/exception/src/error-message.interface.ts deleted file mode 100644 index 5e0f652a3..000000000 --- a/packages/exception/src/error-message.interface.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { BaseError } from './base-error.interface'; - -export interface DetailedErrorMessage extends BaseError { - cause?: unknown; -} - -export type ErrorMessage = string | Error | DetailedErrorMessage; diff --git a/packages/exception/src/error-payload.interface.ts b/packages/exception/src/error-payload.interface.ts deleted file mode 100644 index 992d7c133..000000000 --- a/packages/exception/src/error-payload.interface.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { BaseError } from './base-error.interface'; - -export interface ErrorPayload extends BaseError { - /** - * standard HTTP status code - */ - statusCode: number; - /** - * textual representation of HTTP status code - */ - statusText: string; - /** - * message from the internal error that caused the error response - */ - cause?: string; -} diff --git a/packages/exception/src/http/http-4xx.exception.ts b/packages/exception/src/http/http-4xx.exception.ts deleted file mode 100644 index a243fe0e0..000000000 --- a/packages/exception/src/http/http-4xx.exception.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { HTTPStatus } from './http-status.enum'; -import { createHTTPException } from './utils'; - -export const BadRequestException = createHTTPException(HTTPStatus.BAD_REQUEST, 'Bad Request'); -export const UnauthorizedException = createHTTPException(HTTPStatus.UNAUTHORIZED, 'Unauthorized'); -export const PaymentRequiredException = createHTTPException(HTTPStatus.PAYMENT_REQUIRED, 'Payment Required'); -export const ForbiddenException = createHTTPException(HTTPStatus.FORBIDDEN, 'Forbidden'); -export const NotFoundException = createHTTPException(HTTPStatus.NOT_FOUND, 'Not Found'); -export const MethodNotAllowedException = createHTTPException(HTTPStatus.METHOD_NOT_ALLOWED, 'Method Not Allowed'); -export const NotAcceptableException = createHTTPException(HTTPStatus.NOT_ACCEPTABLE, 'Not Acceptable'); -export const ProxyAuthenticationRequiredException = createHTTPException( - HTTPStatus.PROXY_AUTHENTICATION_REQUIRED, - 'Proxy Authentication Required' -); -export const RequestTimeoutException = createHTTPException(HTTPStatus.REQUEST_TIMEOUT, 'Request Timeout'); -export const ConflictException = createHTTPException(HTTPStatus.CONFLICT, 'Conflict'); -export const GoneException = createHTTPException(HTTPStatus.GONE, 'Gone'); -export const LengthRequiredException = createHTTPException(HTTPStatus.LENGTH_REQUIRED, 'Length Required'); -export const PreconditionFailedException = createHTTPException(HTTPStatus.PRECONDITION_FAILED, 'Precondition Failed'); -export const PayloadTooLargeException = createHTTPException(HTTPStatus.PAYLOAD_TOO_LARGE, 'Payload Too Large'); -export const URITooLongException = createHTTPException(HTTPStatus.URI_TOO_LONG, 'URI Too Long'); -export const UnsupportedMediaTypeException = createHTTPException( - HTTPStatus.UNSUPPORTED_MEDIA_TYPE, - 'Unsupported Media Type' -); -export const RangeNotSatisfiableException = createHTTPException( - HTTPStatus.RANGE_NOT_SATISFIABLE, - 'Range Not Satisfiable' -); -export const ExpectationFailedException = createHTTPException(HTTPStatus.EXPECTATION_FAILED, 'Expectation Failed'); -export const ImATeapotException = createHTTPException(HTTPStatus.I_AM_A_TEAPOT, "I'm a teapot"); -export const MisdirectedRequestException = createHTTPException(HTTPStatus.MISDIRECTED_REQUEST, 'Misdirected Request'); -export const UnprocessableEntityException = createHTTPException( - HTTPStatus.UNPROCESSABLE_ENTITY, - 'Unprocessable Entity' -); -export const LockedException = createHTTPException(HTTPStatus.LOCKED, 'Locked'); -export const FailedDependencyException = createHTTPException(HTTPStatus.FAILED_DEPENDENCY, 'Failed Dependency'); -export const TooEarlyException = createHTTPException(HTTPStatus.TOO_EARLY, 'Too Early'); -export const UpgradeRequiredException = createHTTPException(HTTPStatus.UPGRADE_REQUIRED, 'Upgrade Required'); -export const PreconditionRequiredException = createHTTPException( - HTTPStatus.PRECONDITION_REQUIRED, - 'Precondition Required' -); -export const TooManyRequestsException = createHTTPException(HTTPStatus.TOO_MANY_REQUESTS, 'Too Many Requests'); -export const RequestHeaderFieldsTooLargeException = createHTTPException( - HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE, - 'Request Header Fields Too Large' -); -export const UnavailableForLegalReasonsException = createHTTPException( - HTTPStatus.UNAVAILABLE_FOR_LEGAL_REASONS, - 'Unavailable For Legal Reasons' -); diff --git a/packages/exception/src/http/http-5xx.exception.ts b/packages/exception/src/http/http-5xx.exception.ts deleted file mode 100644 index 7c8b3db42..000000000 --- a/packages/exception/src/http/http-5xx.exception.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { HTTPStatus } from './http-status.enum'; -import { createHTTPException } from './utils'; - -export const InternalServerErrorException = createHTTPException( - HTTPStatus.INTERNAL_SERVER_ERROR, - 'Internal Server Error' -); -export const NotImplementedException = createHTTPException(HTTPStatus.NOT_IMPLEMENTED, 'Not Implemented'); -export const BadGatewayException = createHTTPException(HTTPStatus.BAD_GATEWAY, 'Bad Gateway'); -export const ServiceUnavailableException = createHTTPException(HTTPStatus.SERVICE_UNAVAILABLE, 'Service Unavailable'); -export const GatewayTimeoutException = createHTTPException(HTTPStatus.GATEWAY_TIMEOUT, 'Gateway Timeout'); -export const HTTPVersionNotSupportedException = createHTTPException( - HTTPStatus.HTTP_VERSION_NOT_SUPPORTED, - 'HTTP Version Not Supported' -); -export const VariantAlsoNegotiatesException = createHTTPException( - HTTPStatus.VARIANT_ALSO_NEGOTIATES, - 'Variant Also Negotiates' -); -export const InsufficientStorageException = createHTTPException( - HTTPStatus.INSUFFICIENT_STORAGE, - 'Insufficient Storage' -); -export const LoopDetectedException = createHTTPException(HTTPStatus.LOOP_DETECTED, 'Loop Detected'); -export const NotExtendedException = createHTTPException(HTTPStatus.NOT_EXTENDED, 'Not Extended'); -export const NetworkAuthenticationRequiredException = createHTTPException( - HTTPStatus.NETWORK_AUTHENTICATION_REQUIRED, - 'Network Authentication Required' -); diff --git a/packages/exception/src/http/http-status.enum.ts b/packages/exception/src/http/http-status.enum.ts deleted file mode 100644 index 49d5962dd..000000000 --- a/packages/exception/src/http/http-status.enum.ts +++ /dev/null @@ -1,45 +0,0 @@ -export enum HTTPStatus { - /* 4xx */ - BAD_REQUEST = 400, - UNAUTHORIZED = 401, - PAYMENT_REQUIRED = 402, - FORBIDDEN = 403, - NOT_FOUND = 404, - METHOD_NOT_ALLOWED = 405, - NOT_ACCEPTABLE = 406, - PROXY_AUTHENTICATION_REQUIRED = 407, - REQUEST_TIMEOUT = 408, - CONFLICT = 409, - GONE = 410, - LENGTH_REQUIRED = 411, - PRECONDITION_FAILED = 412, - PAYLOAD_TOO_LARGE = 413, - URI_TOO_LONG = 414, - UNSUPPORTED_MEDIA_TYPE = 415, - RANGE_NOT_SATISFIABLE = 416, - EXPECTATION_FAILED = 417, - I_AM_A_TEAPOT = 418, - MISDIRECTED_REQUEST = 421, - UNPROCESSABLE_ENTITY = 422, - LOCKED = 423, - FAILED_DEPENDENCY = 424, - TOO_EARLY = 425, - UPGRADE_REQUIRED = 426, - PRECONDITION_REQUIRED = 428, - TOO_MANY_REQUESTS = 429, - REQUEST_HEADER_FIELDS_TOO_LARGE = 431, - UNAVAILABLE_FOR_LEGAL_REASONS = 451, - - /* 5xx */ - INTERNAL_SERVER_ERROR = 500, - NOT_IMPLEMENTED = 501, - BAD_GATEWAY = 502, - SERVICE_UNAVAILABLE = 503, - GATEWAY_TIMEOUT = 504, - HTTP_VERSION_NOT_SUPPORTED = 505, - VARIANT_ALSO_NEGOTIATES = 506, - INSUFFICIENT_STORAGE = 507, - LOOP_DETECTED = 508, - NOT_EXTENDED = 510, - NETWORK_AUTHENTICATION_REQUIRED = 511, -} diff --git a/packages/exception/src/http/http.exception.ts b/packages/exception/src/http/http.exception.ts deleted file mode 100644 index 87cea0465..000000000 --- a/packages/exception/src/http/http.exception.ts +++ /dev/null @@ -1,56 +0,0 @@ -import type { ErrorMessage } from '@exception/error-message.interface'; -import type { ErrorPayload } from '@exception/error-payload.interface'; -import { InternalException } from '@exception/internal.exception'; - -export interface SerializedHTTPException { - message: string; - statusCode: number; - statusText: string; -} - -export class HTTPException extends InternalException implements SerializedHTTPException { - public static instanceOf(err: any): err is HTTPException { - return err instanceof HTTPException; - } - - private static hasRequiredProperties(err: unknown): err is Record { - return typeof err === 'object' && err !== null && 'statusText' in err && 'message' in err && 'statusCode' in err; - } - - public static isSerializedInstance(err: unknown): err is SerializedHTTPException { - return ( - HTTPException.hasRequiredProperties(err) && - typeof err.statusText === 'string' && - typeof err.message === 'string' && - typeof err.statusCode === 'number' - ); - } - - public statusCode: number; - - public statusText: string; - - public response: ErrorPayload; - - constructor(statusCode: number, statusText: string, msg: ErrorMessage = statusText) { - super(msg); - this.message ||= statusText; - this.statusCode = statusCode; - this.statusText = statusText; - this.response = this.createResponse(); - } - - public createResponse(): ErrorPayload { - const cause = this.getCause(); - - return { - message: this.message, - statusCode: this.statusCode, - statusText: this.statusText, - - ...(this.details ? { details: this.details } : {}), - ...(this.errorCode ? { errorCode: this.errorCode } : {}), - ...(cause ? { cause } : {}), - }; - } -} diff --git a/packages/exception/src/http/utils.ts b/packages/exception/src/http/utils.ts deleted file mode 100644 index d79247e85..000000000 --- a/packages/exception/src/http/utils.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { ErrorMessage } from '@exception/error-message.interface'; - -import { HTTPException } from './http.exception'; -import type { HTTPStatus } from './http-status.enum'; - -const WHITESPACE_PATTERN = /\s+/g; - -export interface HTTPExceptionClass { - new (message?: ErrorMessage): HTTPException; -} - -export const createHTTPException = (statusCode: HTTPStatus, statusText: string): HTTPExceptionClass => { - class NamedHTTPException extends HTTPException { - constructor(message?: ErrorMessage) { - super(statusCode, statusText, message); - } - } - - Object.defineProperty(NamedHTTPException, 'name', { - value: `${statusText.replace(WHITESPACE_PATTERN, '')}Exception`, - }); - - return NamedHTTPException; -}; diff --git a/packages/exception/src/internal.exception.ts b/packages/exception/src/internal.exception.ts deleted file mode 100644 index f0c429328..000000000 --- a/packages/exception/src/internal.exception.ts +++ /dev/null @@ -1,88 +0,0 @@ -import type { BaseError } from './base-error.interface'; -import { ClientException } from './client.exception'; -import type { ErrorCode } from './error-code.enum'; -import type { ErrorMessage } from './error-message.interface'; - -type UndefinedPartial = { - [K in keyof T]?: T[K] | undefined; -}; - -const isObject = (value: unknown): value is object => !!value && typeof value === 'object'; -const hasProperty = (obj: object, key: string): obj is Record => - Object.prototype.hasOwnProperty.call(obj, key); -const isErrorLike = (error: unknown): error is { message: string } => - isObject(error) && hasProperty(error, 'message') && typeof error.message === 'string'; - -export class InternalException extends Error implements BaseError { - public static instanceOf(err: any): err is InternalException { - return err instanceof InternalException; - } - - public static extractData(msg?: ErrorMessage): InternalException.ErrorData { - let message; - let errorCode; - let details; - let cause; - - if (typeof msg === 'string') { - message = msg; - } else if (msg instanceof Error) { - cause = msg; - if (InternalException.instanceOf(msg) || ClientException.instanceOf(msg)) { - details = msg.details; - errorCode = msg.errorCode; - } - } else if (msg && typeof msg === 'object') { - message = msg.message; - details = msg.details; - errorCode = msg.errorCode; - if (msg.cause instanceof Error || typeof msg.cause === 'string') { - cause = msg.cause; - } else if (isErrorLike(msg.cause)) { - cause = msg.cause.message; - } - } - - return { - message, - details, - errorCode, - cause, - }; - } - - public name: string; - - public cause?: string | Error; - - public errorCode?: ErrorCode; - - public details?: unknown; - - constructor(msg?: ErrorMessage) { - const data = InternalException.extractData(msg); - - super(data.message); - this.name = this.constructor.name; - if (data.details) this.details = data.details; - if (data.errorCode) this.errorCode = data.errorCode; - if (data.cause) this.cause = data.cause; - } - - public getCause() { - if (typeof this.cause === 'string') return this.cause; - if (this.cause instanceof Error) return this.cause.message; - return undefined; - } - - public is
(code: ErrorCode): this is { details: Details } { - return this.errorCode === code; - } -} - -// eslint-disable-next-line @typescript-eslint/no-namespace -export namespace InternalException { - export interface ErrorData extends UndefinedPartial { - cause?: string | Error | undefined; - } -} diff --git a/packages/exception/src/main.ts b/packages/exception/src/main.ts deleted file mode 100644 index 1422d62d5..000000000 --- a/packages/exception/src/main.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from './base-error.interface'; -export * from './base-response.interface'; -export * from './client.exception'; -export * from './error-code.enum'; -export * from './error-message.interface'; -export * from './error-payload.interface'; -export * from './http/http.exception'; -export * from './http/http-4xx.exception'; -export * from './http/http-5xx.exception'; -export * from './http/http-status.enum'; -export * from './internal.exception'; diff --git a/packages/exception/tsconfig.build.cjs.json b/packages/exception/tsconfig.build.cjs.json deleted file mode 100644 index 33c650780..000000000 --- a/packages/exception/tsconfig.build.cjs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "commonjs", - "outDir": "build/cjs" - } -} diff --git a/packages/exception/tsconfig.build.esm.json b/packages/exception/tsconfig.build.esm.json deleted file mode 100644 index fdf7a795c..000000000 --- a/packages/exception/tsconfig.build.esm.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "esnext", - "outDir": "build/esm" - }, - "tsc-alias": { - "resolveFullPaths": true - } -} diff --git a/packages/exception/tsconfig.build.json b/packages/exception/tsconfig.build.json deleted file mode 100644 index b90fc83e0..000000000 --- a/packages/exception/tsconfig.build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["src"] -} diff --git a/packages/exception/tsconfig.json b/packages/exception/tsconfig.json deleted file mode 100644 index 194ee2311..000000000 --- a/packages/exception/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@voiceflow/tsconfig", - "compilerOptions": { - "lib": ["es2019", "dom"], - "baseUrl": ".", - "outDir": "build/cjs", - "paths": { - "@exception/*": ["src/*"] - } - }, - "exclude": ["node_modules", "build"] -} diff --git a/packages/fetch/.dependency-cruiser.mjs b/packages/fetch/.dependency-cruiser.mjs deleted file mode 100644 index 971c45328..000000000 --- a/packages/fetch/.dependency-cruiser.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import { createConfig } from '@voiceflow/dependency-cruiser-config'; - -export default createConfig(); diff --git a/packages/fetch/CHANGELOG.md b/packages/fetch/CHANGELOG.md deleted file mode 100644 index 489965161..000000000 --- a/packages/fetch/CHANGELOG.md +++ /dev/null @@ -1,76 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -# [1.7.0](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.6.1...@voiceflow/fetch@1.7.0) (2024-09-20) - -### Features - -* expose node-specific fetch/undici export (DX-2425) ([#540](https://github.com/voiceflow/libs/issues/540)) ([9ee9583](https://github.com/voiceflow/libs/commit/9ee95831ef5b1b446391cef878d7ccee8eb6c08f)) - -## [1.6.1](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.6.0...@voiceflow/fetch@1.6.1) (2024-05-22) - -**Note:** Version bump only for package @voiceflow/fetch - -# [1.6.0](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.5.5...@voiceflow/fetch@1.6.0) (2024-04-24) - -### Features - -* update toolchain to latest ([#519](https://github.com/voiceflow/libs/issues/519)) ([232b6cf](https://github.com/voiceflow/libs/commit/232b6cfcc65955760950de753f37c8b4f7e0ae62)) - -## [1.5.5](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.5.4...@voiceflow/fetch@1.5.5) (2024-02-12) - -**Note:** Version bump only for package @voiceflow/fetch - -## [1.5.4](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.5.3...@voiceflow/fetch@1.5.4) (2024-01-05) - -### Bug Fixes - -* working ESM build (DX-903) ([#492](https://github.com/voiceflow/libs/issues/492)) ([ab7c8b4](https://github.com/voiceflow/libs/commit/ab7c8b407344c77ac3716921360e27eedcfb8d04)) - -## [1.5.3](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.5.2...@voiceflow/fetch@1.5.3) (2024-01-04) - -**Note:** Version bump only for package @voiceflow/fetch - -## [1.5.2](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.5.1...@voiceflow/fetch@1.5.2) (2023-05-11) - -### Bug Fixes - -* correctly handle FetchClient construction case (DX-000) ([#435](https://github.com/voiceflow/libs/issues/435)) ([44603b8](https://github.com/voiceflow/libs/commit/44603b83e550efdca9fde775bc283f4b5c173fb4)) - -## [1.5.1](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.5.0...@voiceflow/fetch@1.5.1) (2023-05-03) - -### Bug Fixes - -* uppercase method names to fix unidici PATCH requests (DX-000) ([#433](https://github.com/voiceflow/libs/issues/433)) ([f402f0f](https://github.com/voiceflow/libs/commit/f402f0f34d86e1fa64c22f979fe931d5d4e34e09)) - -# [1.5.0](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.4.0...@voiceflow/fetch@1.5.0) (2022-12-16) - -### Features - -* add global fetch headers (DX-261) ([#403](https://github.com/voiceflow/libs/issues/403)) ([4cf4ee6](https://github.com/voiceflow/libs/commit/4cf4ee62c94c19e6d8b68e936b8f518a6d21f9b6)) - -# [1.4.0](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.3.0...@voiceflow/fetch@1.4.0) (2022-12-14) - -### Features - -* **fetch:** support url search params (PL-000) ([#399](https://github.com/voiceflow/libs/issues/399)) ([c79caa3](https://github.com/voiceflow/libs/commit/c79caa38e8e5216aa0d9d5a7d5638434a8955027)) - -# [1.3.0](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.2.0...@voiceflow/fetch@1.3.0) (2022-12-01) - -### Features - -* add Map support for headers in fetch request options (vf-000) ([#395](https://github.com/voiceflow/libs/issues/395)) ([b7f9b31](https://github.com/voiceflow/libs/commit/b7f9b319170bee42642a56f02b091d463d959343)) - -# [1.2.0](https://github.com/voiceflow/libs/compare/@voiceflow/fetch@1.1.0...@voiceflow/fetch@1.2.0) (2022-11-28) - -### Features - -* add baseURL option (DX-245) ([#391](https://github.com/voiceflow/libs/issues/391)) ([04950e7](https://github.com/voiceflow/libs/commit/04950e7af88cac80925a4b13c1390f9cbbd2bb97)) - -# 1.1.0 (2022-11-28) - -### Features - -* fetch exception utilities (DX-165) ([#386](https://github.com/voiceflow/libs/issues/386)) ([5fdc89a](https://github.com/voiceflow/libs/commit/5fdc89a03ec21207ed96b30ffc6c00e1ddcae863)) diff --git a/packages/fetch/README.md b/packages/fetch/README.md deleted file mode 100644 index aca6160ff..000000000 --- a/packages/fetch/README.md +++ /dev/null @@ -1,169 +0,0 @@ -# fetch - -Voiceflow fetch wrapper and error handling for SDKs - -## Installation - -```sh -yarn add --exact @voiceflow/fetch @voiceflow/exception - -# if using for Node.JS -yarn add --exact undici -``` - -## Usage - -This is a universal library and can be used in the browser or in a Node.JS environment by passing a `fetch` implementation. - -### Browser Usage - -```ts -import { FetchClient } from '@voiceflow/fetch'; - -const fetch = new FetchClient({ - /* config */ -}); -``` - -### Node Usage - -```ts -import { FetchClient } from '@voiceflow/fetch'; -import * as undici from 'undici'; - -const fetch = new FetchClient(undici.fetch, { - /* config */ -}); -``` - -## Configuration - -- **`baseURL`** (`string`): this will be added as a prefix to the URL of all requests - -## Features - -- [JSON requests](#json-requests) -- [JSON responses](#json-responses) -- [HTTP methods](#http-methods) -- [throws on non-2xx](#throws-on-non-2xx) -- [@voiceflow/exception integration](#voiceflowexception-integration) -- [raw request passthrough](#raw-request-passthrough) - -### JSON Requests - -Use the `json` option to pass a payload that will be serialized with `JSON.stringify`. -This will also automatically add the request header `Content-Type: application/json`. - -```ts -const fetch = new FetchClient(); - -await fetch.put('http://example.com', { - json: { foo: 'bar' }, -}); -``` - -### JSON Responses - -Use the `json()` method attached to the returned promise to resolve a parsed version of the response payload without needing an additional `await`. -You can also specify a type for the parsed result, by default the type will be `unknown`. - -```ts -const fetch = new FetchClient(); - -const result = await fetch.get('http://example.com').json<{ id: number; name: string }>(); -``` - -### HTTP Methods - -Use the appropriate method to set the HTTP method being used in the request. - -```ts -const fetch = new FetchClient(); - -fetch.delete('/foo'); // DELETE /foo -fetch.get('/foo'); // GET /foo -fetch.head('/foo'); // HEAD /foo -fetch.patch('/foo'); // PATCH /foo -fetch.post('/foo'); // POST /foo -fetch.put('/foo'); // PUT /foo -``` - -### Base URL - -Specify a base URL which should be used to build every request. - -```ts -const fetch = new FetchClient({ baseURL: 'http://example.com/' }); - -fetch.get('foo'); // GET http://example.com/foo -``` - -If you make a request using a `URL` instance then the `baseURL` option will be ignored. - -```ts -const fetch = new FetchClient({ baseURL: 'http://example.com/' }); -const url = new URL('http://foo.com/bar'); - -fetch.get(url); // GET http://foo.com/bar -``` - -### Throws on non-2xx - -If any non-`2xx` HTTP status is returned then a `ClientException` from `@voiceflow/exception` is thrown. - -```ts -const fetch = new FetchClient(); - -try { - await fetch.get('http://example.com'); // return 404 -} catch (err) { - err; // ClientException -} -``` - -### `@voiceflow/exception` Integration - -Internal error codes and other error details are automatically extracted from the response payload when a non-`2xx` status is returned. - -```ts -import { ClientException } from '@voiceflow/exception'; - -const fetch = new FetchClient(); - -try { - await fetch.get('http://example.com'); // return 404 -} catch (err) { - if (ClientException.instanceOf(err)) { - err.errorCode; // ErrorCode | undefined - } -} -``` - -### Raw Request Passthrough - -Use the `raw()` method to bypass all of the features above to access the underlying `fetch` interface directly. - -#### Browser Native `fetch` Request - -```ts -const fetch = new FetchClient(); - -const url = new URL('http://example.com'); -const request = new Request(url); - -const response = await fetch.raw(request); // Response -``` - -#### Node.JS Native `undici.fetch` Request - -```ts -import { URL } from 'node:url'; -import * as undici from 'undici'; - -const fetch = new FetchClient(undici.fetch); - -const url = new URL('http://example.com'); -const request = new undici.Request(url); - -const response = await fetch.raw(request); // undici.Response -``` diff --git a/packages/fetch/config/test/setup.ts b/packages/fetch/config/test/setup.ts deleted file mode 100644 index ba40a112e..000000000 --- a/packages/fetch/config/test/setup.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { TextDecoder, TextEncoder } from 'util'; - -Object.assign(global, { TextDecoder, TextEncoder }); diff --git a/packages/fetch/package.json b/packages/fetch/package.json deleted file mode 100644 index aa4123475..000000000 --- a/packages/fetch/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "@voiceflow/fetch", - "version": "1.7.0", - "description": "Voiceflow fetch wrapper and error handling for SDKs", - "keywords": [ - "voiceflow" - ], - "homepage": "https://github.com/voiceflow/libs#readme", - "bugs": { - "url": "https://github.com/voiceflow/libs/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/voiceflow/libs.git" - }, - "license": "ISC", - "author": "Voiceflow", - "exports": { - ".": { - "types": "./build/cjs/main.d.ts", - "import": "./build/esm/main.js", - "default": "./build/cjs/main.js" - }, - "./undici": { - "types": "./build/cjs/main.undici.d.ts", - "import": "./build/esm/main.undici.js", - "default": "./build/cjs/main.undici.js" - } - }, - "main": "build/cjs/main.js", - "types": "build/cjs/main.d.ts", - "typesVersions": { - "*": { - "undici": [ - "./build/cjs/main.undici.d.ts" - ] - } - }, - "files": [ - "build" - ], - "scripts": { - "build": "yarn g:turbo run build:cmd --filter=@voiceflow/fetch...", - "build:cjs": "yarn g:build:pkg cjs", - "build:cmd": "yarn g:run-p build:cjs build:esm", - "build:esm": "yarn g:build:pkg esm", - "clean": "yarn g:rimraf build", - "lint": "yarn g:run-p -c lint:eslint lint:prettier", - "lint:eslint": "yarn g:eslint", - "lint:fix": "yarn g:run-p -c \"lint:eslint --fix\" \"lint:prettier --write\"", - "lint:prettier": "yarn g:prettier --check", - "tdd": "yarn g:vitest", - "test": "yarn g:run-p -c test:dependencies test:types test:unit", - "test:dependencies": "yarn g:depcruise", - "test:types": "yarn g:tsc --noEmit", - "test:unit": "yarn g:vitest run --coverage" - }, - "devDependencies": { - "@voiceflow/exception": "workspace:*", - "fetch-mock": "9.11.0", - "jest-environment-jsdom": "29.7.0", - "jest-fetch-mock": "3.0.3", - "undici": "5.12.0", - "vitest-fetch-mock": "0.2.2" - }, - "peerDependencies": { - "@voiceflow/exception": "workspace:^", - "undici": "^5" - }, - "peerDependenciesMeta": { - "undici": { - "optional": true - } - }, - "volta": { - "extends": "../../package.json" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/fetch/sonar-project.properties b/packages/fetch/sonar-project.properties deleted file mode 100644 index d89341add..000000000 --- a/packages/fetch/sonar-project.properties +++ /dev/null @@ -1,8 +0,0 @@ -sonar.projectName=libs-fetch -sonar.sources=src/ -sonar.tests=src/ -sonar.exclusions=src/**/*.test.ts -sonar.test.inclusions=src/**/*.test.ts -sonar.cpd.exclusions=src/**/*.test.ts -sonar.typescript.tsconfigPath=tsconfig.json -sonar.javascript.lcov.reportPaths=sonar/coverage/lcov.info diff --git a/packages/fetch/src/client-configuration.interface.ts b/packages/fetch/src/client-configuration.interface.ts deleted file mode 100644 index 32cc34006..000000000 --- a/packages/fetch/src/client-configuration.interface.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { RequestHeaders } from './request-options.interface'; - -export interface ClientConfiguration { - baseURL?: string; - headers?: RequestHeaders; -} diff --git a/packages/fetch/src/fetch.client.test.ts b/packages/fetch/src/fetch.client.test.ts deleted file mode 100644 index ac574205f..000000000 --- a/packages/fetch/src/fetch.client.test.ts +++ /dev/null @@ -1,294 +0,0 @@ -import { URL as NodeURL } from 'node:url'; - -import { ClientException } from '@voiceflow/exception'; -import fetchMock from 'fetch-mock'; -import * as undici from 'undici'; -import type { Mock } from 'vitest'; -import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; -import createFetchMock from 'vitest-fetch-mock'; - -import { FetchClient } from './fetch.client'; - -type NodeFetch = (typeof undici)['fetch']; - -const TARGET_URL = 'http://example.com/resource/123'; -const JSON_HEADERS = { 'content-type': 'application/json' }; - -describe('Fetch Client', () => { - let sandbox: fetchMock.FetchMockSandbox; - - beforeEach(() => { - sandbox = fetchMock.sandbox(); - }); - - describe('#raw()', () => { - const url = 'http://example.com'; - const fetch = createFetchMock(vi); - fetch.enableMocks(); - - beforeAll(() => { - fetch.mockImplementation(async () => null as any); - }); - - describe('window.fetch', () => { - let fetchClient: FetchClient; - - beforeEach(() => { - fetchClient = new FetchClient(); - }); - - it('should pass through Request instance and options to window.fetch', async () => { - const request = new Request(new URL(url)); - const options: RequestInit = { cache: 'only-if-cached' }; - - await fetchClient.raw(request, options); - - expect(fetch).toHaveBeenCalledWith(request, options); - }); - - it('should pass through URL instance to window.fetch', async () => { - const request = new URL(url); - - await fetchClient.raw(request); - - expect(fetch).toHaveBeenCalledWith(request); - }); - - it('should pass through string to window.fetch', async () => { - await fetchClient.raw(url); - - expect(fetch).toHaveBeenCalledWith(url); - }); - }); - - describe('undici.fetch', () => { - let fetchSpy: Mock; - let fetchClient: FetchClient; - - beforeEach(() => { - fetchSpy = vi.fn(); - fetchClient = new FetchClient(fetchSpy as NodeFetch); - }); - - it('should pass through Request instance and options to undici.fetch', async () => { - const request = new undici.Request(new NodeURL(url)); - const options: undici.RequestInit = { dispatcher: new undici.Dispatcher() }; - - await fetchClient.raw(request, options); - - expect(fetchSpy).toHaveBeenCalledWith(request, options); - }); - - it('should pass through URL instance to undici.fetch', async () => { - const request = new NodeURL(url); - - await fetchClient.raw(request); - - expect(fetchSpy).toHaveBeenCalledWith(request); - }); - - it('should pass through string to undici.fetch', async () => { - await fetchClient.raw(url); - - expect(fetchSpy).toHaveBeenCalledWith(url); - }); - }); - }); - - describe('#delete()', () => { - it('should send DELETE request', async () => { - const fetch = new FetchClient(sandbox); - sandbox.delete(TARGET_URL, 200); - - await fetch.delete(TARGET_URL); - - expect(sandbox.done()).toBe(true); - }); - }); - - describe('#get()', () => { - it('should support url search params', async () => { - const expectedURL = `${TARGET_URL}?test=encode+this%26`; - const fetch = new FetchClient(sandbox); - sandbox.get(expectedURL, { status: 200 }); - - await fetch.get(TARGET_URL, { - query: { test: 'encode this&' }, - }); - - expect(sandbox.done()).toBe(true); - }); - - it('should send GET request', async () => { - const data = { foo: 'bar' }; - const fetch = new FetchClient(sandbox); - sandbox.get(TARGET_URL, { status: 200, body: data }); - - const result = await fetch.get(TARGET_URL).json(); - - expect(result).toEqual(data); - expect(sandbox.done()).toBe(true); - }); - }); - - describe('#head()', () => { - it('should send HEAD request', async () => { - const fetch = new FetchClient(sandbox); - sandbox.head(TARGET_URL, 200); - - await fetch.head(TARGET_URL); - - expect(sandbox.done()).toBe(true); - }); - }); - - describe('#patch()', () => { - it('should send PATCH request', async () => { - const body = { foo: 'bar' }; - const fetch = new FetchClient(sandbox); - sandbox.patch({ url: TARGET_URL, body, headers: JSON_HEADERS }, 200); - - await fetch.patch(TARGET_URL, { json: body }); - - expect(sandbox.done()).toBe(true); - }); - }); - - describe('#post()', () => { - it('should send POST request', async () => { - const body = { foo: 'bar' }; - const data = { fizz: 'buzz' }; - const fetch = new FetchClient(sandbox); - sandbox.post({ url: TARGET_URL, body, headers: JSON_HEADERS }, { status: 200, body: data }); - - const result = await fetch.post(TARGET_URL, { json: body }).json(); - - expect(result).toEqual(data); - expect(sandbox.done()).toBe(true); - }); - }); - - describe('#put()', () => { - it('should send PUT request', async () => { - const body = { foo: 'bar' }; - const fetch = new FetchClient(sandbox); - sandbox.put({ url: TARGET_URL, body, headers: JSON_HEADERS }, 200); - - await fetch.put(TARGET_URL, { json: body }); - - expect(sandbox.done()).toBe(true); - }); - }); - - describe('#config.baseURL', () => { - it('should prefix request URL with provided baseURL option', async () => { - const baseURL = 'http://example.com'; - const path = 'foo/bar'; - const fetch = new FetchClient(sandbox, { baseURL }); - sandbox.get(`${baseURL}/${path}`, 200); - - await fetch.get(path); - - expect(sandbox.done()).toBe(true); - }); - - it('should not prefix request using URL instance', async () => { - const url = new NodeURL(TARGET_URL); - const fetchSpy = vi.fn().mockResolvedValue(new undici.Response()); - const fetchClient = new FetchClient(fetchSpy, { baseURL: 'http://foo.com/' }); - - await fetchClient.get(url); - - expect(fetchSpy).toHaveBeenCalledWith(url, { method: 'GET', headers: {}, body: undefined }); - }); - }); - - describe('#config.headers', () => { - const baseURL = 'http://example.com'; - const path = 'foo/bar'; - - it('should join global headers with request headers', async () => { - const globalHeaders = { foo: 'one', bar: 'two' }; - const headers = { bar: 'three', fizz: 'four' }; - const fetch = new FetchClient(sandbox, { baseURL, headers: globalHeaders }); - sandbox.get({ url: `${baseURL}/${path}`, headers: { ...globalHeaders, ...headers } }, 200); - - await fetch.get(path, { headers }); - - expect(sandbox.done()).toBe(true); - }); - - it('should allow global headers to be updated asynchronously', async () => { - const globalHeaders = new Map([['foo', 'bar']]); - const fetch = new FetchClient(sandbox, { baseURL, headers: globalHeaders }); - sandbox.get({ url: `${baseURL}/one`, headers: { foo: 'bar' } }, 200); - sandbox.get({ url: `${baseURL}/two`, headers: { foo: 'bar', fizz: 'buzz' } }, 200); - - await fetch.get('one'); - globalHeaders.set('fizz', 'buzz'); - await fetch.get('two'); - - expect(sandbox.done()).toBe(true); - }); - }); - - describe('request options', () => { - it('should accept headers as a Map', async () => { - const fetch = new FetchClient(sandbox); - const headers = new Map([['foo', 'bar']]); - sandbox.get({ url: TARGET_URL, headers: { foo: 'bar' } }, 200); - - await fetch.get(TARGET_URL, { headers }); - - expect(sandbox.done()).toBe(true); - }); - - it('should accept headers as an object', async () => { - const fetch = new FetchClient(sandbox); - const headers = { foo: 'bar' }; - sandbox.get({ url: TARGET_URL, headers }, 200); - - await fetch.get(TARGET_URL, { headers }); - - expect(sandbox.done()).toBe(true); - }); - }); - - describe('error handling', () => { - it('should throw ClientException on non-2xx status code', async () => { - const fetch = new FetchClient(sandbox); - sandbox.head(TARGET_URL, 404); - - await expect(fetch.head(TARGET_URL)).rejects.toBeInstanceOf(ClientException); - - expect(sandbox.done()).toBe(true); - }); - - it('should extract error details from response body', async () => { - const status = 500; - const message = 'something went wrong!'; - const cause = 'the dog ate my homework'; - const details = { traceID: '123' }; - const fetch = new FetchClient(sandbox); - sandbox.get(TARGET_URL, { status, body: { message, cause, details } }); - - try { - await fetch.get(TARGET_URL); - - expect.fail('expected to throw ClientException'); - } catch (err) { - if (ClientException.instanceOf(err)) { - expect(err.statusCode).toEqual(status); - expect(err.statusText).toEqual('Internal Server Error'); - expect(err.message).toEqual(message); - expect(err.cause).toEqual(cause); - expect(err.details).toEqual(details); - } else { - expect.fail('should be an instance of ClientException'); - } - } - - expect(sandbox.done()).toBe(true); - }); - }); -}); diff --git a/packages/fetch/src/fetch.client.ts b/packages/fetch/src/fetch.client.ts deleted file mode 100644 index 4885125cc..000000000 --- a/packages/fetch/src/fetch.client.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { ClientException } from '@voiceflow/exception'; - -import type { ClientConfiguration } from './client-configuration.interface'; -import type { FetchAPI, FetchOptions, FetchResponse } from './fetch.interface'; -import { HTTPMethod } from './http-method.enum'; -import type { RequestHeaders, RequestOptions, RequestQuery } from './request-options.interface'; - -export class FetchClient< - Opts extends FetchOptions = RequestInit, - Req = URL | Request, - Res extends FetchResponse = Response, -> { - private static extractHeaders(headers: RequestHeaders | undefined) { - return new Map(headers instanceof Map ? headers : Object.entries(headers ?? {})); - } - - private static extractQuery(query: RequestQuery | undefined) { - return new URLSearchParams(query instanceof Map ? Object.entries(query) : query); - } - - private static formatURL(baseURL: string | undefined, path: string, query: URLSearchParams) { - const url = new URL(path, baseURL); - query.forEach((value, key) => url.searchParams.append(key, value)); - return url.href; - } - - private readonly config: ClientConfiguration; - - private readonly fetch: FetchAPI | undefined; - - /* eslint-disable lines-between-class-members */ - constructor(config?: ClientConfiguration); - constructor(fetch: FetchAPI, options?: ClientConfiguration); - constructor(fetchOrConfig?: FetchAPI | ClientConfiguration, config?: ClientConfiguration) { - if (typeof fetchOrConfig === 'function') { - this.fetch = fetchOrConfig; - this.config = config ?? {}; - } else { - this.config = fetchOrConfig ?? config ?? {}; - } - } - /* eslint-enable lines-between-class-members */ - - private async send(url: string | Req, rawOptions: RequestOptions) { - // eslint-disable-next-line prefer-const - let { json, headers, query, body, ...options } = rawOptions; - - headers = new Map([ - ...FetchClient.extractHeaders(this.config.headers).entries(), - ...FetchClient.extractHeaders(headers).entries(), - ]); - query = FetchClient.extractQuery(query); - - if (json != null) { - headers.set('content-type', 'application/json'); - body = JSON.stringify(json); - } - - const finalURL = typeof url === 'string' ? FetchClient.formatURL(this.config.baseURL, url, query) : url; - const response = await this.raw(finalURL, { - ...options, - headers: Object.fromEntries(headers.entries()), - body, - } as Opts); - - if (!response.ok) { - throw await new ClientException(response).build(); - } - - return response; - } - - private createMethod(method: HTTPMethod) { - return (url: string | Req, options?: Omit, 'method'>) => { - const response = this.send(url, { ...options, method: method.toUpperCase() } as RequestOptions); - - return Object.assign(response, { - json: async (): Promise => (await response).json(), - }); - }; - } - - public raw(...args: Parameters>): Promise { - return (this.fetch ?? (window.fetch as FetchAPI))(...args); - } - - public delete = this.createMethod(HTTPMethod.DELETE); - - public get = this.createMethod(HTTPMethod.GET); - - public head = this.createMethod(HTTPMethod.HEAD); - - public patch = this.createMethod(HTTPMethod.PATCH); - - public post = this.createMethod(HTTPMethod.POST); - - public put = this.createMethod(HTTPMethod.PUT); -} diff --git a/packages/fetch/src/fetch.interface.ts b/packages/fetch/src/fetch.interface.ts deleted file mode 100644 index 995dbf0fa..000000000 --- a/packages/fetch/src/fetch.interface.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { BaseResponse } from '@voiceflow/exception'; - -export interface FetchOptions { - method?: string; - headers?: [string, string][] | Record | Headers; - body?: string | Body; -} - -export interface FetchResponse extends BaseResponse { - ok: boolean; - json: () => Promise; -} - -export type FetchAPI, Req, Res extends FetchResponse> = ( - input: string | Req, - init?: Opts -) => Promise; diff --git a/packages/fetch/src/http-method.enum.ts b/packages/fetch/src/http-method.enum.ts deleted file mode 100644 index 8b5751663..000000000 --- a/packages/fetch/src/http-method.enum.ts +++ /dev/null @@ -1,8 +0,0 @@ -export enum HTTPMethod { - DELETE = 'delete', - GET = 'get', - HEAD = 'head', - PATCH = 'patch', - POST = 'post', - PUT = 'put', -} diff --git a/packages/fetch/src/main.ts b/packages/fetch/src/main.ts deleted file mode 100644 index 577e1a8ed..000000000 --- a/packages/fetch/src/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './client-configuration.interface'; -export * from './fetch.client'; -export * from './fetch.interface'; -export * from './http-method.enum'; -export * from './request-options.interface'; diff --git a/packages/fetch/src/main.undici.ts b/packages/fetch/src/main.undici.ts deleted file mode 100644 index b26df9f09..000000000 --- a/packages/fetch/src/main.undici.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as undici from 'undici'; - -import type { ClientConfiguration } from './client-configuration.interface'; -import { FetchClient as BaseFetchClient } from './fetch.client'; - -export * from './client-configuration.interface'; -export * from './fetch.interface'; -export * from './http-method.enum'; -export * from './request-options.interface'; - -export class FetchClient extends BaseFetchClient { - constructor(config: ClientConfiguration = {}) { - super(undici.fetch, config); - } -} diff --git a/packages/fetch/src/request-options.interface.ts b/packages/fetch/src/request-options.interface.ts deleted file mode 100644 index 3a44e71f2..000000000 --- a/packages/fetch/src/request-options.interface.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { FetchOptions } from './fetch.interface'; - -export type RequestHeaders = Record | Map; - -export type RequestQuery = URLSearchParams | [string, string][] | Record | Map; - -export interface ExtraOptions { - json?: any; - headers?: RequestHeaders; - query?: RequestQuery | undefined; -} - -export type RequestOptions> = Omit, keyof ExtraOptions> & - ExtraOptions; diff --git a/packages/fetch/tsconfig.build.cjs.json b/packages/fetch/tsconfig.build.cjs.json deleted file mode 100644 index 33c650780..000000000 --- a/packages/fetch/tsconfig.build.cjs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "commonjs", - "outDir": "build/cjs" - } -} diff --git a/packages/fetch/tsconfig.build.esm.json b/packages/fetch/tsconfig.build.esm.json deleted file mode 100644 index fdf7a795c..000000000 --- a/packages/fetch/tsconfig.build.esm.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "esnext", - "outDir": "build/esm" - }, - "tsc-alias": { - "resolveFullPaths": true - } -} diff --git a/packages/fetch/tsconfig.build.json b/packages/fetch/tsconfig.build.json deleted file mode 100644 index 303098386..000000000 --- a/packages/fetch/tsconfig.build.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "rootDir": "src" - }, - "include": ["src"], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/fetch/tsconfig.json b/packages/fetch/tsconfig.json deleted file mode 100644 index 41821a3e5..000000000 --- a/packages/fetch/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@voiceflow/tsconfig", - "compilerOptions": { - "lib": ["es2019", "dom"], - "baseUrl": ".", - "outDir": "build/cjs", - "paths": { - "@fetch/*": ["src/*"] - } - }, - "exclude": ["node_modules", "build"] -} diff --git a/packages/fetch/vitest.config.mts b/packages/fetch/vitest.config.mts deleted file mode 100644 index f268f4c03..000000000 --- a/packages/fetch/vitest.config.mts +++ /dev/null @@ -1,10 +0,0 @@ -import baseConfig from '@voiceflow/vitest-config'; -import type { UserConfig } from 'vitest/config'; -import { mergeConfig } from 'vitest/config'; - -export default mergeConfig(baseConfig, { - test: { - environment: 'jsdom', - setupFiles: ['./config/test/setup.ts'], - }, -}); diff --git a/sonar-project.properties b/sonar-project.properties index 33a55e9b6..b049a2ce8 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,4 +1,4 @@ sonar.projectKey=voiceflow_libs sonar.organization=voiceflow -sonar.modules=packages/alexa-types,packages/api-sdk,packages/base-types,packages/chat-types,packages/common,packages/exception,packages/fetch,packages/metrics,packages/nestjs-mongodb,packages/nestjs-rate-limit,packages/nestjs-redis,packages/nestjs-timeout,packages/voice-types,packages/voiceflow-types +sonar.modules=packages/alexa-types,packages/api-sdk,packages/base-types,packages/chat-types,packages/common,packages/metrics,packages/nestjs-mongodb,packages/nestjs-rate-limit,packages/nestjs-redis,packages/nestjs-timeout,packages/voice-types,packages/voiceflow-types sonar.cpd.exclusions=packages/base-types/src/models/*,packages/voiceflow-types/src/constants/azureVoices.ts diff --git a/yarn.lock b/yarn.lock index 2ed498b4e..7be88f6fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,16 +12,6 @@ __metadata: languageName: node linkType: hard -"@ampproject/remapping@npm:^2.1.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" - dependencies: - "@jridgewell/gen-mapping": ^0.1.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 - languageName: node - linkType: hard - "@ampproject/remapping@npm:^2.2.1": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" @@ -48,156 +38,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.12.13": - version: 7.23.5 - resolution: "@babel/code-frame@npm:7.23.5" - dependencies: - "@babel/highlight": ^7.23.4 - chalk: ^2.4.2 - checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" - dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.20.0": - version: 7.20.1 - resolution: "@babel/compat-data@npm:7.20.1" - checksum: 989b9b7a6fe43c547bb8329241bd0ba6983488b83d29cc59de35536272ee6bb4cc7487ba6c8a4bceebb3a57f8c5fea1434f80bbbe75202bc79bc1110f955ff25 - languageName: node - linkType: hard - -"@babel/core@npm:^7.0.0": - version: 7.20.2 - resolution: "@babel/core@npm:7.20.2" - dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.2 - "@babel/helper-compilation-targets": ^7.20.0 - "@babel/helper-module-transforms": ^7.20.2 - "@babel/helpers": ^7.20.1 - "@babel/parser": ^7.20.2 - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.20.1 - "@babel/types": ^7.20.2 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.1 - semver: ^6.3.0 - checksum: 98faaaef26103a276a30a141b951a93bc8418d100d1f668bf7a69d12f3e25df57958e8b6b9100d95663f720db62da85ade736f6629a5ebb1e640251a1b43c0e4 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.20.1, @babel/generator@npm:^7.20.2": - version: 7.20.4 - resolution: "@babel/generator@npm:7.20.4" - dependencies: - "@babel/types": ^7.20.2 - "@jridgewell/gen-mapping": ^0.3.2 - jsesc: ^2.5.1 - checksum: 967b59f18e5ce999e5a741825bcecb2be4bbfc1824a92c21b47d0b5694e0eb09314a70f8b9142e9591c149c7fb83d51f73ae8fbd96d30a42666425889e51ceb1 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.20.0": - version: 7.20.0 - resolution: "@babel/helper-compilation-targets@npm:7.20.0" - dependencies: - "@babel/compat-data": ^7.20.0 - "@babel/helper-validator-option": ^7.18.6 - browserslist: ^4.21.3 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: bc183f2109648849c8fde0b3c5cf08adf2f7ad6dc617b546fd20f34c8ef574ee5ee293c8d1bd0ed0221212e8f5907cdc2c42097870f1dcc769a654107d82c95b - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.19.0": - version: 7.19.0 - resolution: "@babel/helper-function-name@npm:7.19.0" - dependencies: - "@babel/template": ^7.18.10 - "@babel/types": ^7.19.0 - checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-module-transforms@npm:7.20.2" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.20.1 - "@babel/types": ^7.20.2 - checksum: 33a60ca115f6fce2c9d98e2a2e5649498aa7b23e2ae3c18745d7a021487708fc311458c33542f299387a0da168afccba94116e077f2cce49ae9e5ab83399e8a2 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-simple-access@npm:7.20.2" - dependencies: - "@babel/types": ^7.20.2 - checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.23.4": version: 7.23.4 resolution: "@babel/helper-string-parser@npm:7.23.4" @@ -212,13 +52,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": - version: 7.19.1 - resolution: "@babel/helper-validator-identifier@npm:7.19.1" - checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -226,24 +59,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-option@npm:7.18.6" - checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.20.1": - version: 7.20.1 - resolution: "@babel/helpers@npm:7.20.1" - dependencies: - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.20.1 - "@babel/types": ^7.20.0 - checksum: be35f78666bdab895775ed94dbeb098f7b4fa08ce4cfb0c3a9e69b7220cce56960dcdc2b14f5df9d3b80388d4bf7df155c97f6cf6768c0138f4e6931d0f44955 - languageName: node - linkType: hard - "@babel/highlight@npm:^7.16.7": version: 7.16.10 resolution: "@babel/highlight@npm:7.16.10" @@ -255,37 +70,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/highlight@npm:7.23.4" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.20.1, @babel/parser@npm:^7.20.2": - version: 7.20.3 - resolution: "@babel/parser@npm:7.20.3" - bin: - parser: ./bin/babel-parser.js - checksum: 33bcdb45de65a3cf27ed376cb34f32be3c3485a10e3252f8d0126f6a034efc3145c0d219e57fcd5a8956361552008bc30b9bae4a723823fb3633027071be8a45 - languageName: node - linkType: hard - "@babel/parser@npm:^7.24.4": version: 7.24.4 resolution: "@babel/parser@npm:7.24.4" @@ -295,55 +79,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0": - version: 7.20.1 - resolution: "@babel/runtime@npm:7.20.1" - dependencies: - regenerator-runtime: ^0.13.10 - checksum: 00567a333d3357925742a6f5e39394dcc0af6e6029103fe188158bf7ae8b0b3ee3c6c0f68fccc217f0a6cfa455f6be252298baf56b3f5ff37b34313b170cd9f6 - languageName: node - linkType: hard - -"@babel/template@npm:^7.18.10": - version: 7.18.10 - resolution: "@babel/template@npm:7.18.10" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.18.10 - "@babel/types": ^7.18.10 - checksum: 93a6aa094af5f355a72bd55f67fa1828a046c70e46f01b1606e6118fa1802b6df535ca06be83cc5a5e834022be95c7b714f0a268b5f20af984465a71e28f1473 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.20.1": - version: 7.20.1 - resolution: "@babel/traverse@npm:7.20.1" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.1 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.20.1 - "@babel/types": ^7.20.0 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 6696176d574b7ff93466848010bc7e94b250169379ec2a84f1b10da46a7cc2018ea5e3a520c3078487db51e3a4afab9ecff48f25d1dbad8c1319362f4148fb4b - languageName: node - linkType: hard - -"@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/types@npm:7.20.2" - dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: 57e76e5f21876135f481bfd4010c87f2d38196bb0a2bc60a28d6e55e3afa90cdd9accf164e4cb71bdfb620517fa0a0cb5600cdce36c21d59fdaccfbb899c024c - languageName: node - linkType: hard - "@babel/types@npm:^7.24.0": version: 7.24.0 resolution: "@babel/types@npm:7.24.0" @@ -831,32 +566,6 @@ __metadata: languageName: node linkType: hard -"@jest/environment@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/environment@npm:29.7.0" - dependencies: - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/fake-timers@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 - languageName: node - linkType: hard - "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -866,41 +575,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 - languageName: node - linkType: hard - "@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" @@ -912,13 +586,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 - languageName: node - linkType: hard - "@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -926,13 +593,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e - languageName: node - linkType: hard - "@jridgewell/set-array@npm:^1.2.1": version: 1.2.1 resolution: "@jridgewell/set-array@npm:1.2.1" @@ -940,13 +600,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - "@jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.10 resolution: "@jridgewell/sourcemap-codec@npm:1.4.10" @@ -971,16 +624,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" - dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 - languageName: node - linkType: hard - "@nestjs/common@npm:8.4.7": version: 8.4.7 resolution: "@nestjs/common@npm:8.4.7" @@ -1337,31 +980,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.0 - resolution: "@sinonjs/commons@npm:3.0.0" - dependencies: - type-detect: 4.0.8 - checksum: b4b5b73d4df4560fb8c0c7b38c7ad4aeabedd362f3373859d804c988c725889cde33550e4bcc7cd316a30f5152a2d1d43db71b6d0c38f5feef71fd8d016763f8 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" - dependencies: - "@sinonjs/commons": ^3.0.0 - checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - "@types/body-parser@npm:*": version: 1.19.2 resolution: "@types/body-parser@npm:1.19.2" @@ -1443,42 +1061,13 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": +"@types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 languageName: node linkType: hard -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 - languageName: node - linkType: hard - -"@types/jsdom@npm:^20.0.0": - version: 20.0.1 - resolution: "@types/jsdom@npm:20.0.1" - dependencies: - "@types/node": "*" - "@types/tough-cookie": "*" - parse5: ^7.0.0 - checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 - languageName: node - linkType: hard - "@types/json-schema@npm:^7.0.15": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" @@ -1584,20 +1173,6 @@ __metadata: languageName: node linkType: hard -"@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 - languageName: node - linkType: hard - -"@types/tough-cookie@npm:*": - version: 4.0.5 - resolution: "@types/tough-cookie@npm:4.0.5" - checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d - languageName: node - linkType: hard - "@types/webidl-conversions@npm:*": version: 6.1.1 resolution: "@types/webidl-conversions@npm:6.1.1" @@ -1615,22 +1190,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" - dependencies: - "@types/yargs-parser": "*" - checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:7.6.0": version: 7.6.0 resolution: "@typescript-eslint/eslint-plugin@npm:7.6.0" @@ -1940,31 +1499,6 @@ __metadata: languageName: node linkType: hard -"@voiceflow/exception@workspace:*, @voiceflow/exception@workspace:packages/exception": - version: 0.0.0-use.local - resolution: "@voiceflow/exception@workspace:packages/exception" - languageName: unknown - linkType: soft - -"@voiceflow/fetch@workspace:packages/fetch": - version: 0.0.0-use.local - resolution: "@voiceflow/fetch@workspace:packages/fetch" - dependencies: - "@voiceflow/exception": "workspace:*" - fetch-mock: 9.11.0 - jest-environment-jsdom: 29.7.0 - jest-fetch-mock: 3.0.3 - undici: 5.12.0 - vitest-fetch-mock: 0.2.2 - peerDependencies: - "@voiceflow/exception": "workspace:^" - undici: ^5 - peerDependenciesMeta: - undici: - optional: true - languageName: unknown - linkType: soft - "@voiceflow/git-branch-check@npm:1.4.1": version: 1.4.1 resolution: "@voiceflow/git-branch-check@npm:1.4.1" @@ -2124,13 +1658,6 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.6": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e - languageName: node - linkType: hard - "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -2138,16 +1665,6 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^7.0.0": - version: 7.0.1 - resolution: "acorn-globals@npm:7.0.1" - dependencies: - acorn: ^8.1.0 - acorn-walk: ^8.0.2 - checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 - languageName: node - linkType: hard - "acorn-jsx-walk@npm:2.0.0": version: 2.0.0 resolution: "acorn-jsx-walk@npm:2.0.0" @@ -2180,14 +1697,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.0.2": - version: 8.3.1 - resolution: "acorn-walk@npm:8.3.1" - checksum: 5c8926ddb5400bc825b6baca782931f9df4ace603ba1a517f5243290fd9cdb089d52877840687b5d5c939591ebc314e2e63721514feaa37c6829c828f2b940ce - languageName: node - linkType: hard - -"acorn@npm:8.11.3, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.8.1, acorn@npm:^8.9.0": +"acorn@npm:8.11.3, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -2196,15 +1706,6 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": version: 7.1.0 resolution: "agent-base@npm:7.1.0" @@ -2549,20 +2050,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.3": - version: 4.21.4 - resolution: "browserslist@npm:4.21.4" - dependencies: - caniuse-lite: ^1.0.30001400 - electron-to-chromium: ^1.4.251 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.9 - bin: - browserslist: cli.js - checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 - languageName: node - linkType: hard - "browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" @@ -2634,15 +2121,6 @@ __metadata: languageName: node linkType: hard -"busboy@npm:^1.6.0": - version: 1.6.0 - resolution: "busboy@npm:1.6.0" - dependencies: - streamsearch: ^1.1.0 - checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e - languageName: node - linkType: hard - "cac@npm:^6.7.14": version: 6.7.14 resolution: "cac@npm:6.7.14" @@ -2711,13 +2189,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001400": - version: 1.0.30001431 - resolution: "caniuse-lite@npm:1.0.30001431" - checksum: bc8ab55cd194e240152946b54bfaff7456180cc018674fc7ed134f4f502192405f6643f422feaa0a5e7cc02b5bac564cfac7771ac6d29f5d129482fcfe335ba1 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001587": version: 1.0.30001610 resolution: "caniuse-lite@npm:1.0.30001610" @@ -2762,7 +2233,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.0.0, chalk@npm:^2.4.1": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -2825,13 +2296,6 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.2.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 - languageName: node - linkType: hard - "ci-info@npm:^4.0.0": version: 4.0.0 resolution: "ci-info@npm:4.0.0" @@ -3024,15 +2488,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.7.0": - version: 1.8.0 - resolution: "convert-source-map@npm:1.8.0" - dependencies: - safe-buffer: ~5.1.1 - checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -3049,13 +2504,6 @@ __metadata: languageName: node linkType: hard -"core-js@npm:^3.0.0": - version: 3.26.1 - resolution: "core-js@npm:3.26.1" - checksum: 0a01149f51ff1e9f41d1ea49cc4c9222047949ea597189ede7c4cf8cde3b097766b9c7615acc77c86fe65b4002f20b638a133dfba7b41dba830d707aeeed45ad - languageName: node - linkType: hard - "cosmiconfig-typescript-loader@npm:^5.0.0": version: 5.0.0 resolution: "cosmiconfig-typescript-loader@npm:5.0.0" @@ -3086,15 +2534,6 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^3.0.4, cross-fetch@npm:^3.0.6": - version: 3.1.8 - resolution: "cross-fetch@npm:3.1.8" - dependencies: - node-fetch: ^2.6.12 - checksum: 78f993fa099eaaa041122ab037fe9503ecbbcb9daef234d1d2e0b9230a983f64d645d088c464e21a247b825a08dc444a6e7064adfa93536d3a9454b4745b3632 - languageName: node - linkType: hard - "cross-spawn@npm:^5.0.1": version: 5.1.0 resolution: "cross-spawn@npm:5.1.0" @@ -3137,29 +2576,6 @@ __metadata: languageName: node linkType: hard -"cssom@npm:^0.5.0": - version: 0.5.0 - resolution: "cssom@npm:0.5.0" - checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 - languageName: node - linkType: hard - "cuid@npm:2.1.8": version: 2.1.8 resolution: "cuid@npm:2.1.8" @@ -3185,17 +2601,6 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^3.0.2": - version: 3.0.2 - resolution: "data-urls@npm:3.0.2" - dependencies: - abab: ^2.0.6 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 - languageName: node - linkType: hard - "data-view-buffer@npm:^1.0.1": version: 1.0.1 resolution: "data-view-buffer@npm:1.0.1" @@ -3236,7 +2641,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": +"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": version: 4.3.3 resolution: "debug@npm:4.3.3" dependencies: @@ -3269,13 +2674,6 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.4.2": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae - languageName: node - linkType: hard - "deep-eql@npm:^3.0.1": version: 3.0.1 resolution: "deep-eql@npm:3.0.1" @@ -3445,15 +2843,6 @@ __metadata: languageName: node linkType: hard -"domexception@npm:^4.0.0": - version: 4.0.0 - resolution: "domexception@npm:4.0.0" - dependencies: - webidl-conversions: ^7.0.0 - checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 - languageName: node - linkType: hard - "dot-prop@npm:^5.1.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" @@ -3479,13 +2868,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.251": - version: 1.4.284 - resolution: "electron-to-chromium@npm:1.4.284" - checksum: be496e9dca6509dbdbb54dc32146fc99f8eb716d28a7ee8ccd3eba0066561df36fc51418d8bd7cf5a5891810bf56c0def3418e74248f51ea4a843d423603d10a - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.668": version: 1.4.738 resolution: "electron-to-chromium@npm:1.4.738" @@ -3533,13 +2915,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 - languageName: node - linkType: hard - "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -3853,13 +3228,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -3867,24 +3235,6 @@ __metadata: languageName: node linkType: hard -"escodegen@npm:^2.0.0": - version: 2.1.0 - resolution: "escodegen@npm:2.1.0" - dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 - languageName: node - linkType: hard - "eslint-config-airbnb-base@npm:15.0.0": version: 15.0.0 resolution: "eslint-config-airbnb-base@npm:15.0.0" @@ -4199,20 +3549,10 @@ __metadata: version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 - languageName: node - linkType: hard - -"esprima@npm:^4.0.1": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + acorn: ^8.9.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 languageName: node linkType: hard @@ -4373,29 +3713,6 @@ __metadata: languageName: node linkType: hard -"fetch-mock@npm:9.11.0": - version: 9.11.0 - resolution: "fetch-mock@npm:9.11.0" - dependencies: - "@babel/core": ^7.0.0 - "@babel/runtime": ^7.0.0 - core-js: ^3.0.0 - debug: ^4.1.1 - glob-to-regexp: ^0.4.0 - is-subset: ^0.1.1 - lodash.isequal: ^4.5.0 - path-to-regexp: ^2.2.1 - querystring: ^0.2.0 - whatwg-url: ^6.5.0 - peerDependencies: - node-fetch: "*" - peerDependenciesMeta: - node-fetch: - optional: true - checksum: debc4dd83bcda79b0aa71c38d08da6036906cdc49393343eb3426112314a7e57557255664f745d2e3f0b9b2a6e852bd3a564ae3f08332c27e422d3441bb865bd - languageName: node - linkType: hard - "figures@npm:6.1.0": version: 6.1.0 resolution: "figures@npm:6.1.0" @@ -4617,13 +3934,6 @@ __metadata: languageName: node linkType: hard -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec - languageName: node - linkType: hard - "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -4777,13 +4087,6 @@ __metadata: languageName: node linkType: hard -"glob-to-regexp@npm:^0.4.0": - version: 0.4.1 - resolution: "glob-to-regexp@npm:0.4.1" - checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167 - languageName: node - linkType: hard - "glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.3.10 resolution: "glob@npm:10.3.10" @@ -4844,13 +4147,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - "globals@npm:^13.19.0": version: 13.24.0 resolution: "globals@npm:13.24.0" @@ -4933,7 +4229,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -5073,15 +4369,6 @@ __metadata: languageName: node linkType: hard -"html-encoding-sniffer@npm:^3.0.0": - version: 3.0.0 - resolution: "html-encoding-sniffer@npm:3.0.0" - dependencies: - whatwg-encoding: ^2.0.0 - checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 - languageName: node - linkType: hard - "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -5096,17 +4383,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - "http-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "http-proxy-agent@npm:7.0.0" @@ -5117,16 +4393,6 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 - languageName: node - linkType: hard - "https-proxy-agent@npm:^7.0.1": version: 7.0.2 resolution: "https-proxy-agent@npm:7.0.2" @@ -5153,7 +4419,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": +"iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -5571,13 +4837,6 @@ __metadata: languageName: node linkType: hard -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab - languageName: node - linkType: hard - "is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -5636,13 +4895,6 @@ __metadata: languageName: node linkType: hard -"is-subset@npm:^0.1.1": - version: 0.1.1 - resolution: "is-subset@npm:0.1.1" - checksum: 97b8d7852af165269b7495095691a6ce6cf20bdfa1f846f97b4560ee190069686107af4e277fbd93aa0845c4d5db704391460ff6e9014aeb73264ba87893df44 - languageName: node - linkType: hard - "is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": version: 1.0.4 resolution: "is-symbol@npm:1.0.4" @@ -5775,79 +5027,6 @@ __metadata: languageName: node linkType: hard -"jest-environment-jsdom@npm:29.7.0": - version: 29.7.0 - resolution: "jest-environment-jsdom@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/jsdom": ^20.0.0 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - jsdom: ^20.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 - languageName: node - linkType: hard - -"jest-fetch-mock@npm:3.0.3": - version: 3.0.3 - resolution: "jest-fetch-mock@npm:3.0.3" - dependencies: - cross-fetch: ^3.0.4 - promise-polyfill: ^8.1.3 - checksum: fb052f7e0ef1c8192a9c15efdd1b18d281ab68fc6b1648b30bff8880fe24418bdf12190ea79b1996932dc15417c3c01f5b2d77ef7104a7e7943e7cbe8d61071d - languageName: node - linkType: hard - -"jest-message-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-message-util@npm:29.7.0" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 - languageName: node - linkType: hard - -"jest-mock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-mock@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-util: ^29.7.0 - checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca - languageName: node - linkType: hard - "jiti@npm:^1.19.1": version: 1.21.0 resolution: "jiti@npm:1.21.0" @@ -5882,54 +5061,6 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^20.0.0": - version: 20.0.3 - resolution: "jsdom@npm:20.0.3" - dependencies: - abab: ^2.0.6 - acorn: ^8.8.1 - acorn-globals: ^7.0.0 - cssom: ^0.5.0 - cssstyle: ^2.3.0 - data-urls: ^3.0.2 - decimal.js: ^10.4.2 - domexception: ^4.0.0 - escodegen: ^2.0.0 - form-data: ^4.0.0 - html-encoding-sniffer: ^3.0.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.1 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.2 - parse5: ^7.1.1 - saxes: ^6.0.0 - symbol-tree: ^3.2.4 - tough-cookie: ^4.1.2 - w3c-xmlserializer: ^4.0.0 - webidl-conversions: ^7.0.0 - whatwg-encoding: ^2.0.0 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - ws: ^8.11.0 - xml-name-validator: ^4.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - "jsesc@npm:^3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -6010,15 +5141,6 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.1": - version: 2.2.1 - resolution: "json5@npm:2.2.1" - bin: - json5: lib/cli.js - checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b - languageName: node - linkType: hard - "jsonc-parser@npm:^3.2.0": version: 3.2.1 resolution: "jsonc-parser@npm:3.2.1" @@ -6251,13 +5373,6 @@ __metadata: languageName: node linkType: hard -"lodash.isequal@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.isequal@npm:4.5.0" - checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 - languageName: node - linkType: hard - "lodash.isinteger@npm:^4.0.4": version: 4.0.4 resolution: "lodash.isinteger@npm:4.0.4" @@ -6321,13 +5436,6 @@ __metadata: languageName: node linkType: hard -"lodash.sortby@npm:^4.7.0": - version: 4.7.0 - resolution: "lodash.sortby@npm:4.7.0" - checksum: db170c9396d29d11fe9a9f25668c4993e0c1331bcb941ddbd48fb76f492e732add7f2a47cfdf8e9d740fa59ac41bbfaf931d268bc72aab3ab49e9f89354d718c - languageName: node - linkType: hard - "lodash.startcase@npm:^4.4.0": version: 4.4.0 resolution: "lodash.startcase@npm:4.4.0" @@ -6830,20 +5938,6 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.12": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: ^5.0.0 - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 10.0.1 resolution: "node-gyp@npm:10.0.1" @@ -6871,13 +5965,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.6": - version: 2.0.6 - resolution: "node-releases@npm:2.0.6" - checksum: e86a926dc9fbb3b41b4c4a89d998afdf140e20a4e8dbe6c0a807f7b2948b42ea97d7fd3ad4868041487b6e9ee98409829c6e4d84a734a4215dff060a7fbeb4bf - languageName: node - linkType: hard - "nopt@npm:^7.0.0": version: 7.2.0 resolution: "nopt@npm:7.2.0" @@ -6954,13 +6041,6 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.2": - version: 2.2.7 - resolution: "nwsapi@npm:2.2.7" - checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e - languageName: node - linkType: hard - "object-hash@npm:3.0.0": version: 3.0.0 resolution: "object-hash@npm:3.0.0" @@ -7223,15 +6303,6 @@ __metadata: languageName: node linkType: hard -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 - languageName: node - linkType: hard - "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -7308,13 +6379,6 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^2.2.1": - version: 2.4.0 - resolution: "path-to-regexp@npm:2.4.0" - checksum: 581175bf2968e51452f2b8c71f10e75c995693668b4ecf7d0b48962fbe0c56830661ca5dd5fd6d8e2f0cc9a045ce07e89af504ab133e1d21887c2712df85b1f4 - languageName: node - linkType: hard - "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -7494,13 +6558,6 @@ __metadata: languageName: node linkType: hard -"promise-polyfill@npm:^8.1.3": - version: 8.3.0 - resolution: "promise-polyfill@npm:8.3.0" - checksum: 206373802076c77def0805758d0a8ece64120dfa6603f092404a1004211f8f2f67f33cadbc35953fc2a8ed0b0d38c774e88bdf01e20ce7a920723a60df84b7a5 - languageName: node - linkType: hard - "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -7528,13 +6585,6 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d - languageName: node - linkType: hard - "punycode@npm:^2.1.0, punycode@npm:^2.1.1": version: 2.1.1 resolution: "punycode@npm:2.1.1" @@ -7542,20 +6592,6 @@ __metadata: languageName: node linkType: hard -"querystring@npm:^0.2.0": - version: 0.2.1 - resolution: "querystring@npm:0.2.1" - checksum: 7b83b45d641e75fd39cd6625ddfd44e7618e741c61e95281b57bbae8fde0afcc12cf851924559e5cc1ef9baa3b1e06e22b164ea1397d65dd94b801f678d9c8ce - languageName: node - linkType: hard - -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 - languageName: node - linkType: hard - "queue-lit@npm:^1.5.1": version: 1.5.2 resolution: "queue-lit@npm:1.5.2" @@ -7666,13 +6702,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.10": - version: 0.13.10 - resolution: "regenerator-runtime@npm:0.13.10" - checksum: 09893f5a9e82932642d9a999716b6c626dc53ef2a01307c952ebbf8e011802360163a37c304c18a6c358548be5a72b448e37209954a18696f21e438c81cbb4b9 - languageName: node - linkType: hard - "regexp-tree@npm:^0.1.27, regexp-tree@npm:~0.1.1": version: 0.1.27 resolution: "regexp-tree@npm:0.1.27" @@ -7730,13 +6759,6 @@ __metadata: languageName: node linkType: hard -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -7991,13 +7013,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c - languageName: node - linkType: hard - "safe-regex-test@npm:^1.0.0": version: 1.0.0 resolution: "safe-regex-test@npm:1.0.0" @@ -8045,15 +7060,6 @@ __metadata: languageName: node linkType: hard -"saxes@npm:^6.0.0": - version: 6.0.0 - resolution: "saxes@npm:6.0.0" - dependencies: - xmlchars: ^2.2.0 - checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b - languageName: node - linkType: hard - "semver-try-require@npm:6.2.3": version: 6.2.3 resolution: "semver-try-require@npm:6.2.3" @@ -8391,7 +7397,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:~0.6.1": +"source-map@npm:^0.6.0": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 @@ -8457,15 +7463,6 @@ __metadata: languageName: node linkType: hard -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 - languageName: node - linkType: hard - "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -8487,13 +7484,6 @@ __metadata: languageName: node linkType: hard -"streamsearch@npm:^1.1.0": - version: 1.1.0 - resolution: "streamsearch@npm:1.1.0" - checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 - languageName: node - linkType: hard - "string-argv@npm:0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" @@ -8719,13 +7709,6 @@ __metadata: languageName: node linkType: hard -"symbol-tree@npm:^3.2.4": - version: 3.2.4 - resolution: "symbol-tree@npm:3.2.4" - checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d - languageName: node - linkType: hard - "synckit@npm:0.9.0": version: 0.9.0 resolution: "synckit@npm:0.9.0" @@ -8850,27 +7833,6 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.2": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" - dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.2.0 - url-parse: ^1.5.3 - checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc - languageName: node - linkType: hard - -"tr46@npm:^1.0.1": - version: 1.0.1 - resolution: "tr46@npm:1.0.1" - dependencies: - punycode: ^2.1.0 - checksum: 96d4ed46bc161db75dbf9247a236ea0bfcaf5758baae6749e92afab0bc5a09cb59af21788ede7e55080f2bf02dce3e4a8f2a484cc45164e29f4b5e68f7cbcc1a - languageName: node - linkType: hard - "tr46@npm:^3.0.0": version: 3.0.0 resolution: "tr46@npm:3.0.0" @@ -9061,7 +8023,7 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.5, type-detect@npm:^4.0.8": +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 @@ -9246,15 +8208,6 @@ __metadata: languageName: node linkType: hard -"undici@npm:5.12.0": - version: 5.12.0 - resolution: "undici@npm:5.12.0" - dependencies: - busboy: ^1.6.0 - checksum: fbc227704943c05aa3dc1630695e10309c17d0a535678594d136db107c50593248e9ace70e1ab77496a6c837bf14aa2ab3c501a7a6c45fb6277dbf0846e15ffe - languageName: node - linkType: hard - "unicorn-magic@npm:^0.1.0": version: 0.1.0 resolution: "unicorn-magic@npm:0.1.0" @@ -9280,13 +8233,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.0.13": version: 1.0.13 resolution: "update-browserslist-db@npm:1.0.13" @@ -9301,20 +8247,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.9": - version: 1.0.10 - resolution: "update-browserslist-db@npm:1.0.10" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - browserslist-lint: cli.js - checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 - languageName: node - linkType: hard - "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -9324,16 +8256,6 @@ __metadata: languageName: node linkType: hard -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: ^2.1.1 - requires-port: ^1.0.0 - checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf - languageName: node - linkType: hard - "uuid@npm:8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -9435,17 +8357,6 @@ __metadata: languageName: node linkType: hard -"vitest-fetch-mock@npm:0.2.2": - version: 0.2.2 - resolution: "vitest-fetch-mock@npm:0.2.2" - dependencies: - cross-fetch: ^3.0.6 - peerDependencies: - vitest: ">=0.16.0" - checksum: fa160f301171cd45dbf7d782880b6b6063fc74b9dd1965ef9206545e812ca8696e6be76662afbac822c6bf850fbb66cf8fb066af646e0e159f5a87ab25c97a02 - languageName: node - linkType: hard - "vitest@npm:1.5.0": version: 1.5.0 resolution: "vitest@npm:1.5.0" @@ -9496,15 +8407,6 @@ __metadata: languageName: node linkType: hard -"w3c-xmlserializer@npm:^4.0.0": - version: 4.0.0 - resolution: "w3c-xmlserializer@npm:4.0.0" - dependencies: - xml-name-validator: ^4.0.0 - checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 - languageName: node - linkType: hard - "watskeburt@npm:4.0.2": version: 4.0.2 resolution: "watskeburt@npm:4.0.2" @@ -9521,13 +8423,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^4.0.2": - version: 4.0.2 - resolution: "webidl-conversions@npm:4.0.2" - checksum: c93d8dfe908a0140a4ae9c0ebc87a33805b416a33ee638a605b551523eec94a9632165e54632f6d57a39c5f948c4bab10e0e066525e9a4b87a79f0d04fbca374 - languageName: node - linkType: hard - "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -9535,22 +8430,6 @@ __metadata: languageName: node linkType: hard -"whatwg-encoding@npm:^2.0.0": - version: 2.0.0 - resolution: "whatwg-encoding@npm:2.0.0" - dependencies: - iconv-lite: 0.6.3 - checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 - languageName: node - linkType: hard - -"whatwg-mimetype@npm:^3.0.0": - version: 3.0.0 - resolution: "whatwg-mimetype@npm:3.0.0" - checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 - languageName: node - linkType: hard - "whatwg-url@npm:^11.0.0": version: 11.0.0 resolution: "whatwg-url@npm:11.0.0" @@ -9571,17 +8450,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^6.5.0": - version: 6.5.0 - resolution: "whatwg-url@npm:6.5.0" - dependencies: - lodash.sortby: ^4.7.0 - tr46: ^1.0.1 - webidl-conversions: ^4.0.2 - checksum: a10bd5e29f4382cd19789c2a7bbce25416e606b6fefc241c7fe34a2449de5bc5709c165bd13634eda433942d917ca7386a52841780b82dc37afa8141c31a8ebd - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -9706,35 +8574,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.11.0": - version: 8.16.0 - resolution: "ws@npm:8.16.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: feb3eecd2bae82fa8a8beef800290ce437d8b8063bdc69712725f21aef77c49cb2ff45c6e5e7fce622248f9c7abaee506bae0a9064067ffd6935460c7357321b - languageName: node - linkType: hard - -"xml-name-validator@npm:^4.0.0": - version: 4.0.0 - resolution: "xml-name-validator@npm:4.0.0" - checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad - languageName: node - linkType: hard - -"xmlchars@npm:^2.2.0": - version: 2.2.0 - resolution: "xmlchars@npm:2.2.0" - checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 - languageName: node - linkType: hard - "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8"