diff --git a/package.json b/package.json index 4d11841..b8c40af 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "conventional-changelog-cli": "^2.2.2", "conventional-github-releaser": "^3.1.5", "ospec": "^4.1.1", - "sinon": "^13.0.1", + "sinon": "^14.0.0", "source-map-support": "^0.5.21" }, "scripts": { diff --git a/src/__test__/alb.test.ts b/src/__test__/alb.test.ts index e884cc3..6cfc504 100644 --- a/src/__test__/alb.test.ts +++ b/src/__test__/alb.test.ts @@ -1,7 +1,7 @@ import { Context } from 'aws-lambda'; import o from 'ospec'; -import { LambdaAlbRequest } from '../request.alb.js'; -import { AlbExample, ApiGatewayExample, clone, CloudfrontExample } from './examples.js'; +import { LambdaAlbRequest } from '../http/request.alb.js'; +import { AlbExample, ApiGatewayExample, clone, CloudfrontExample, UrlExample } from './examples.js'; import { fakeLog } from './log.js'; o.spec('AlbGateway', () => { @@ -11,6 +11,7 @@ o.spec('AlbGateway', () => { o(LambdaAlbRequest.is(ApiGatewayExample)).equals(false); o(LambdaAlbRequest.is(CloudfrontExample)).equals(false); o(LambdaAlbRequest.is(AlbExample)).equals(true); + o(LambdaAlbRequest.is(UrlExample)).equals(false); }); o('should extract headers', () => { diff --git a/src/__test__/api.gateway.test.ts b/src/__test__/api.gateway.test.ts index 0e56a60..299c008 100644 --- a/src/__test__/api.gateway.test.ts +++ b/src/__test__/api.gateway.test.ts @@ -1,6 +1,6 @@ import { Context } from 'aws-lambda'; import o from 'ospec'; -import { LambdaApiGatewayRequest } from '../request.api.gateway.js'; +import { LambdaApiGatewayRequest } from '../http/request.api.gateway.js'; import { AlbExample, ApiGatewayExample, clone, CloudfrontExample } from './examples.js'; import { fakeLog } from './log.js'; diff --git a/src/__test__/cloudfront.test.ts b/src/__test__/cloudfront.test.ts index 4ae258c..d13ed2a 100644 --- a/src/__test__/cloudfront.test.ts +++ b/src/__test__/cloudfront.test.ts @@ -1,7 +1,7 @@ import { CloudFrontRequestEvent, Context } from 'aws-lambda'; import o from 'ospec'; -import { LambdaCloudFrontRequest } from '../request.cloudfront.js'; -import { AlbExample, ApiGatewayExample, clone, CloudfrontExample } from './examples.js'; +import { LambdaCloudFrontRequest } from '../http/request.cloudfront.js'; +import { AlbExample, ApiGatewayExample, clone, CloudfrontExample, UrlExample } from './examples.js'; import { fakeLog } from './log.js'; o.spec('CloudFront', () => { @@ -10,6 +10,7 @@ o.spec('CloudFront', () => { o(LambdaCloudFrontRequest.is(CloudfrontExample)).equals(true); o(LambdaCloudFrontRequest.is(AlbExample)).equals(false); o(LambdaCloudFrontRequest.is(ApiGatewayExample)).equals(false); + o(LambdaCloudFrontRequest.is(UrlExample)).equals(false); }); o('should extract headers', () => { diff --git a/src/__test__/examples.ts b/src/__test__/examples.ts index b13b434..e8ba90c 100644 --- a/src/__test__/examples.ts +++ b/src/__test__/examples.ts @@ -1,5 +1,6 @@ import 'source-map-support/register.js'; import { ALBEvent, APIGatewayProxyEvent, CloudFrontRequestEvent } from 'aws-lambda'; +import { UrlEvent } from '../http/request.function'; export const ApiGatewayExample: APIGatewayProxyEvent = { body: 'eyJ0ZXN0IjoiYm9keSJ9', @@ -154,6 +155,43 @@ export const AlbExample: ALBEvent = { isBase64Encoded: true, }; +export const UrlExample: UrlEvent = { + version: '2.0', + routeKey: '$default', + rawPath: '/v1/🦄/🌈/🦄.json', + rawQueryString: '%F0%9F%A6%84=abc123', + headers: { + 'x-amzn-trace-id': 'Root=1-624e71a0-114297900a437c050c74f1fe', + 'x-forwarded-proto': 'https', + host: 'fakeId.lambda-url.ap-southeast-2.on.aws', + 'x-forwarded-port': '443', + 'x-forwarded-for': '10.88.254.254', + 'accept-encoding': 'br,gzip', + 'x-amz-cf-id': '5jJe5RyAHtE6OmIFkedddTRlFpvHYZvGIwoWNEm9YJ0OUHOFVET_Pw==', + 'user-agent': 'Amazon CloudFront', + via: '2.0 db2406d2a95ec212c318a2e2518f9244.cloudfront.net (CloudFront)', + }, + requestContext: { + accountId: 'anonymous', + apiId: 'fakeId', + domainName: 'fakeId.lambda-url.ap-southeast-2.on.aws', + domainPrefix: 'fakeId', + http: { + method: 'GET', + path: '/v1/🦄/🌈/🦄.json', + protocol: 'HTTP/1.1', + sourceIp: '64.252.109.40', + userAgent: 'Amazon CloudFront', + }, + requestId: '6ffbc360-d84e-463c-a112-dcc6279cb4bb', + routeKey: '$default', + stage: '$default', + time: '07/Apr/2022:05:07:44 +0000', + timeEpoch: 1649308064171, + }, + isBase64Encoded: false, +}; + export function clone(c: T): T { return JSON.parse(JSON.stringify(c)); } diff --git a/src/__test__/readme.example.ts b/src/__test__/readme.example.ts index aff3e70..4ba4cbe 100644 --- a/src/__test__/readme.example.ts +++ b/src/__test__/readme.example.ts @@ -1,7 +1,7 @@ import { S3Event } from 'aws-lambda'; import { lf } from '../function.js'; import { LambdaRequest } from '../request.js'; -import { LambdaHttpResponse } from '../response.http.js'; +import { LambdaHttpResponse } from '../http/response.http.js'; export async function main(req: LambdaRequest): Promise { console.log('foo', req.id); diff --git a/src/__test__/request.test.ts b/src/__test__/request.test.ts index c27e250..d66739e 100644 --- a/src/__test__/request.test.ts +++ b/src/__test__/request.test.ts @@ -1,4 +1,4 @@ -import { LambdaAlbRequest } from '../request.alb.js'; +import { LambdaAlbRequest } from '../http/request.alb.js'; import { AlbExample, clone } from './examples.js'; import { fakeLog } from './log.js'; import o from 'ospec'; diff --git a/src/__test__/url.test.ts b/src/__test__/url.test.ts new file mode 100644 index 0000000..2286bbf --- /dev/null +++ b/src/__test__/url.test.ts @@ -0,0 +1,50 @@ +import { Context } from 'aws-lambda'; +import o from 'ospec'; +import { LambdaUrlRequest } from '../http/request.function.js'; +import { AlbExample, ApiGatewayExample, clone, CloudfrontExample, UrlExample } from './examples.js'; +import { fakeLog } from './log.js'; + +o.spec('FunctionUrl', () => { + const fakeContext = {} as Context; + + o('should match the event', () => { + o(LambdaUrlRequest.is(ApiGatewayExample)).equals(false); + o(LambdaUrlRequest.is(CloudfrontExample)).equals(false); + o(LambdaUrlRequest.is(AlbExample)).equals(false); + o(LambdaUrlRequest.is(UrlExample)).equals(true); + }); + + o('should extract headers', () => { + const req = new LambdaUrlRequest(UrlExample, fakeContext, fakeLog); + + o(req.header('accept-encoding')).equals('br,gzip'); + o(req.header('Accept-Encoding')).equals('br,gzip'); + }); + + o('should extract methods', () => { + const req = new LambdaUrlRequest(UrlExample, fakeContext, fakeLog); + o(req.method).equals('GET'); + }); + + o('should upper case method', () => { + const newReq = clone(UrlExample); + newReq.requestContext.http.method = 'post'; + const req = new LambdaUrlRequest(newReq, fakeContext, fakeLog); + o(req.method).equals('POST'); + }); + + o('should extract query parameters', () => { + const newReq = clone(UrlExample); + newReq.rawQueryString = 'api=abc123'; + + const req = new LambdaUrlRequest(newReq, fakeContext, fakeLog); + o(req.query.get('api')).deepEquals('abc123'); + o(req.query.getAll('api')).deepEquals(['abc123']); + }); + + o('should support utf8 paths and query', () => { + const req = new LambdaUrlRequest(UrlExample, fakeContext, fakeLog); + o(req.path).equals('/v1/🦄/🌈/🦄.json'); + o(req.query.get('🦄')).equals('abc123'); + }); +}); diff --git a/src/__test__/wrap.test.ts b/src/__test__/wrap.test.ts index 6847ecc..51f537b 100644 --- a/src/__test__/wrap.test.ts +++ b/src/__test__/wrap.test.ts @@ -4,11 +4,11 @@ import o from 'ospec'; import sinon from 'sinon'; import { lf } from '../function.js'; import { LambdaRequest } from '../request.js'; -import { LambdaHttpRequest } from '../request.http.js'; -import { LambdaHttpResponse } from '../response.http.js'; +import { LambdaHttpRequest } from '../http/request.http.js'; +import { LambdaHttpResponse } from '../http/response.http.js'; import { AlbExample, ApiGatewayExample, clone, CloudfrontExample } from './examples.js'; import { fakeLog } from './log.js'; -import { HttpMethods } from '../router.js'; +import { HttpMethods } from '../http/router.js'; function assertAlbResult(x: unknown): asserts x is ALBResult {} function assertCloudfrontResult(x: unknown): asserts x is CloudFrontResultResponse {} diff --git a/src/function.ts b/src/function.ts index cbf2243..ede53d3 100644 --- a/src/function.ts +++ b/src/function.ts @@ -4,12 +4,13 @@ import { LambdaResponse } from './response.js'; import { ApplicationJson, HttpHeader, HttpHeaderAmazon, HttpHeaderRequestId } from './header.js'; import { LogType } from './log.js'; import { LambdaRequest } from './request.js'; -import { LambdaAlbRequest } from './request.alb.js'; -import { LambdaApiGatewayRequest } from './request.api.gateway.js'; -import { LambdaCloudFrontRequest } from './request.cloudfront.js'; -import { HttpRequestEvent, HttpResponse, LambdaHttpRequest } from './request.http.js'; -import { LambdaHttpResponse } from './response.http.js'; -import { Router } from './router.js'; +import { LambdaAlbRequest } from './http/request.alb.js'; +import { LambdaApiGatewayRequest } from './http/request.api.gateway.js'; +import { LambdaCloudFrontRequest } from './http/request.cloudfront.js'; +import { HttpRequestEvent, HttpResponse, LambdaHttpRequest } from './http/request.http.js'; +import { LambdaHttpResponse } from './http/response.http.js'; +import { Router } from './http/router.js'; +import { LambdaUrlRequest } from './http/request.function.js'; export interface HttpStatus { statusCode: string; @@ -119,6 +120,7 @@ export class lf { static request(req: HttpRequestEvent, ctx: Context, log: LogType): LambdaHttpRequest { if (LambdaAlbRequest.is(req)) return new LambdaAlbRequest(req, ctx, log); + if (LambdaUrlRequest.is(req)) return new LambdaUrlRequest(req, ctx, log); if (LambdaApiGatewayRequest.is(req)) return new LambdaApiGatewayRequest(req, ctx, log); if (LambdaCloudFrontRequest.is(req)) return new LambdaCloudFrontRequest(req, ctx, log); throw new Error('Request is not a a ALB, ApiGateway or Cloudfront event'); diff --git a/src/request.alb.ts b/src/http/request.alb.ts similarity index 97% rename from src/request.alb.ts rename to src/http/request.alb.ts index 561277b..7aff375 100644 --- a/src/request.alb.ts +++ b/src/http/request.alb.ts @@ -1,6 +1,6 @@ import { ALBEvent, ALBResult } from 'aws-lambda'; import { URLSearchParams } from 'url'; -import { isRecord } from './request.js'; +import { isRecord } from '../request.js'; import { LambdaHttpRequest } from './request.http.js'; import { LambdaHttpResponse } from './response.http.js'; diff --git a/src/request.api.gateway.ts b/src/http/request.api.gateway.ts similarity index 90% rename from src/request.api.gateway.ts rename to src/http/request.api.gateway.ts index ddb1668..a5d3fc4 100644 --- a/src/request.api.gateway.ts +++ b/src/http/request.api.gateway.ts @@ -1,6 +1,6 @@ import { APIGatewayEvent, APIGatewayProxyResultV2 } from 'aws-lambda'; import { URLSearchParams } from 'url'; -import { isRecord } from './request.js'; +import { isRecord } from '../request.js'; import { LambdaHttpRequest } from './request.http.js'; import { LambdaHttpResponse } from './response.http.js'; @@ -17,12 +17,12 @@ export class LambdaApiGatewayRequest> extends L return { statusCode: res.status, body: res.body, - headers: this.toHeaders(res), + headers: LambdaApiGatewayRequest.toHeaders(res), isBase64Encoded: res.isBase64Encoded, }; } - toHeaders(res: LambdaHttpResponse): Record | undefined { + static toHeaders(res: LambdaHttpResponse): Record | undefined { if (res.headers.size === 0) return undefined; const obj: Record = {}; diff --git a/src/request.cloudfront.ts b/src/http/request.cloudfront.ts similarity index 98% rename from src/request.cloudfront.ts rename to src/http/request.cloudfront.ts index 0da6f69..5e32fda 100644 --- a/src/request.cloudfront.ts +++ b/src/http/request.cloudfront.ts @@ -1,6 +1,6 @@ import { CloudFrontRequestEvent, CloudFrontRequestResult } from 'aws-lambda'; import { URLSearchParams } from 'url'; -import { isRecord } from './request.js'; +import { isRecord } from '../request.js'; import { LambdaHttpRequest } from './request.http.js'; import { LambdaHttpResponse } from './response.http.js'; diff --git a/src/http/request.function.ts b/src/http/request.function.ts new file mode 100644 index 0000000..4af1458 --- /dev/null +++ b/src/http/request.function.ts @@ -0,0 +1,80 @@ +import { URLSearchParams } from 'url'; +import { isRecord } from '../request.js'; +import { LambdaApiGatewayRequest } from './request.api.gateway.js'; +import { LambdaHttpRequest } from './request.http.js'; +import { LambdaHttpResponse } from './response.http.js'; + +export interface UrlEvent { + version: '2.0'; + routeKey: string; + + rawPath: string; + /** Query string without '?' @example "api=abc123" */ + rawQueryString: string; + headers: Record; + requestContext: { + accountId: string; + apiId: string; + domainName: string; + domainPrefix: string; + requestId: string; + http: { + method: string; + path: string; + protocol: string; + sourceIp: string; + userAgent: string; + }; + routeKey: string; + stage: string; + time: string; + timeEpoch: number; + }; + isBase64Encoded: boolean; +} + +export interface UrlResult { + statusCode: number; + headers?: Record; + body: string; + isBase64Encoded: boolean; +} + +export class LambdaUrlRequest> extends LambdaHttpRequest { + toResponse(res: LambdaHttpResponse): UrlResult { + return { + statusCode: res.status, + body: res.body, + headers: LambdaApiGatewayRequest.toHeaders(res), + isBase64Encoded: res.isBase64Encoded, + }; + } + loadHeaders(): void { + for (const [key, value] of Object.entries(this.event.headers)) { + this.headers.set(key.toLowerCase(), value); + } + } + + loadQueryString(): URLSearchParams { + return new URLSearchParams(this.event.rawQueryString); + } + + get method(): string { + return this.event.requestContext.http.method.toUpperCase(); + } + get path(): string { + return this.event.rawPath; + } + + get isBase64Encoded(): boolean { + return this.event.isBase64Encoded; + } + + get body(): string | null { + return null; + } + + static is(x: unknown): x is UrlEvent { + return isRecord(x) && isRecord(x['requestContext']) && isRecord(x['requestContext']['http']); + } +} diff --git a/src/request.http.ts b/src/http/request.http.ts similarity index 92% rename from src/request.http.ts rename to src/http/request.http.ts index 6635c27..452d0ba 100644 --- a/src/request.http.ts +++ b/src/http/request.http.ts @@ -9,13 +9,14 @@ import { } from 'aws-lambda'; import * as ulid from 'ulid'; import { URLSearchParams } from 'url'; -import { ApplicationJson, HttpHeader, HttpHeaderRequestId } from './header.js'; -import { LogType } from './log.js'; -import { LambdaRequest } from './request.js'; +import { ApplicationJson, HttpHeader, HttpHeaderRequestId } from '../header.js'; +import { LogType } from '../log.js'; +import { LambdaRequest } from '../request.js'; +import { UrlEvent, UrlResult } from './request.function.js'; import { LambdaHttpResponse } from './response.http.js'; -export type HttpRequestEvent = ALBEvent | CloudFrontRequestEvent | APIGatewayProxyEvent; -export type HttpResponse = ALBResult | CloudFrontRequestResult | APIGatewayProxyResultV2; +export type HttpRequestEvent = ALBEvent | CloudFrontRequestEvent | APIGatewayProxyEvent | UrlEvent; +export type HttpResponse = ALBResult | CloudFrontRequestResult | APIGatewayProxyResultV2 | UrlResult; // TODO these should ideally be validated before being given to the api, should this force a ZOD validation step export interface RequestTypes { diff --git a/src/response.http.ts b/src/http/response.http.ts similarity index 85% rename from src/response.http.ts rename to src/http/response.http.ts index dcd3a13..89c7ee3 100644 --- a/src/response.http.ts +++ b/src/http/response.http.ts @@ -1,4 +1,4 @@ -import { ApplicationJson, HttpHeader, HttpHeaderRequestId } from './header.js'; +import { ApplicationJson, HttpHeader, HttpHeaderRequestId } from '../header.js'; export class LambdaHttpResponse { /** Http status code */ @@ -14,6 +14,10 @@ export class LambdaHttpResponse { return x instanceof LambdaHttpResponse; } + static ok(code = 200, status = 'Ok'): LambdaHttpResponse { + return new LambdaHttpResponse(code, status); + } + public constructor(status: number, description: string, headers?: Record) { this.status = status; this.statusDescription = description; @@ -37,14 +41,16 @@ export class LambdaHttpResponse { } /** Set a JSON output */ - json(obj: Record): void { + json(obj: Record): LambdaHttpResponse { this.buffer(JSON.stringify(obj), ApplicationJson); + return this; } /** Set the output type and the Content-Type header */ - buffer(buf: Buffer | string, contentType = ApplicationJson): void { + buffer(buf: Buffer | string, contentType = ApplicationJson): LambdaHttpResponse { this.header(HttpHeader.ContentType, contentType); this._body = buf; + return this; } get body(): string { diff --git a/src/router.ts b/src/http/router.ts similarity index 98% rename from src/router.ts rename to src/http/router.ts index af9d8bb..4556d8e 100644 --- a/src/router.ts +++ b/src/http/router.ts @@ -1,4 +1,4 @@ -import { execute } from './function.js'; +import { execute } from '../function.js'; import { LambdaHttpRequest, RequestTypes } from './request.http.js'; import { LambdaHttpResponse } from './response.http.js'; diff --git a/src/index.ts b/src/index.ts index e31af2d..1c752f8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,9 @@ export { lf } from './function.js'; -export { LambdaHttpRequest } from './request.http.js'; +export { LambdaHttpRequest } from './http/request.http.js'; export { LambdaRequest } from './request.js'; -export { LambdaHttpResponse } from './response.http.js'; +export { LambdaHttpResponse } from './http/response.http.js'; export { HttpHeader, HttpHeaderAmazon, HttpHeaderRequestId } from './header.js'; -export { LambdaAlbRequest } from './request.alb.js'; -export { LambdaApiGatewayRequest as LambdaApiRequest } from './request.api.gateway.js'; -export { LambdaCloudFrontRequest } from './request.cloudfront.js'; +export { LambdaAlbRequest } from './http/request.alb.js'; +export { LambdaApiGatewayRequest as LambdaApiRequest } from './http/request.api.gateway.js'; +export { LambdaCloudFrontRequest } from './http/request.cloudfront.js'; export { LogType } from './log.js'; diff --git a/yarn.lock b/yarn.lock index 231df91..211bf36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,19 +23,19 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@eslint/eslintrc@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" - integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== +"@eslint/eslintrc@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" + integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.1" - globals "^13.9.0" + espree "^9.3.2" + globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" - minimatch "^3.0.4" + minimatch "^3.1.2" strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.9.2": @@ -58,17 +58,17 @@ integrity sha512-3QupitQN91FwxBN+EEmlBRIcLEwoOG/RK+T2yZtIHuFxXmaPJabnVFnJG62/uzlMZw8gRwmyixUg5qTVuSnziQ== "@linzjs/style@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@linzjs/style/-/style-3.7.0.tgz#7d0d2a743dd0452500d32e098c5329f2125167dd" - integrity sha512-o9+7unEtH3ajaUr9MWDtjRCS2bWXYBwOd9BnyckJkyQhg/uhTh3VwgXhVnYi6EK7YsKIKDERz8DASIId52feow== + version "3.8.0" + resolved "https://registry.yarnpkg.com/@linzjs/style/-/style-3.8.0.tgz#62ca2e44099f788a8574e20ee3f9d32b1e97830c" + integrity sha512-DktM/Ig8nryrMSsqZ0dz6Yiy/Oq6Hdxi8seJk+ZsJdWA/vA2qinCGRzj8Jim7xLfiZqjXfhaUe7sB4Z51/l+Yw== dependencies: - "@typescript-eslint/eslint-plugin" "^5.14.0" - "@typescript-eslint/parser" "^5.14.0" - eslint "^8.10.0" + "@typescript-eslint/eslint-plugin" "^5.23.0" + "@typescript-eslint/parser" "^5.23.0" + eslint "^8.15.0" eslint-config-prettier "^8.5.0" eslint-plugin-prettier "^4.0.0" - prettier "^2.5.1" - typescript "^4.6.2" + prettier "^2.6.2" + typescript "^4.6.4" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -84,9 +84,9 @@ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" - integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" @@ -103,10 +103,10 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@>=5", "@sinonjs/fake-timers@^9.0.0": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.1.tgz#7b698e0b9d12d93611f06ee143c30ced848e2840" - integrity sha512-Wp5vwlZ0lOqpSYGKqr53INws9HLkt6JDc/pDZcPf7bchQnrXJMXPns8CXx0hFikMSGSWfvtvvpb2gtMVfkWagA== +"@sinonjs/fake-timers@>=5", "@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== dependencies: "@sinonjs/commons" "^1.7.0" @@ -125,14 +125,14 @@ integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@types/aws-lambda@^8.10.93": - version "8.10.93" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.93.tgz#3e2c80894122477040aabf29b7320556f5702a76" - integrity sha512-Vsyi9ogDAY3REZDjYnXMRJJa62SDvxHXxJI5nGDQdZW058dDE+av/anynN2rLKbCKXDRNw3D/sQmqxVflZFi4A== + version "8.10.97" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.97.tgz#9b2f2adfa63a215173a9da37604e4f65dd56cb98" + integrity sha512-BZk3qO4R2KN8Ts3eR6CW1n8LI46UOgv1KoDZjo8J9vOQvDeX/rsrv1H0BpEAMcSqZ1mLwTEyAMtlua5tlSn0kw== "@types/json-schema@^7.0.9": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/minimist@^1.2.0": version "1.2.1" @@ -140,9 +140,9 @@ integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node@^16.4.13": - version "16.4.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.13.tgz#7dfd9c14661edc65cccd43a29eb454174642370d" - integrity sha512-bLL69sKtd25w7p1nvg9pigE4gtKVpGTPojBFLMkGHXuUgap2sLqQt2qUnqmVCDfzGUL0DRNZP+1prIZJbMeAXg== + version "16.11.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.36.tgz#9ab9f8276987132ed2b225cace2218ba794fc751" + integrity sha512-FR5QJe+TaoZ2GsMHkjuwoNabr+UrJNRr2HNOo+r/7vhcuntM6Ee/pRPOnRhhL2XE9OOvX9VLEq+BcXl3VjNoWA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -150,9 +150,9 @@ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/ospec@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/ospec/-/ospec-4.0.3.tgz#a15d0f0a5e3eae481fa19bfe04b5ad621c19ace8" - integrity sha512-eE1PW3v2rsX4N9SeEWas7SDdOpESBCw7H5YwsCiFmt0fu5SXAXXz/n7gRCt8xVQpArm0Gsn47V3oPLGxvj8pzA== + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/ospec/-/ospec-4.0.4.tgz#24c4a7be8cda3cd4ba3178c96674d0f6f31dae54" + integrity sha512-MZMMHJ4kbwmXVZjSsCECPAe6J+BQmDx74dm5Wz/6f/Yk7Go1EEk2vuB2QLEmRBVuEGbMKOZlavtZ+NxIkdjiGA== "@types/pino@^7.0.5": version "7.0.5" @@ -173,85 +173,85 @@ resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== -"@typescript-eslint/eslint-plugin@^5.14.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz#c28ef7f2e688066db0b6a9d95fb74185c114fb9a" - integrity sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA== +"@typescript-eslint/eslint-plugin@^5.23.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz#e8ce050990e4d36cc200f2de71ca0d3eb5e77a31" + integrity sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg== dependencies: - "@typescript-eslint/scope-manager" "5.15.0" - "@typescript-eslint/type-utils" "5.15.0" - "@typescript-eslint/utils" "5.15.0" - debug "^4.3.2" + "@typescript-eslint/scope-manager" "5.25.0" + "@typescript-eslint/type-utils" "5.25.0" + "@typescript-eslint/utils" "5.25.0" + debug "^4.3.4" functional-red-black-tree "^1.0.1" - ignore "^5.1.8" + ignore "^5.2.0" regexpp "^3.2.0" - semver "^7.3.5" + semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.14.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.15.0.tgz#95f603f8fe6eca7952a99bfeef9b85992972e728" - integrity sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ== +"@typescript-eslint/parser@^5.23.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.25.0.tgz#fb533487147b4b9efd999a4d2da0b6c263b64f7f" + integrity sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA== dependencies: - "@typescript-eslint/scope-manager" "5.15.0" - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/typescript-estree" "5.15.0" - debug "^4.3.2" + "@typescript-eslint/scope-manager" "5.25.0" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/typescript-estree" "5.25.0" + debug "^4.3.4" -"@typescript-eslint/scope-manager@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz#d97afab5e0abf4018d1289bd711be21676cdd0ee" - integrity sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg== +"@typescript-eslint/scope-manager@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.25.0.tgz#e78f1484bca7e484c48782075219c82c6b77a09f" + integrity sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww== dependencies: - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/visitor-keys" "5.15.0" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/visitor-keys" "5.25.0" -"@typescript-eslint/type-utils@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz#d2c02eb2bdf54d0a645ba3a173ceda78346cf248" - integrity sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA== +"@typescript-eslint/type-utils@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.25.0.tgz#5750d26a5db4c4d68d511611e0ada04e56f613bc" + integrity sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw== dependencies: - "@typescript-eslint/utils" "5.15.0" - debug "^4.3.2" + "@typescript-eslint/utils" "5.25.0" + debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.15.0.tgz#c7bdd103843b1abae97b5518219d3e2a0d79a501" - integrity sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA== +"@typescript-eslint/types@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.25.0.tgz#dee51b1855788b24a2eceeae54e4adb89b088dd8" + integrity sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA== -"@typescript-eslint/typescript-estree@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" - integrity sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA== +"@typescript-eslint/typescript-estree@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.25.0.tgz#a7ab40d32eb944e3fb5b4e3646e81b1bcdd63e00" + integrity sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw== dependencies: - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/visitor-keys" "5.15.0" - debug "^4.3.2" - globby "^11.0.4" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/visitor-keys" "5.25.0" + debug "^4.3.4" + globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.5" + semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.15.0.tgz#468510a0974d3ced8342f37e6c662778c277f136" - integrity sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA== +"@typescript-eslint/utils@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.25.0.tgz#272751fd737733294b4ab95e16c7f2d4a75c2049" + integrity sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.15.0" - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/typescript-estree" "5.15.0" + "@typescript-eslint/scope-manager" "5.25.0" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/typescript-estree" "5.25.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz#5669739fbf516df060f978be6a6dce75855a8027" - integrity sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ== +"@typescript-eslint/visitor-keys@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.25.0.tgz#33aa5fdcc5cedb9f4c8828c6a019d58548d4474b" + integrity sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA== dependencies: - "@typescript-eslint/types" "5.15.0" - eslint-visitor-keys "^3.0.0" + "@typescript-eslint/types" "5.25.0" + eslint-visitor-keys "^3.3.0" JSONStream@^1.0.4: version "1.3.5" @@ -261,15 +261,15 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.7.1: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== add-stream@^1.0.0: version "1.0.0" @@ -348,7 +348,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1: +braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -429,9 +429,9 @@ chalk@^2.0.0: supports-color "^5.3.0" chalk@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -779,14 +779,7 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^4.3.2: +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -819,14 +812,14 @@ decompress-response@^3.3.0: mimic-response "^1.0.0" deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== dir-glob@^3.0.1: version "3.0.1" @@ -935,17 +928,17 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: +eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.10.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" - integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== +eslint@^8.15.0: + version "8.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.16.0.tgz#6d936e2d524599f2a86c708483b4c372c5d3bbae" + integrity sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA== dependencies: - "@eslint/eslintrc" "^1.2.1" + "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -956,14 +949,14 @@ eslint@^8.10.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.1" + espree "^9.3.2" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" - globals "^13.6.0" + globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -972,7 +965,7 @@ eslint@^8.10.0: json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" regexpp "^3.2.0" @@ -981,13 +974,13 @@ eslint@^8.10.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" - integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== +espree@^9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" + integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" + acorn "^8.7.1" + acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" esquery@^1.4.0: @@ -1010,9 +1003,9 @@ estraverse@^4.1.1: integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" @@ -1051,14 +1044,14 @@ fast-levenshtein@^2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-redact@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.0.1.tgz#d6015b971e933d03529b01333ba7f22c29961e92" - integrity sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" + integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -1108,9 +1101,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== from2@^2.1.1: version "2.3.0" @@ -1231,7 +1224,7 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob@^7.0.0, glob@^7.1.3: +glob@^7.0.0: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -1243,14 +1236,26 @@ glob@^7.0.0, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.6.0, globals@^13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" - integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.15.0: + version "13.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== dependencies: type-fest "^0.20.2" -globby@^11.0.4: +globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -1353,7 +1358,7 @@ http-cache-semantics@3.8.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -ignore@^5.1.8, ignore@^5.2.0: +ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -1441,14 +1446,7 @@ is-finite@^1.0.0: resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== -is-glob@^4.0.0, is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1784,12 +1782,12 @@ merge2@^1.3.0, merge2@^1.4.1: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" mimic-response@^1.0.0: version "1.0.1" @@ -1801,10 +1799,10 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -1930,9 +1928,9 @@ optionator@^0.9.1: word-wrap "^1.2.3" ospec@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ospec/-/ospec-4.1.1.tgz#52faa97b2de3bec5b447795b0b460da5c0ebb4a9" - integrity sha512-fgWIk1eLDidfB+ixTo3PL3HuuO6iX2LhgWxdnWwqRu2rJdpTowgeAP0RHgt3DSUVyszs964fMuq1tB7Ov2C38A== + version "4.1.6" + resolved "https://registry.yarnpkg.com/ospec/-/ospec-4.1.6.tgz#85748e3660bd91745972c7e10ae322f56543382f" + integrity sha512-Rq+kpRz/ombmIy+g0fAV7mwehtHyQT/J7IjmwVEBw6nbYPxycWgJS3c8BQ0n36kgWOIP5I2SE124cEdunqSH+g== dependencies: glob "^7.1.3" @@ -2093,10 +2091,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0, pify@^2.3.0: version "2.3.0" @@ -2133,7 +2131,7 @@ pino-std-serializers@^4.0.0: resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== -pino@*, pino@^7.9.1: +pino@*: version "7.9.1" resolved "https://registry.yarnpkg.com/pino/-/pino-7.9.1.tgz#7e6f401cac6e80b4eaee908ab90a05e48455cec2" integrity sha512-28+D7c5orCoScdcWtiPXrCA9tdVosBWrYQgVtPdYTyiuTt6u/+rbEtpJR+dtVG8k1flhv0H2f0XSkgGm+TdjqQ== @@ -2149,6 +2147,23 @@ pino@*, pino@^7.9.1: sonic-boom "^2.2.1" thread-stream "^0.13.0" +pino@^7.9.1: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -2166,10 +2181,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.5.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" - integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== +prettier@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" + integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== process-nextick-args@~2.0.0: version "2.0.1" @@ -2206,9 +2221,9 @@ queue-microtask@^1.2.2: integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quick-format-unescaped@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz#6d6b66b8207aa2b35eef12be1421bb24c428f652" - integrity sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg== + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== quick-lru@^1.0.0: version "1.1.0" @@ -2393,9 +2408,9 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-stable-stringify@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.0.tgz#d09eb692386d7faa846d78922605c67cc0ab9c1c" - integrity sha512-VFlmNrvZ44a0QnRY2yfEIUhbMh8BjTFWf2mRG/8mCEAKTfQYV8xxfn6P+00OLej0gznC5C+hfgcEF7AGrN5Stw== + version "2.3.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" + integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== semver-regex@^2.0.0: version "2.0.0" @@ -2412,13 +2427,20 @@ semver@^6.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.4, semver@^7.3.5: +semver@^7.3.4: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" +semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2445,13 +2467,13 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -sinon@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-13.0.1.tgz#2a568beca2084c48985dd98e276e065c81738e3c" - integrity sha512-8yx2wIvkBjIq/MGY1D9h1LMraYW+z1X0mb648KZnKSdvLasvDu7maa0dFaNYdTDczFgbjNw2tOmWdTk9saVfwQ== +sinon@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-14.0.0.tgz#203731c116d3a2d58dc4e3cbe1f443ba9382a031" + integrity sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw== dependencies: "@sinonjs/commons" "^1.8.3" - "@sinonjs/fake-timers" "^9.0.0" + "@sinonjs/fake-timers" "^9.1.2" "@sinonjs/samsam" "^6.1.1" diff "^5.0.0" nise "^5.1.1" @@ -2463,9 +2485,9 @@ slash@^3.0.0: integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== sonic-boom@^2.2.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.3.2.tgz#c21050ae3b369f8c3e7108a1eb707adcb3546a5b" - integrity sha512-qr2XGoMP23j85LfqOMxBEunlJ5P66hhy+3CLLTFtoLHYJuG89Qs+zUZC+d4xH1Jd4lfT7IkGaNa1z5kJt15fjA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== dependencies: atomic-sleep "^1.0.0" @@ -2646,9 +2668,16 @@ text-table@^0.2.0: integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= thread-stream@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.13.0.tgz#c68054bdea250c5d8d400caa3233a150d5461cca" - integrity sha512-kTMZeX4Dzlb1zZ00/01aerGaTw2i8NE4sWF0TvF1uXewRhCiUjCvatQkvxIvFqauWG2ADFS2Wpd3qBeYL9i3dg== + version "0.13.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.13.2.tgz#de8ea87584baee625c631947ec73494aa86131c8" + integrity sha512-woZFt0cLFkPdhsa+IGpRo1jiSouaHxMIljzTgt30CMjBWoUYbbcHqnunW5Yv+BXko9H05MVIcxMipI3Jblallw== + dependencies: + real-require "^0.1.0" + +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== dependencies: real-require "^0.1.0" @@ -2761,10 +2790,10 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -typescript@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== +typescript@^4.6.4: + version "4.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== uglify-js@^3.1.4: version "3.13.9"