From 2925e816bc29b2ac6fb8592afba753fe2091edef Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Tue, 7 Nov 2023 14:57:04 +0000 Subject: [PATCH 01/21] Add abstraction for infrastructure resources Update resource.test.ts --- packages/core/src/chart.ts | 13 +-- packages/core/src/index.ts | 2 + packages/core/src/resource-group.ts | 79 ++++++---------- packages/core/src/resource.ts | 73 +++++++++++++++ packages/core/src/state-getters.ts | 4 + packages/core/src/state.ts | 23 +++++ packages/core/src/types.ts | 15 ++++ packages/core/test/chart.test.ts | 27 ++++-- packages/core/test/resource-group.test.ts | 104 ++++++++++++++++++++++ packages/core/test/resource-group.ts | 85 ------------------ packages/core/test/resource.test.ts | 75 ++++++++++++++++ 11 files changed, 350 insertions(+), 150 deletions(-) create mode 100644 packages/core/src/resource.ts create mode 100644 packages/core/src/state-getters.ts create mode 100644 packages/core/src/state.ts create mode 100644 packages/core/src/types.ts create mode 100644 packages/core/test/resource-group.test.ts delete mode 100644 packages/core/test/resource-group.ts create mode 100644 packages/core/test/resource.test.ts diff --git a/packages/core/src/chart.ts b/packages/core/src/chart.ts index c46d672..f710364 100644 --- a/packages/core/src/chart.ts +++ b/packages/core/src/chart.ts @@ -1,10 +1,11 @@ import pako from "pako"; import { fromUint8Array } from "js-base64"; -import { ResourceGroup, Resource } from "./resource-group"; +import { ResourceGroup } from "./resource-group"; +import { Resource } from "./resource"; export const createMermaidFlowChart = ( - resourceGroups: ResourceGroup<{}>[], - resources: Resource<{}>[], + resourceGroups: ResourceGroup[], + resources: Resource[], ): string => { let mermaidString = "flowchart TD\n"; let connectionsString = ""; @@ -17,10 +18,10 @@ export const createMermaidFlowChart = ( mermaidString += ` end\n`; group.resources.forEach((resource) => { - Object.values(resource.dependencies).forEach((depId) => { - const depResource = resources.find((r) => r.id === depId); + (Object.values(resource.dependencies) as Resource[]).forEach((dep) => { + const depResource = resources.find((r) => r.id === dep.id); if (depResource) { - connectionsString += ` ${resource.type}_${resource.id} --> ${depResource.type}_${depId}\n`; + connectionsString += ` ${resource.type}_${resource.id} --> ${depResource.type}_${dep.id}\n`; } }); }); diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 464907a..4e0283e 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,2 +1,4 @@ export * from "./chart"; +export * from "./resource"; export * from "./resource-group"; +export * from "./state-getters"; diff --git a/packages/core/src/resource-group.ts b/packages/core/src/resource-group.ts index 1deff2e..dba69fe 100644 --- a/packages/core/src/resource-group.ts +++ b/packages/core/src/resource-group.ts @@ -1,75 +1,46 @@ -let resourceGroups: ResourceGroup<{}>[] = []; -let resources: Resource[] = []; - -let resourceGroupCounter = 0; -let resourceCounter = 0; - -export type Resource = { - id: number; - groupId: number; - type: string; - dependencies: Record; - config: Config; -}; - -export type ResourceOptions = { - type: string; +import { + resources, + resourceGroups, + getNextResourceCount, + getNextResourceGroupCount, +} from "./state"; +import { Resource } from "./resource"; + +export type ResourceGroupOptions = { dependencies?: Record; - config?: Config; + [key: string]: any; }; -export type ResourceGroupOptions = { +export abstract class ResourceGroup { type: string; - dependencies?: Record; - config?: Config; -}; - -export class ResourceGroup { id: number; - type: string; - platform: string; dependencies: Record; - config: Config; + config: Record; resources: Resource[]; - constructor(opts: ResourceGroupOptions) { - const { type, dependencies, config } = opts; - this.id = resourceGroupCounter++; + constructor(type: string, opts: ResourceGroupOptions) { + const { dependencies, ...config } = opts; this.type = type; - this.platform = "core"; + this.id = getNextResourceGroupCount(); this.dependencies = dependencies || {}; - this.config = config || ({} as Config); + this.config = config || {}; this.resources = []; resourceGroups.push(this); return this; } - createResource = ( - opts: ResourceOptions, - ) => { - const resource: Resource = { - id: resourceCounter++, - groupId: this.id, - type: opts.type, - dependencies: opts.dependencies || {}, - config: opts.config || ({} as ResourceConfig), - }; + add(resource: T) { + if (resources.includes(resource)) { + throw new Error(`Resource ${resource.type} has already been registered.`); + } + resource.id = getNextResourceCount(); + resource.groupId = this.id; resources.push(resource); this.resources.push(resource); return resource; - }; + } - findResourceByType = (type: string) => { + findResource(type: string) { return this.resources.find((r) => r.type === type); - }; + } } - -export const getResourceGroups = () => resourceGroups; -export const getResources = () => resources; - -export const reset = () => { - resources = []; - resourceGroups = []; - resourceCounter = 0; - resourceGroupCounter = 0; -}; diff --git a/packages/core/src/resource.ts b/packages/core/src/resource.ts new file mode 100644 index 0000000..bf66bea --- /dev/null +++ b/packages/core/src/resource.ts @@ -0,0 +1,73 @@ +import { OptionalIfAllPropertiesOptional } from "./types"; + +type ResourceOpts = OptionalIfAllPropertiesOptional<"config", C> & + OptionalIfAllPropertiesOptional<"dependencies", D>; + +export abstract class Resource< + Input = {}, + Output = {}, + Config = Input, + Dependencies extends Record = {}, +> { + abstract type: string; + config: Config; + dependencies: Dependencies; + id: number = -1; + groupId: number = -1; + output: Output = null as Output; + + constructor(opts: ResourceOpts) { + this.config = opts.config || ({} as Config); + this.dependencies = opts.dependencies || ({} as Dependencies); + return this; + } + + abstract getDeployInput(): Input; + abstract deploy(input: Input): Promise; +} + +export function createResourceFactory< + Input = {}, + Output = {}, + Dependencies extends Record = {}, +>() { + type DerivedResourceConstructor = new ( + opts: ResourceOpts, + ) => Resource; + + function factory< + DefaultConfig extends Partial = Partial, + Config = Omit & { + [P in keyof DefaultConfig]?: never; + }, + >(opts: { + type: string; + getIntrinsicConfig: (dependencies: Dependencies) => DefaultConfig; + deploy: (input: Input) => Promise; + }): DerivedResourceConstructor; + + function factory(opts: { + type: string; + deploy: (input: Input) => Promise; + }): DerivedResourceConstructor; + + function factory(opts: any) { + return class extends Resource { + type = opts.type; + + getDeployInput() { + if ("getIntrinsicConfig" in opts) { + return { + ...this.config, + ...opts.getIntrinsicConfig(this.dependencies), + } as Input; + } + return this.config as any as Input; + } + + deploy = opts.deploy; + }; + } + + return factory; +} diff --git a/packages/core/src/state-getters.ts b/packages/core/src/state-getters.ts new file mode 100644 index 0000000..dd9209a --- /dev/null +++ b/packages/core/src/state-getters.ts @@ -0,0 +1,4 @@ +import { resourceGroups, resources } from "./state"; + +export const getResourceGroups = () => resourceGroups; +export const getResources = () => resources; diff --git a/packages/core/src/state.ts b/packages/core/src/state.ts new file mode 100644 index 0000000..aa90bc6 --- /dev/null +++ b/packages/core/src/state.ts @@ -0,0 +1,23 @@ +import { Resource } from "./resource"; +import { ResourceGroup } from "./resource-group"; + +export let resourceGroups: ResourceGroup[] = []; +export let resources: Resource[] = []; + +let resourceGroupCounter = -1; +let resourceCounter = -1; + +export const getNextResourceCount = () => { + return ++resourceCounter; +}; + +export const getNextResourceGroupCount = () => { + return ++resourceGroupCounter; +}; + +export const reset = () => { + resources = []; + resourceGroups = []; + resourceCounter = -1; + resourceGroupCounter = -1; +}; diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts new file mode 100644 index 0000000..b5ef5a7 --- /dev/null +++ b/packages/core/src/types.ts @@ -0,0 +1,15 @@ +export type IfAllPropertiesOptional = T extends Partial + ? Partial extends T + ? Y + : N + : N; + +/** + * @param K - The record key + * @param T - The record value type + * @description If T is Partial, return { [key in K]?: T }, else return { [key in K]: T } + */ +export type OptionalIfAllPropertiesOptional< + K extends string, + T, +> = IfAllPropertiesOptional; diff --git a/packages/core/test/chart.test.ts b/packages/core/test/chart.test.ts index 7614248..559f3ec 100644 --- a/packages/core/test/chart.test.ts +++ b/packages/core/test/chart.test.ts @@ -1,7 +1,8 @@ import { expect, it } from "bun:test"; import { stripIndent } from "common-tags"; import { createMermaidFlowChart, createMermaidLiveUrl } from "src/chart"; -import { ResourceGroup, Resource } from "src/resource-group"; +import { ResourceGroup } from "src/resource-group"; +import { Resource } from "src/resource"; it("should create a mermaid flowchart string", () => { const { resourceGroups, resources } = getFixture(); @@ -49,7 +50,15 @@ function getFixture() { groupId: 0, config: {}, type: "ResourceTypeB", - dependencies: { dep1: 0 }, + dependencies: { + dep1: { + id: 0, + groupId: 0, + config: {}, + type: "ResourceTypeA", + dependencies: {}, + }, + }, }, ], }, @@ -67,7 +76,7 @@ function getFixture() { }, ], }, - ] as ResourceGroup<{}>[]; + ] as ResourceGroup[]; const resources = [ { @@ -82,7 +91,15 @@ function getFixture() { groupId: 0, config: {}, type: "ResourceTypeB", - dependencies: { dep1: 0 }, + dependencies: { + dep1: { + id: 0, + groupId: 0, + config: {}, + type: "ResourceTypeA", + dependencies: {}, + }, + }, }, { id: 2, @@ -91,7 +108,7 @@ function getFixture() { type: "ResourceTypeC", dependencies: {}, }, - ] as Resource<{}>[]; + ] as Resource[]; return { resourceGroups, resources }; } diff --git a/packages/core/test/resource-group.test.ts b/packages/core/test/resource-group.test.ts new file mode 100644 index 0000000..caaf326 --- /dev/null +++ b/packages/core/test/resource-group.test.ts @@ -0,0 +1,104 @@ +import { beforeEach, expect, it } from "bun:test"; +import { + createResourceFactory, + ResourceGroup, + getResourceGroups, + getResources, +} from "src"; +import { reset } from "src/state"; + +beforeEach(() => { + reset(); +}); + +class TestResourceGroup extends ResourceGroup { + platform = "test-platform"; +} + +const TestResource = createResourceFactory<{ a: number }, {}>()({ + type: "test-resource", + deploy() { + throw new Error("Method not implemented."); + }, +}); + +const testResource = new TestResource({ config: { a: 1 } }); +const testResource2 = new TestResource({ config: { a: 2 } }); + +it("creates a resource group", () => { + const resourceGroup = new TestResourceGroup("test-group", { a: 1 }); + expect(resourceGroup.id).toBe(0); + expect(resourceGroup.type).toBe("test-group"); + expect(resourceGroup.platform).toBe("test-platform"); + expect(resourceGroup.config).toEqual({ a: 1 }); + expect(resourceGroup.resources).toEqual([]); +}); + +it("stores resource groups in the global array", () => { + new TestResourceGroup("test-group", { type: "test1" }); + new TestResourceGroup("test-group-2", { type: "test2" }); + + expect(getResourceGroups()).toHaveLength(2); + expect(getResourceGroups()[0].type).toBe("test-group"); + expect(getResourceGroups()[1].type).toBe("test-group-2"); +}); + +it("creates a resource within a group", () => { + const resourceGroup = new TestResourceGroup("test-group", { a: 1 }); + const resource = resourceGroup.add(testResource); + + expect(resource.id).toBe(0); + expect(resource.type).toBe("test-resource"); + expect(resource.groupId).toBe(resourceGroup.id); + expect(resourceGroup.resources).toContain(resource); +}); + +it("stores resources in the global array", () => { + const resourceGroup = new TestResourceGroup("test-group", { a: 1 }); + resourceGroup.add(testResource); + resourceGroup.add(testResource2); + + expect(getResources()).toHaveLength(2); + expect((getResources()[0].config as any).a).toBe(1); + expect((getResources()[1].config as any).a).toBe(2); +}); + +it("increments resource group IDs", () => { + const rg1 = new TestResourceGroup("test-group", { type: "group1" }); + const rg2 = new TestResourceGroup("test-group", { type: "group2" }); + + expect(rg1.id).toBe(0); + expect(rg2.id).toBe(1); +}); + +it("finds a resource by type within a group", () => { + const resourceGroup = new TestResourceGroup("test-group", { type: "group1" }); + const resource = resourceGroup.add(testResource); + + expect(resourceGroup.findResource("test-resource")).toBe(resource); + expect(resourceGroup.findResource("nonExistentType")).toBeUndefined(); +}); + +it("references resources within groups", () => { + const rg1 = new TestResourceGroup("test-group", {}); + const r1 = rg1.add(testResource); + const r2 = rg1.add(testResource2); + + expect(getResources()).toContain(r1); + expect(getResources()).toContain(r2); +}); + +it("throws an error when adding an existing resource", () => { + const rg1 = new TestResourceGroup("test-group", {}); + rg1.add(testResource); + expect(() => rg1.add(testResource)).toThrow(); +}); + +it("increments resource IDs globally", () => { + const rg1 = new TestResourceGroup("test-group", {}); + const r1 = rg1.add(testResource); + const rg2 = new TestResourceGroup("test-group", {}); + const r2 = rg2.add(testResource2); + expect(r1.id).toBe(0); + expect(r2.id).toBe(1); +}); diff --git a/packages/core/test/resource-group.ts b/packages/core/test/resource-group.ts deleted file mode 100644 index 5221bab..0000000 --- a/packages/core/test/resource-group.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { beforeEach, expect, it } from "bun:test"; -import { - ResourceGroup, - getResourceGroups, - getResources, - reset, -} from "src/resource-group"; - -beforeEach(() => { - reset(); -}); - -it("creates a resource group", () => { - const resourceGroup = new ResourceGroup({ type: "test" }); - expect(resourceGroup.id).toBe(0); - expect(resourceGroup.type).toBe("test"); - expect(resourceGroup.platform).toBe("core"); - expect(resourceGroup.resources).toEqual([]); -}); - -it("stores resource groups in the global array", () => { - new ResourceGroup({ type: "test" }); - new ResourceGroup({ type: "test2" }); - - expect(getResourceGroups()).toHaveLength(2); - expect(getResourceGroups()[0].type).toBe("test"); - expect(getResourceGroups()[1].type).toBe("test2"); -}); - -it("creates a resource within a group", () => { - const resourceGroup = new ResourceGroup({ type: "testGroup" }); - const resource = resourceGroup.createResource({ type: "testResource" }); - - expect(resource.id).toBe(0); - expect(resource.type).toBe("testResource"); - expect(resource.groupId).toBe(resourceGroup.id); - expect(resourceGroup.resources).toContain(resource); -}); - -it("stores resources in the global array", () => { - const resourceGroup = new ResourceGroup({ type: "testGroup" }); - resourceGroup.createResource({ type: "testResource1" }); - resourceGroup.createResource({ type: "testResource2" }); - - expect(getResources()).toHaveLength(2); - expect(getResources()[0].type).toBe("testResource1"); - expect(getResources()[1].type).toBe("testResource2"); -}); - -it("finds a resource by type within a group", () => { - const resourceGroup = new ResourceGroup({ type: "testGroup" }); - const resource = resourceGroup.createResource({ type: "testResource" }); - - expect(resourceGroup.findResourceByType("testResource")).toBe(resource); - expect(resourceGroup.findResourceByType("nonexistentType")).toBeUndefined(); -}); - -it("increments resource group IDs", () => { - const rg1 = new ResourceGroup({ type: "group1" }); - const rg2 = new ResourceGroup({ type: "group2" }); - - expect(rg1.id).toBe(0); - expect(rg2.id).toBe(1); -}); - -it("increments resource IDs globally", () => { - const rg1 = new ResourceGroup({ type: "group1" }); - const r1 = rg1.createResource({ type: "resource1" }); - const rg2 = new ResourceGroup({ type: "group2" }); - const r2 = rg2.createResource({ type: "resource2" }); - const r3 = rg1.createResource({ type: "resource3" }); - - expect(r1.id).toBe(0); - expect(r2.id).toBe(1); - expect(r3.id).toBe(2); -}); - -it("references resources within groups", () => { - const rg1 = new ResourceGroup({ type: "group1" }); - const r1 = rg1.createResource({ type: "resource1" }); - const r2 = rg1.createResource({ type: "resource2" }); - - expect(getResources()).toContain(r1); - expect(getResources()).toContain(r2); -}); diff --git a/packages/core/test/resource.test.ts b/packages/core/test/resource.test.ts new file mode 100644 index 0000000..3cde4ec --- /dev/null +++ b/packages/core/test/resource.test.ts @@ -0,0 +1,75 @@ +import { expect, it, mock, test } from "bun:test"; +import { Resource, createResourceFactory } from "src"; + +it("creates a resource class factory", () => { + class TestResource extends Resource<{ name: string }, { id: number }> { + type = "test"; + getDeployInput() { + return { name: "testName" }; + } + deploy() { + return Promise.resolve({ id: 123 }); + } + } + + const resource = new TestResource({ + config: { name: "sampleName" }, + }); + + expect(resource.config.name).toBe("sampleName"); + expect(resource.type).toBe("test"); +}); + +test("merges config and intrinsic config", () => { + const factory = createResourceFactory<{ name: string }>(); + + const TestResource = factory({ + type: "testTypeWithOverride", + getIntrinsicConfig: () => ({ name: "intrinsicName" }), + deploy: () => Promise.resolve({}), + }); + + // @ts-expect-error + const resource = new TestResource({ config: { name: "overrideName" } }); + expect(resource.getDeployInput().name).toBe("intrinsicName"); +}); + +it("passes dependencies to getIntrinsicConfig", () => { + const getIntrinsicConfigMock = mock((deps) => deps.dep1); + + const childFactory = createResourceFactory< + { name: string }, + { id: number } + >(); + + const ChildResource = childFactory({ + type: "childType", + deploy: () => Promise.resolve({ id: 123 }), + }); + + const childResource = new ChildResource({ config: { name: "child-name" } }); + + const factory = createResourceFactory< + { name: string }, + { id: number }, + { dep1: Resource } + >(); + + const Resource = factory({ + type: "testTypeWithDeps", + deploy: () => Promise.resolve({ id: 123 }), + getIntrinsicConfig: getIntrinsicConfigMock, + }); + + const resource = new Resource({ + dependencies: { + dep1: childResource, + }, + }); + + resource.getDeployInput(); + + expect(getIntrinsicConfigMock.mock.calls[0]).toEqual([ + { dep1: childResource }, + ]); +}); From 4c8f5ba772528b99cab68fac82021b054170484a Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Tue, 7 Nov 2023 15:00:03 +0000 Subject: [PATCH 02/21] Add AWS IaC resources --- packages/aws.iac/package.json | 26 + packages/aws.iac/src/client.ts | 5 + packages/aws.iac/src/context.ts | 2 + packages/aws.iac/src/resources.ts | 2 + .../aws.iac/src/resources/api-gateway/api.ts | 23 + .../src/resources/api-gateway/index.ts | 4 + .../api-gateway/lambda-integration.ts | 46 + .../src/resources/api-gateway/route.ts | 37 + .../src/resources/api-gateway/stage.ts | 33 + .../aws.iac/src/resources/lambda/index.ts | 5 + .../resources/lambda/lambda-api-permission.ts | 46 + .../src/resources/lambda/lambda-log-group.ts | 33 + .../lambda/lambda-role-policy-attachment.ts | 37 + .../src/resources/lambda/lambda-role.ts | 31 + .../aws.iac/src/resources/lambda/lambda.ts | 39 + packages/aws.iac/src/templates/arn.ts | 9 + .../aws.iac/src/templates/iam.assume-role.ts | 13 + .../src/templates/iam.managed-policy.ts | 2 + packages/aws.iac/src/templates/iam.policy.ts | 13 + packages/aws.iac/src/utils/aws-clients.ts | 8 + packages/aws.iac/tsconfig.json | 6 + pnpm-lock.yaml | 4447 +++++++++++++---- 22 files changed, 3995 insertions(+), 872 deletions(-) create mode 100644 packages/aws.iac/package.json create mode 100644 packages/aws.iac/src/client.ts create mode 100644 packages/aws.iac/src/context.ts create mode 100644 packages/aws.iac/src/resources.ts create mode 100644 packages/aws.iac/src/resources/api-gateway/api.ts create mode 100644 packages/aws.iac/src/resources/api-gateway/index.ts create mode 100644 packages/aws.iac/src/resources/api-gateway/lambda-integration.ts create mode 100644 packages/aws.iac/src/resources/api-gateway/route.ts create mode 100644 packages/aws.iac/src/resources/api-gateway/stage.ts create mode 100644 packages/aws.iac/src/resources/lambda/index.ts create mode 100644 packages/aws.iac/src/resources/lambda/lambda-api-permission.ts create mode 100644 packages/aws.iac/src/resources/lambda/lambda-log-group.ts create mode 100644 packages/aws.iac/src/resources/lambda/lambda-role-policy-attachment.ts create mode 100644 packages/aws.iac/src/resources/lambda/lambda-role.ts create mode 100644 packages/aws.iac/src/resources/lambda/lambda.ts create mode 100644 packages/aws.iac/src/templates/arn.ts create mode 100644 packages/aws.iac/src/templates/iam.assume-role.ts create mode 100644 packages/aws.iac/src/templates/iam.managed-policy.ts create mode 100644 packages/aws.iac/src/templates/iam.policy.ts create mode 100644 packages/aws.iac/src/utils/aws-clients.ts create mode 100644 packages/aws.iac/tsconfig.json diff --git a/packages/aws.iac/package.json b/packages/aws.iac/package.json new file mode 100644 index 0000000..cc3b469 --- /dev/null +++ b/packages/aws.iac/package.json @@ -0,0 +1,26 @@ +{ + "name": "@notation/aws.iac", + "version": "0.0.1", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "scripts": { + "build": "tsup src/resources.ts src/client.ts --format cjs,esm --dts --clean", + "dev": "npm run build -- --watch" + }, + "exports": { + "./*": { + "require": "./dist/*.js", + "import": "./dist/*.mjs", + "types": "./dist/*.d.ts" + } + }, + "dependencies": { + "@aws-sdk/client-apigatewayv2": "^3.441.0", + "@aws-sdk/client-lambda": "^3.441.0", + "@aws-sdk/client-iam": "^3.441.0", + "@aws-sdk/client-cloudwatch-logs": "^3.441.0", + "@notation/core": "workspace:*", + "@types/aws-lambda": "^8.10.125" + } +} diff --git a/packages/aws.iac/src/client.ts b/packages/aws.iac/src/client.ts new file mode 100644 index 0000000..15be9f9 --- /dev/null +++ b/packages/aws.iac/src/client.ts @@ -0,0 +1,5 @@ +import { ResourceGroup } from "@notation/core"; + +export class AwsResourceGroup extends ResourceGroup { + platform = "aws"; +} diff --git a/packages/aws.iac/src/context.ts b/packages/aws.iac/src/context.ts new file mode 100644 index 0000000..b5d1364 --- /dev/null +++ b/packages/aws.iac/src/context.ts @@ -0,0 +1,2 @@ +export const region = "us-west-2"; +export const accountId = "123456789012"; diff --git a/packages/aws.iac/src/resources.ts b/packages/aws.iac/src/resources.ts new file mode 100644 index 0000000..e00d29a --- /dev/null +++ b/packages/aws.iac/src/resources.ts @@ -0,0 +1,2 @@ +export * as apiGateway from "./resources/api-gateway"; +export * as lambda from "./resources/lambda"; diff --git a/packages/aws.iac/src/resources/api-gateway/api.ts b/packages/aws.iac/src/resources/api-gateway/api.ts new file mode 100644 index 0000000..8946ef5 --- /dev/null +++ b/packages/aws.iac/src/resources/api-gateway/api.ts @@ -0,0 +1,23 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateApiCommand, + CreateApiCommandInput, + CreateApiCommandOutput, +} from "@aws-sdk/client-apigatewayv2"; +import { apiGatewayClient } from "src/utils/aws-clients"; + +export type ApiInput = CreateApiCommandInput; +export type ApiOutput = CreateApiCommandOutput; + +const createApiClass = createResourceFactory(); + +export const Api = createApiClass({ + type: "aws/api-gateway", + + async deploy(props: ApiInput) { + const command = new CreateApiCommand(props); + return apiGatewayClient.send(command); + }, +}); + +export type ApiInstance = InstanceType; diff --git a/packages/aws.iac/src/resources/api-gateway/index.ts b/packages/aws.iac/src/resources/api-gateway/index.ts new file mode 100644 index 0000000..055ce66 --- /dev/null +++ b/packages/aws.iac/src/resources/api-gateway/index.ts @@ -0,0 +1,4 @@ +export * from "./api"; +export * from "./lambda-integration"; +export * from "./route"; +export * from "./stage"; diff --git a/packages/aws.iac/src/resources/api-gateway/lambda-integration.ts b/packages/aws.iac/src/resources/api-gateway/lambda-integration.ts new file mode 100644 index 0000000..ceadb49 --- /dev/null +++ b/packages/aws.iac/src/resources/api-gateway/lambda-integration.ts @@ -0,0 +1,46 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateIntegrationCommand, + CreateIntegrationCommandInput, + CreateIntegrationCommandOutput, +} from "@aws-sdk/client-apigatewayv2"; +import { ApiInstance } from "./api"; +import { LambdaInstance } from "../lambda"; +import { getLambdaInvocationUri } from "src/templates/arn"; +import { apiGatewayClient } from "src/utils/aws-clients"; + +export type LambdaIntegrationInput = CreateIntegrationCommandInput; +export type LambdaIntegrationOutput = CreateIntegrationCommandOutput; +export type LambdaIntegrationDependencies = { + api: ApiInstance; + lambda: LambdaInstance; +}; + +const createLambdaIntegrationClass = createResourceFactory< + LambdaIntegrationInput, + LambdaIntegrationOutput, + LambdaIntegrationDependencies +>(); + +export const LambdaIntegration = createLambdaIntegrationClass({ + type: "aws/api-gateway/integration/lambda", + + getIntrinsicConfig: (dependencies) => ({ + ApiId: dependencies.api.output.ApiId, + IntegrationType: "AWS_PROXY", + IntegrationMethod: "POST", + IntegrationUri: getLambdaInvocationUri( + dependencies.lambda.output.FunctionArn!, + ), + PayloadFormatVersion: "2.0", + PassthroughBehavior: "WHEN_NO_MATCH", + ConnectionType: "INTERNET", + }), + + deploy: async (input) => { + const command = new CreateIntegrationCommand(input); + return apiGatewayClient.send(command); + }, +}); + +export type LambdaIntegrationInstance = InstanceType; diff --git a/packages/aws.iac/src/resources/api-gateway/route.ts b/packages/aws.iac/src/resources/api-gateway/route.ts new file mode 100644 index 0000000..673a321 --- /dev/null +++ b/packages/aws.iac/src/resources/api-gateway/route.ts @@ -0,0 +1,37 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateRouteCommand, + CreateRouteCommandInput, + CreateRouteCommandOutput, +} from "@aws-sdk/client-apigatewayv2"; +import { apiGatewayClient } from "src/utils/aws-clients"; +import { ApiInstance, LambdaIntegrationInstance } from "."; + +export type RouteInput = CreateRouteCommandInput; +export type RouteOutput = CreateRouteCommandOutput; +export type RouteDeps = { + api: ApiInstance; + lambdaIntegration: LambdaIntegrationInstance; +}; + +const createRouteClass = createResourceFactory< + RouteInput, + RouteOutput, + RouteDeps +>(); + +export const Route = createRouteClass({ + type: "aws/api-gateway/route", + + getIntrinsicConfig: (dependencies) => ({ + ApiId: dependencies.api.output.ApiId, + Target: `integrations/${dependencies.lambdaIntegration.output.IntegrationId}`, + }), + + deploy: async (props: RouteInput) => { + const command = new CreateRouteCommand(props); + return apiGatewayClient.send(command); + }, +}); + +export type RouteInstance = InstanceType; diff --git a/packages/aws.iac/src/resources/api-gateway/stage.ts b/packages/aws.iac/src/resources/api-gateway/stage.ts new file mode 100644 index 0000000..653924c --- /dev/null +++ b/packages/aws.iac/src/resources/api-gateway/stage.ts @@ -0,0 +1,33 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateStageCommand, + CreateStageCommandInput, + CreateStageCommandOutput, +} from "@aws-sdk/client-apigatewayv2"; +import { apiGatewayClient } from "src/utils/aws-clients"; +import { Api } from "./api"; + +export type StageInput = CreateStageCommandInput; +export type StageOutput = CreateStageCommandOutput; +export type StageDependencies = { router: InstanceType }; + +const createStageClass = createResourceFactory< + StageInput, + StageOutput, + StageDependencies +>(); + +export const Stage = createStageClass({ + type: "aws/api-gateway/stage", + + getIntrinsicConfig: (dependencies) => ({ + ApiId: dependencies.router.output.ApiId, + }), + + async deploy(props: StageInput) { + const command = new CreateStageCommand(props); + return apiGatewayClient.send(command); + }, +}); + +export type StageInstance = InstanceType; diff --git a/packages/aws.iac/src/resources/lambda/index.ts b/packages/aws.iac/src/resources/lambda/index.ts new file mode 100644 index 0000000..b1eed19 --- /dev/null +++ b/packages/aws.iac/src/resources/lambda/index.ts @@ -0,0 +1,5 @@ +export * from "./lambda-api-permission"; +export * from "./lambda-log-group"; +export * from "./lambda-role-policy-attachment"; +export * from "./lambda-role"; +export * from "./lambda"; diff --git a/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts b/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts new file mode 100644 index 0000000..ff0991c --- /dev/null +++ b/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts @@ -0,0 +1,46 @@ +import { createResourceFactory } from "@notation/core"; +import { + AddPermissionCommand, + AddPermissionCommandInput, + AddPermissionCommandOutput, +} from "@aws-sdk/client-lambda"; +import { lambdaClient } from "src/utils/aws-clients"; +import { generateApiGatewaySourceArn } from "src/templates/arn"; +import { ApiInstance } from "src/resources/api-gateway/api"; +import { LambdaInstance } from "./lambda"; + +export type LambdaApiGatewayPermissionInput = AddPermissionCommandInput; +export type LambdaApiGatewayPermissionOutput = AddPermissionCommandOutput; +export type LambdaApiGatewayPermissionDependencies = { + lambda: LambdaInstance; + api: ApiInstance; +}; + +const createLambdaApiGatewayPermissionClass = createResourceFactory< + LambdaApiGatewayPermissionInput, + LambdaApiGatewayPermissionOutput, + LambdaApiGatewayPermissionDependencies +>(); + +export const LambdaApiGatewayPermission = createLambdaApiGatewayPermissionClass( + { + type: "aws/lambda/permission/api-gateway", + + getIntrinsicConfig: (dependencies) => ({ + StatementId: "AllowExecutionFromAPIGateway", + Principal: "apigateway.amazonaws.com", + FunctionName: dependencies.lambda.output.FunctionName, + Action: "lambda:InvokeFunction", + SourceArn: generateApiGatewaySourceArn(dependencies.api.output.ApiId!), + }), + + deploy: async (config: LambdaApiGatewayPermissionInput) => { + const command = new AddPermissionCommand(config); + return lambdaClient.send(command); + }, + }, +); + +export type LambdaApiGatewayPermissionInstance = InstanceType< + typeof LambdaApiGatewayPermission +>; diff --git a/packages/aws.iac/src/resources/lambda/lambda-log-group.ts b/packages/aws.iac/src/resources/lambda/lambda-log-group.ts new file mode 100644 index 0000000..c40949d --- /dev/null +++ b/packages/aws.iac/src/resources/lambda/lambda-log-group.ts @@ -0,0 +1,33 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateLogGroupCommand, + CreateLogGroupCommandInput, + CreateLogGroupCommandOutput, +} from "@aws-sdk/client-cloudwatch-logs"; +import { cloudWatchLogsClient } from "src/utils/aws-clients"; +import { LambdaInstance } from "./lambda"; + +export type LambdaLogGroupInput = CreateLogGroupCommandInput; +export type LambdaLogGroupOutput = CreateLogGroupCommandOutput; +export type LambdaLogGroupDeps = { lambda: LambdaInstance }; + +const createLambdaLogGroupClass = createResourceFactory< + LambdaLogGroupInput, + LambdaLogGroupOutput, + LambdaLogGroupDeps +>(); + +export const LambdaLogGroup = createLambdaLogGroupClass({ + type: "aws/lambda/log-group", + + getIntrinsicConfig: (dependencies) => ({ + logGroupName: `/aws/lambda/${dependencies.lambda.output.FunctionName}`, + }), + + deploy: async (props: LambdaLogGroupInput) => { + const command = new CreateLogGroupCommand(props); + return cloudWatchLogsClient.send(command); + }, +}); + +export type LambdaLogGroupInstance = InstanceType; diff --git a/packages/aws.iac/src/resources/lambda/lambda-role-policy-attachment.ts b/packages/aws.iac/src/resources/lambda/lambda-role-policy-attachment.ts new file mode 100644 index 0000000..85e6350 --- /dev/null +++ b/packages/aws.iac/src/resources/lambda/lambda-role-policy-attachment.ts @@ -0,0 +1,37 @@ +import { createResourceFactory } from "@notation/core"; +import { + AttachRolePolicyCommand, + AttachRolePolicyCommandInput, + AttachRolePolicyCommandOutput, +} from "@aws-sdk/client-iam"; +import { iamClient } from "src/utils/aws-clients"; +import { LambdaIamRoleInstance } from "./lambda-role"; + +export type LambdaRolePolicyAttachmentInput = AttachRolePolicyCommandInput; +export type LambdaRolePolicyAttachmentOutput = AttachRolePolicyCommandOutput; +export type LambdaRolePolicyAttachmentDeps = { role: LambdaIamRoleInstance }; + +const createLambdaRolePolicyAttachmentClass = createResourceFactory< + LambdaRolePolicyAttachmentInput, + LambdaRolePolicyAttachmentOutput, + LambdaRolePolicyAttachmentDeps +>(); + +export const LambdaRolePolicyAttachment = createLambdaRolePolicyAttachmentClass( + { + type: "aws/lambda/policy-attachment", + + getIntrinsicConfig: (dependencies) => ({ + RoleName: dependencies.role.output.Role!.RoleName, + }), + + deploy: async (props: LambdaRolePolicyAttachmentInput) => { + const command = new AttachRolePolicyCommand(props); + return iamClient.send(command); + }, + }, +); + +export type LambdaRolePolicyAttachmentInstance = InstanceType< + typeof LambdaRolePolicyAttachment +>; diff --git a/packages/aws.iac/src/resources/lambda/lambda-role.ts b/packages/aws.iac/src/resources/lambda/lambda-role.ts new file mode 100644 index 0000000..60bb4e8 --- /dev/null +++ b/packages/aws.iac/src/resources/lambda/lambda-role.ts @@ -0,0 +1,31 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateRoleCommand, + CreateRoleCommandInput, + CreateRoleCommandOutput, +} from "@aws-sdk/client-iam"; +import { iamClient } from "src/utils/aws-clients"; +import { lambdaTrustPolicy } from "src/templates/iam.policy"; + +export type LambdaIamRoleInput = CreateRoleCommandInput; +export type LambdaIamRoleOutput = CreateRoleCommandOutput; + +const createLambdaIamRoleClass = createResourceFactory< + LambdaIamRoleInput, + LambdaIamRoleOutput +>(); + +export const LambdaIamRole = createLambdaIamRoleClass({ + type: "aws/lambda/role", + + getIntrinsicConfig: () => ({ + AssumeRolePolicyDocument: JSON.stringify(lambdaTrustPolicy), + }), + + deploy: async (props: LambdaIamRoleInput) => { + const command = new CreateRoleCommand(props); + return iamClient.send(command); + }, +}); + +export type LambdaIamRoleInstance = InstanceType; diff --git a/packages/aws.iac/src/resources/lambda/lambda.ts b/packages/aws.iac/src/resources/lambda/lambda.ts new file mode 100644 index 0000000..a182449 --- /dev/null +++ b/packages/aws.iac/src/resources/lambda/lambda.ts @@ -0,0 +1,39 @@ +import { createResourceFactory } from "@notation/core"; +import { + CreateFunctionCommand, + CreateFunctionCommandInput, + CreateFunctionCommandOutput, +} from "@aws-sdk/client-lambda"; +import { LambdaIamRoleInstance, LambdaRolePolicyAttachmentInstance } from "./"; +import { lambdaClient } from "src/utils/aws-clients"; + +export type LambdaInput = CreateFunctionCommandInput; +export type LambdaOutput = CreateFunctionCommandOutput; +export type LambdaDeps = { role: LambdaIamRoleInstance } & LambdaImplicitDeps; + +type LambdaImplicitDeps = { + policyAttachment: LambdaRolePolicyAttachmentInstance; +}; + +const createLambdaClass = createResourceFactory< + LambdaInput, + LambdaOutput, + LambdaDeps +>(); + +export const Lambda = createLambdaClass({ + type: "aws/lambda", + + getIntrinsicConfig: (dependencies) => ({ + Role: dependencies.role.output.Role!.Arn, + }), + + deploy: async (props: LambdaInput) => { + const command = new CreateFunctionCommand(props); + return lambdaClient.send(command); + }, + + retryOn: ["InvalidParameterValueException"], +}); + +export type LambdaInstance = InstanceType; diff --git a/packages/aws.iac/src/templates/arn.ts b/packages/aws.iac/src/templates/arn.ts new file mode 100644 index 0000000..4eda4d1 --- /dev/null +++ b/packages/aws.iac/src/templates/arn.ts @@ -0,0 +1,9 @@ +import { region, accountId } from "src/context"; + +export const getLambdaInvocationUri = (arn: string) => { + return `arn:aws:apigateway:${region}:lambda:path/2015-03-31/functions/${arn}/invocations`; +}; + +export const generateApiGatewaySourceArn = (apiId: string) => { + return `arn:aws:execute-api:${region}:${accountId}:${apiId}/*/*`; +}; diff --git a/packages/aws.iac/src/templates/iam.assume-role.ts b/packages/aws.iac/src/templates/iam.assume-role.ts new file mode 100644 index 0000000..65e048d --- /dev/null +++ b/packages/aws.iac/src/templates/iam.assume-role.ts @@ -0,0 +1,13 @@ +export function assumeRolePolicyForPrincipal(principal: string) { + return { + Version: "2012-10-17", + Statement: [ + { + Sid: "AllowAssumeRole", + Effect: "Allow", + Principal: principal, + Action: "sts:AssumeRole", + }, + ], + }; +} diff --git a/packages/aws.iac/src/templates/iam.managed-policy.ts b/packages/aws.iac/src/templates/iam.managed-policy.ts new file mode 100644 index 0000000..060e11f --- /dev/null +++ b/packages/aws.iac/src/templates/iam.managed-policy.ts @@ -0,0 +1,2 @@ +export const AWSLambdaBasicExecutionRole = + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"; diff --git a/packages/aws.iac/src/templates/iam.policy.ts b/packages/aws.iac/src/templates/iam.policy.ts new file mode 100644 index 0000000..fc0250a --- /dev/null +++ b/packages/aws.iac/src/templates/iam.policy.ts @@ -0,0 +1,13 @@ +export const lambdaTrustPolicy = { + Version: "2012-10-17", + Statement: [ + { + Sid: "AllowAssumeRole", + Effect: "Allow", + Principal: { + Service: "lambda.amazonaws.com", + }, + Action: "sts:AssumeRole", + }, + ], +}; diff --git a/packages/aws.iac/src/utils/aws-clients.ts b/packages/aws.iac/src/utils/aws-clients.ts new file mode 100644 index 0000000..ae21916 --- /dev/null +++ b/packages/aws.iac/src/utils/aws-clients.ts @@ -0,0 +1,8 @@ +import { ApiGatewayV2Client } from "@aws-sdk/client-apigatewayv2"; +import { LambdaClient } from "@aws-sdk/client-lambda"; +import { IAMClient } from "@aws-sdk/client-iam"; +import { region } from "src/context"; + +export const lambdaClient = new LambdaClient({ region }); +export const apiGatewayClient = new ApiGatewayV2Client({ region }); +export const iamClient = new IAMClient({ region }); diff --git a/packages/aws.iac/tsconfig.json b/packages/aws.iac/tsconfig.json new file mode 100644 index 0000000..b667b19 --- /dev/null +++ b/packages/aws.iac/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "tsconfig/base.json", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fdfe5ab..a441c7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,17 +1,16 @@ -lockfileVersion: '6.0' +lockfileVersion: "6.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: - .: dependencies: - '@changesets/cli': + "@changesets/cli": specifier: ^2.26.2 version: 2.26.2 - '@types/node': + "@types/node": specifier: ^20.7.0 version: 20.7.0 bun-types: @@ -44,34 +43,39 @@ importers: packages/aws: dependencies: - '@notation/core': - specifier: workspace:* - version: link:../core - '@types/aws-lambda': - specifier: ^8.10.125 - version: 8.10.125 + packages/aws.iac: + specifiers: + "@aws-sdk/client-apigatewayv2": ^3.441.0 + "@aws-sdk/client-cloudwatch-logs": ^3.441.0 + "@aws-sdk/client-iam": ^3.441.0 + "@aws-sdk/client-lambda": ^3.441.0 + "@notation/core": workspace:* + "@types/aws-lambda": ^8.10.125 + dependencies: + "@aws-sdk/client-apigatewayv2": 3.441.0 + "@aws-sdk/client-cloudwatch-logs": 3.445.0 + "@aws-sdk/client-iam": 3.441.0 + "@aws-sdk/client-lambda": 3.441.0 + "@notation/core": link:../core + "@types/aws-lambda": 8.10.125 packages/cli: - dependencies: - '@notation/core': - specifier: workspace:* - version: link:../core - '@notation/esbuild-plugins': - specifier: workspace:* - version: link:../esbuild-plugins - commander: - specifier: ^11.0.0 - version: 11.0.0 - esbuild: - specifier: ^0.19.3 - version: 0.19.3 - glob: - specifier: ^10.3.10 - version: 10.3.10 + specifiers: + "@notation/core": workspace:* + "@notation/esbuild-plugins": workspace:* + commander: ^11.0.0 + esbuild: ^0.19.3 + glob: ^10.3.10 + dependencies: + "@notation/core": link:../core + "@notation/esbuild-plugins": link:../esbuild-plugins + commander: 11.0.0 + esbuild: 0.19.3 + glob: 10.3.10 packages/core: dependencies: - '@types/pako': + "@types/pako": specifier: ^2.0.2 version: 2.0.2 js-base64: @@ -81,7 +85,7 @@ importers: specifier: ^2.1.0 version: 2.1.0 devDependencies: - '@types/common-tags': + "@types/common-tags": specifier: ^1.8.2 version: 1.8.2 common-tags: @@ -97,7 +101,7 @@ importers: specifier: ^5.2.2 version: 5.2.2 devDependencies: - '@types/common-tags': + "@types/common-tags": specifier: ^1.8.2 version: 1.8.2 common-tags: @@ -108,60 +112,944 @@ importers: test/compiler.test.app: dependencies: - '@notation/aws': + "@notation/aws": specifier: workspace:* version: link:../../packages/aws - '@notation/cli': + "@notation/cli": specifier: workspace:* version: link:../../packages/cli - '@notation/core': + "@notation/core": specifier: workspace:* version: link:../../packages/core devDependencies: - '@types/node': + "@types/node": specifier: ^20.8.4 version: 20.8.8 packages: + /@aws-crypto/crc32/3.0.0: + resolution: + { + integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==, + } + dependencies: + "@aws-crypto/util": 3.0.0 + "@aws-sdk/types": 3.433.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/ie11-detection/3.0.0: + resolution: + { + integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==, + } + dependencies: + tslib: 1.14.1 + dev: false + + /@aws-crypto/sha256-browser/3.0.0: + resolution: + { + integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==, + } + dependencies: + "@aws-crypto/ie11-detection": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-crypto/supports-web-crypto": 3.0.0 + "@aws-crypto/util": 3.0.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-locate-window": 3.310.0 + "@aws-sdk/util-utf8-browser": 3.259.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/sha256-js/3.0.0: + resolution: + { + integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==, + } + dependencies: + "@aws-crypto/util": 3.0.0 + "@aws-sdk/types": 3.433.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/supports-web-crypto/3.0.0: + resolution: + { + integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==, + } + dependencies: + tslib: 1.14.1 + dev: false + + /@aws-crypto/util/3.0.0: + resolution: + { + integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==, + } + dependencies: + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-utf8-browser": 3.259.0 + tslib: 1.14.1 + dev: false + + /@aws-sdk/client-apigatewayv2/3.441.0: + resolution: + { + integrity: sha512-DbplhsMLLS6JqmQDblQC3MpFHUL21CcnKw2b2qQ4/bZutS93+5JmLO+xsWCNwyGxzLyji3OGonaCmk2Zh/RPeA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.441.0 + "@aws-sdk/core": 3.441.0 + "@aws-sdk/credential-provider-node": 3.441.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-stream": 2.0.17 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-cloudwatch-logs/3.445.0: + resolution: + { + integrity: sha512-Npc6vHogjcvM/lHTVtCTLAb8TirDClzb6V9iV5vlxS9X3AzAIQjvS7Iq7zUNd5o5I2yosc2QKLNlTeL02enMgA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.445.0 + "@aws-sdk/core": 3.445.0 + "@aws-sdk/credential-provider-node": 3.445.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + uuid: 8.3.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-iam/3.441.0: + resolution: + { + integrity: sha512-kwokUFBWWycGjhCzZTDblAS+x/hjYhLyel+Eb80wz0/tZi+pQ1bDbjkc4r4f6l1YiZ0YC2Y2A7eMVBczp51ogA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.441.0 + "@aws-sdk/core": 3.441.0 + "@aws-sdk/credential-provider-node": 3.441.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + "@smithy/util-waiter": 2.0.12 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-lambda/3.441.0: + resolution: + { + integrity: sha512-Ory1rjbRn+Pa5u95ffSbzKEm7PQhkVeL8MtypZPcm7mBI6nPhIyFRk+Ua7yL2tw0uo6TgAqUMA+YEpGxfU7/ig==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.441.0 + "@aws-sdk/core": 3.441.0 + "@aws-sdk/credential-provider-node": 3.441.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/eventstream-serde-browser": 2.0.12 + "@smithy/eventstream-serde-config-resolver": 2.0.12 + "@smithy/eventstream-serde-node": 2.0.12 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-stream": 2.0.17 + "@smithy/util-utf8": 2.0.0 + "@smithy/util-waiter": 2.0.12 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sso/3.441.0: + resolution: + { + integrity: sha512-gndGymu4cEIN7WWhQ67RO0JMda09EGBlay2L8IKCHBK/65Y34FHUX1tCNbO2qezEzsi6BPW5o2n53Rd9QqpHUw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/core": 3.441.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sso/3.445.0: + resolution: + { + integrity: sha512-me4LvqNnu6kxi+sW7t0AgMv1Yi64ikas0x2+5jv23o6Csg32w0S0xOjCTKQYahOA5CMFunWvlkFIfxbqs+Uo7w==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/core": 3.445.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sts/3.441.0: + resolution: + { + integrity: sha512-GL0Cw2v7XL1cn0T+Sk5VHLlgBJoUdMsysXsHa1mFdk0l6XHMAAnwXVXiNnjmoDSPrG0psz7dL2AKzPVRXbIUjA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/core": 3.441.0 + "@aws-sdk/credential-provider-node": 3.441.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-sdk-sts": 3.433.0 + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sts/3.445.0: + resolution: + { + integrity: sha512-ogbdqrS8x9O5BTot826iLnTQ6i4/F5BSi/74gycneCxYmAnYnyUBNOWVnynv6XZiEWyDJQCU2UtMd52aNGW1GA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/core": 3.445.0 + "@aws-sdk/credential-provider-node": 3.445.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-sdk-sts": 3.433.0 + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/protocol-http": 3.0.8 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/core/3.441.0: + resolution: + { + integrity: sha512-gV0eQwR0VnSPUYAbgDkbBtfXbSpZgl/K6UB13DP1IFFjQYbF/BxYwvcQe4jHoPOBifSgjEbl8MfOOeIyI7k9vg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/smithy-client": 2.1.12 + dev: false + + /@aws-sdk/core/3.445.0: + resolution: + { + integrity: sha512-6GYLElUG1QTOdmXG8zXa+Ull9IUeSeItKDYHKzHYfIkbsagMfYlf7wm9XIYlatjtgodNfZ3gPHAJfRyPmwKrsg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/smithy-client": 2.1.12 + tslib: 2.6.2 + dev: false + + /@aws-sdk/credential-provider-env/3.433.0: + resolution: + { + integrity: sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/property-provider": 2.0.13 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/credential-provider-ini/3.441.0: + resolution: + { + integrity: sha512-SQipQYxYqDUuSOfIhDmaTdwPTcndGQotGZXWJl56mMWqAhU8MkwjK+oMf3VgRt/umJC0QwUCF5HUHIj7gSB1JA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/credential-provider-env": 3.433.0 + "@aws-sdk/credential-provider-process": 3.433.0 + "@aws-sdk/credential-provider-sso": 3.441.0 + "@aws-sdk/credential-provider-web-identity": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@smithy/credential-provider-imds": 2.0.18 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-ini/3.445.0: + resolution: + { + integrity: sha512-R7IYSGjNZ5KKJwQJ2HNPemjpAMWvdce91i8w+/aHfqeGfTXrmYJu99PeGRyyBTKEumBaojyjTRvmO8HzS+/l7g==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/credential-provider-env": 3.433.0 + "@aws-sdk/credential-provider-process": 3.433.0 + "@aws-sdk/credential-provider-sso": 3.445.0 + "@aws-sdk/credential-provider-web-identity": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@smithy/credential-provider-imds": 2.0.18 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-node/3.441.0: + resolution: + { + integrity: sha512-WB9p37yHq6fGJt6Vll29ijHbkh9VDbPM/n5ns73bTAgFD7R0ht5kPmdmHGQA6m3RKjcHLPbymQ3lXykkMwWf/Q==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/credential-provider-env": 3.433.0 + "@aws-sdk/credential-provider-ini": 3.441.0 + "@aws-sdk/credential-provider-process": 3.433.0 + "@aws-sdk/credential-provider-sso": 3.441.0 + "@aws-sdk/credential-provider-web-identity": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@smithy/credential-provider-imds": 2.0.18 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-node/3.445.0: + resolution: + { + integrity: sha512-zI4k4foSjQRKNEsouculRcz7IbLfuqdFxypDLYwn+qPNMqJwWJ7VxOOeBSPUpHFcd7CLSfbHN2JAhQ7M02gPTA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/credential-provider-env": 3.433.0 + "@aws-sdk/credential-provider-ini": 3.445.0 + "@aws-sdk/credential-provider-process": 3.433.0 + "@aws-sdk/credential-provider-sso": 3.445.0 + "@aws-sdk/credential-provider-web-identity": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@smithy/credential-provider-imds": 2.0.18 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-process/3.433.0: + resolution: + { + integrity: sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/credential-provider-sso/3.441.0: + resolution: + { + integrity: sha512-pTg16G+62mWCE8yGKuQnEBqPdpG5g71remf2jUqXaI1c7GCzbnkQDV9eD4DaAGOvzIs0wo9zAQnS2kVDPFlCYA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/client-sso": 3.441.0 + "@aws-sdk/token-providers": 3.438.0 + "@aws-sdk/types": 3.433.0 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-sso/3.445.0: + resolution: + { + integrity: sha512-gJz7kAiDecdhtApgXnxfZsXKsww8BnifDF9MAx9Dr4X6no47qYsCCS3XPuEyRiF9VebXvHOH0H260Zp3bVyniQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/client-sso": 3.445.0 + "@aws-sdk/token-providers": 3.438.0 + "@aws-sdk/types": 3.433.0 + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-web-identity/3.433.0: + resolution: + { + integrity: sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/property-provider": 2.0.13 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/middleware-host-header/3.433.0: + resolution: + { + integrity: sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/protocol-http": 3.0.8 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/middleware-logger/3.433.0: + resolution: + { + integrity: sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/middleware-recursion-detection/3.433.0: + resolution: + { + integrity: sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/protocol-http": 3.0.8 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/middleware-sdk-sts/3.433.0: + resolution: + { + integrity: sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/middleware-signing": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/middleware-signing/3.433.0: + resolution: + { + integrity: sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/property-provider": 2.0.13 + "@smithy/protocol-http": 3.0.8 + "@smithy/signature-v4": 2.0.12 + "@smithy/types": 2.4.0 + "@smithy/util-middleware": 2.0.5 + tslib: 2.6.2 + dev: false + + /@aws-sdk/middleware-user-agent/3.438.0: + resolution: + { + integrity: sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@smithy/protocol-http": 3.0.8 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/region-config-resolver/3.433.0: + resolution: + { + integrity: sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/node-config-provider": 2.1.3 + "@smithy/types": 2.4.0 + "@smithy/util-config-provider": 2.0.0 + "@smithy/util-middleware": 2.0.5 + tslib: 2.6.2 + dev: false + + /@aws-sdk/token-providers/3.438.0: + resolution: + { + integrity: sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/middleware-host-header": 3.433.0 + "@aws-sdk/middleware-logger": 3.433.0 + "@aws-sdk/middleware-recursion-detection": 3.433.0 + "@aws-sdk/middleware-user-agent": 3.438.0 + "@aws-sdk/region-config-resolver": 3.433.0 + "@aws-sdk/types": 3.433.0 + "@aws-sdk/util-endpoints": 3.438.0 + "@aws-sdk/util-user-agent-browser": 3.433.0 + "@aws-sdk/util-user-agent-node": 3.437.0 + "@smithy/config-resolver": 2.0.16 + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/hash-node": 2.0.12 + "@smithy/invalid-dependency": 2.0.12 + "@smithy/middleware-content-length": 2.0.14 + "@smithy/middleware-endpoint": 2.1.3 + "@smithy/middleware-retry": 2.0.18 + "@smithy/middleware-serde": 2.0.12 + "@smithy/middleware-stack": 2.0.6 + "@smithy/node-config-provider": 2.1.3 + "@smithy/node-http-handler": 2.1.8 + "@smithy/property-provider": 2.0.13 + "@smithy/protocol-http": 3.0.8 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-base64": 2.0.0 + "@smithy/util-body-length-browser": 2.0.0 + "@smithy/util-body-length-node": 2.1.0 + "@smithy/util-defaults-mode-browser": 2.0.16 + "@smithy/util-defaults-mode-node": 2.0.21 + "@smithy/util-endpoints": 1.0.2 + "@smithy/util-retry": 2.0.5 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/types/3.433.0: + resolution: + { + integrity: sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/util-endpoints/3.438.0: + resolution: + { + integrity: sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/util-endpoints": 1.0.2 + tslib: 2.6.2 + dev: false + + /@aws-sdk/util-locate-window/3.310.0: + resolution: + { + integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@aws-sdk/util-user-agent-browser/3.433.0: + resolution: + { + integrity: sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==, + } + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/types": 2.4.0 + bowser: 2.11.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/util-user-agent-node/3.437.0: + resolution: + { + integrity: sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + dependencies: + "@aws-sdk/types": 3.433.0 + "@smithy/node-config-provider": 2.1.3 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/util-utf8-browser/3.259.0: + resolution: + { + integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==, + } + dependencies: + tslib: 2.6.2 + dev: false /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/highlight': 7.22.13 + "@babel/highlight": 7.22.13 chalk: 2.4.2 dev: false /@babel/helper-validator-identifier@7.22.15: - resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==, + } + engines: { node: ">=6.9.0" } dev: false /@babel/highlight@7.22.13: - resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/helper-validator-identifier': 7.22.15 + "@babel/helper-validator-identifier": 7.22.15 chalk: 2.4.2 js-tokens: 4.0.0 dev: false /@babel/runtime@7.22.15: - resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==, + } + engines: { node: ">=6.9.0" } dependencies: regenerator-runtime: 0.14.0 dev: false /@changesets/apply-release-plan@6.1.4: - resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/config': 2.3.1 - '@changesets/get-version-range-type': 0.3.2 - '@changesets/git': 2.0.0 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + resolution: + { + integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==, + } + dependencies: + "@babel/runtime": 7.22.15 + "@changesets/config": 2.3.1 + "@changesets/get-version-range-type": 0.3.2 + "@changesets/git": 2.0.0 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 lodash.startcase: 4.4.0 @@ -172,43 +1060,52 @@ packages: dev: false /@changesets/assemble-release-plan@5.2.4: - resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + resolution: + { + integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==, + } + dependencies: + "@babel/runtime": 7.22.15 + "@changesets/errors": 0.1.4 + "@changesets/get-dependents-graph": 1.3.6 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 semver: 7.5.4 dev: false /@changesets/changelog-git@0.1.14: - resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + resolution: + { + integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==, + } dependencies: - '@changesets/types': 5.2.1 + "@changesets/types": 5.2.1 dev: false /@changesets/cli@2.26.2: - resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} + resolution: + { + integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==, + } hasBin: true dependencies: - '@babel/runtime': 7.22.15 - '@changesets/apply-release-plan': 6.1.4 - '@changesets/assemble-release-plan': 5.2.4 - '@changesets/changelog-git': 0.1.14 - '@changesets/config': 2.3.1 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/get-release-plan': 3.0.17 - '@changesets/git': 2.0.0 - '@changesets/logger': 0.0.5 - '@changesets/pre': 1.0.14 - '@changesets/read': 0.5.9 - '@changesets/types': 5.2.1 - '@changesets/write': 0.2.3 - '@manypkg/get-packages': 1.1.3 - '@types/is-ci': 3.0.0 - '@types/semver': 7.5.1 + "@babel/runtime": 7.22.15 + "@changesets/apply-release-plan": 6.1.4 + "@changesets/assemble-release-plan": 5.2.4 + "@changesets/changelog-git": 0.1.14 + "@changesets/config": 2.3.1 + "@changesets/errors": 0.1.4 + "@changesets/get-dependents-graph": 1.3.6 + "@changesets/get-release-plan": 3.0.17 + "@changesets/git": 2.0.0 + "@changesets/logger": 0.0.5 + "@changesets/pre": 1.0.14 + "@changesets/read": 0.5.9 + "@changesets/types": 5.2.1 + "@changesets/write": 0.2.3 + "@manypkg/get-packages": 1.1.3 + "@types/is-ci": 3.0.0 + "@types/semver": 7.5.1 ansi-colors: 4.1.3 chalk: 2.4.2 enquirer: 2.4.1 @@ -228,118 +1125,160 @@ packages: dev: false /@changesets/config@2.3.1: - resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} - dependencies: - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/logger': 0.0.5 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + resolution: + { + integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==, + } + dependencies: + "@changesets/errors": 0.1.4 + "@changesets/get-dependents-graph": 1.3.6 + "@changesets/logger": 0.0.5 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 dev: false /@changesets/errors@0.1.4: - resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + resolution: + { + integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==, + } dependencies: extendable-error: 0.1.7 dev: false /@changesets/get-dependents-graph@1.3.6: - resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + resolution: + { + integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==, + } dependencies: - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 semver: 7.5.4 dev: false /@changesets/get-release-plan@3.0.17: - resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + resolution: + { + integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==, + } dependencies: - '@babel/runtime': 7.22.15 - '@changesets/assemble-release-plan': 5.2.4 - '@changesets/config': 2.3.1 - '@changesets/pre': 1.0.14 - '@changesets/read': 0.5.9 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + "@babel/runtime": 7.22.15 + "@changesets/assemble-release-plan": 5.2.4 + "@changesets/config": 2.3.1 + "@changesets/pre": 1.0.14 + "@changesets/read": 0.5.9 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 dev: false /@changesets/get-version-range-type@0.3.2: - resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + resolution: + { + integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==, + } dev: false /@changesets/git@2.0.0: - resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + resolution: + { + integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==, + } + dependencies: + "@babel/runtime": 7.22.15 + "@changesets/errors": 0.1.4 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 dev: false /@changesets/logger@0.0.5: - resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + resolution: + { + integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==, + } dependencies: chalk: 2.4.2 dev: false /@changesets/parse@0.3.16: - resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + resolution: + { + integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==, + } dependencies: - '@changesets/types': 5.2.1 + "@changesets/types": 5.2.1 js-yaml: 3.14.1 dev: false /@changesets/pre@1.0.14: - resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 + resolution: + { + integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==, + } + dependencies: + "@babel/runtime": 7.22.15 + "@changesets/errors": 0.1.4 + "@changesets/types": 5.2.1 + "@manypkg/get-packages": 1.1.3 fs-extra: 7.0.1 dev: false /@changesets/read@0.5.9: - resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/git': 2.0.0 - '@changesets/logger': 0.0.5 - '@changesets/parse': 0.3.16 - '@changesets/types': 5.2.1 + resolution: + { + integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==, + } + dependencies: + "@babel/runtime": 7.22.15 + "@changesets/git": 2.0.0 + "@changesets/logger": 0.0.5 + "@changesets/parse": 0.3.16 + "@changesets/types": 5.2.1 chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 dev: false /@changesets/types@4.1.0: - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + resolution: + { + integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==, + } dev: false /@changesets/types@5.2.1: - resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + resolution: + { + integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==, + } dev: false /@changesets/write@0.2.3: - resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + resolution: + { + integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==, + } dependencies: - '@babel/runtime': 7.22.15 - '@changesets/types': 5.2.1 + "@babel/runtime": 7.22.15 + "@changesets/types": 5.2.1 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 dev: false /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] requiresBuild: true @@ -347,8 +1286,11 @@ packages: optional: true /@esbuild/android-arm64@0.19.3: - resolution: {integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] requiresBuild: true @@ -356,8 +1298,11 @@ packages: optional: true /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] requiresBuild: true @@ -365,8 +1310,11 @@ packages: optional: true /@esbuild/android-arm@0.19.3: - resolution: {integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] requiresBuild: true @@ -374,8 +1322,11 @@ packages: optional: true /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] requiresBuild: true @@ -383,8 +1334,11 @@ packages: optional: true /@esbuild/android-x64@0.19.3: - resolution: {integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] requiresBuild: true @@ -392,8 +1346,11 @@ packages: optional: true /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] requiresBuild: true @@ -401,8 +1358,11 @@ packages: optional: true /@esbuild/darwin-arm64@0.19.3: - resolution: {integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] requiresBuild: true @@ -410,8 +1370,11 @@ packages: optional: true /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] requiresBuild: true @@ -419,8 +1382,11 @@ packages: optional: true /@esbuild/darwin-x64@0.19.3: - resolution: {integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] requiresBuild: true @@ -428,8 +1394,11 @@ packages: optional: true /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] requiresBuild: true @@ -437,8 +1406,11 @@ packages: optional: true /@esbuild/freebsd-arm64@0.19.3: - resolution: {integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] requiresBuild: true @@ -446,8 +1418,11 @@ packages: optional: true /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] requiresBuild: true @@ -455,8 +1430,11 @@ packages: optional: true /@esbuild/freebsd-x64@0.19.3: - resolution: {integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] requiresBuild: true @@ -464,8 +1442,11 @@ packages: optional: true /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] requiresBuild: true @@ -473,8 +1454,11 @@ packages: optional: true /@esbuild/linux-arm64@0.19.3: - resolution: {integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] requiresBuild: true @@ -482,8 +1466,11 @@ packages: optional: true /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] requiresBuild: true @@ -491,8 +1478,11 @@ packages: optional: true /@esbuild/linux-arm@0.19.3: - resolution: {integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] requiresBuild: true @@ -500,8 +1490,11 @@ packages: optional: true /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] requiresBuild: true @@ -509,8 +1502,11 @@ packages: optional: true /@esbuild/linux-ia32@0.19.3: - resolution: {integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] requiresBuild: true @@ -518,8 +1514,11 @@ packages: optional: true /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] requiresBuild: true @@ -527,8 +1526,11 @@ packages: optional: true /@esbuild/linux-loong64@0.19.3: - resolution: {integrity: sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] requiresBuild: true @@ -536,8 +1538,11 @@ packages: optional: true /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] requiresBuild: true @@ -545,8 +1550,11 @@ packages: optional: true /@esbuild/linux-mips64el@0.19.3: - resolution: {integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] requiresBuild: true @@ -554,8 +1562,11 @@ packages: optional: true /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] requiresBuild: true @@ -563,8 +1574,11 @@ packages: optional: true /@esbuild/linux-ppc64@0.19.3: - resolution: {integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] requiresBuild: true @@ -572,8 +1586,11 @@ packages: optional: true /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] requiresBuild: true @@ -581,8 +1598,11 @@ packages: optional: true /@esbuild/linux-riscv64@0.19.3: - resolution: {integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] requiresBuild: true @@ -590,8 +1610,11 @@ packages: optional: true /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] requiresBuild: true @@ -599,8 +1622,11 @@ packages: optional: true /@esbuild/linux-s390x@0.19.3: - resolution: {integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] requiresBuild: true @@ -608,8 +1634,11 @@ packages: optional: true /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] requiresBuild: true @@ -617,8 +1646,11 @@ packages: optional: true /@esbuild/linux-x64@0.19.3: - resolution: {integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] requiresBuild: true @@ -626,8 +1658,11 @@ packages: optional: true /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] requiresBuild: true @@ -635,8 +1670,11 @@ packages: optional: true /@esbuild/netbsd-x64@0.19.3: - resolution: {integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] requiresBuild: true @@ -644,8 +1682,11 @@ packages: optional: true /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] requiresBuild: true @@ -653,8 +1694,11 @@ packages: optional: true /@esbuild/openbsd-x64@0.19.3: - resolution: {integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] requiresBuild: true @@ -662,8 +1706,11 @@ packages: optional: true /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] requiresBuild: true @@ -671,8 +1718,11 @@ packages: optional: true /@esbuild/sunos-x64@0.19.3: - resolution: {integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] requiresBuild: true @@ -680,8 +1730,11 @@ packages: optional: true /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] requiresBuild: true @@ -689,8 +1742,11 @@ packages: optional: true /@esbuild/win32-arm64@0.19.3: - resolution: {integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] requiresBuild: true @@ -698,8 +1754,11 @@ packages: optional: true /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] requiresBuild: true @@ -707,8 +1766,11 @@ packages: optional: true /@esbuild/win32-ia32@0.19.3: - resolution: {integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] requiresBuild: true @@ -716,8 +1778,11 @@ packages: optional: true /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] requiresBuild: true @@ -725,8 +1790,11 @@ packages: optional: true /@esbuild/win32-x64@0.19.3: - resolution: {integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] requiresBuild: true @@ -734,8 +1802,11 @@ packages: optional: true /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 @@ -746,194 +1817,824 @@ packages: dev: false /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, + } + engines: { node: ">=6.0.0" } dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.19 dev: false /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, + } + engines: { node: ">=6.0.0" } dev: false /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, + } + engines: { node: ">=6.0.0" } dev: false /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } dev: false /@jridgewell/trace-mapping@0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + resolution: + { + integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==, + } dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 dev: false /@manypkg/find-root@1.1.0: - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + resolution: + { + integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, + } dependencies: - '@babel/runtime': 7.22.15 - '@types/node': 12.20.55 + "@babel/runtime": 7.22.15 + "@types/node": 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 dev: false /@manypkg/get-packages@1.1.3: - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 + resolution: + { + integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, + } + dependencies: + "@babel/runtime": 7.22.15 + "@changesets/types": 4.1.0 + "@manypkg/find-root": 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 dev: false /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 dev: false /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } dev: false /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.15.0 dev: false /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } requiresBuild: true dev: false optional: true - /@types/aws-lambda@8.10.125: - resolution: {integrity: sha512-Vqw/WMlV4O1fJT6capim01v7VLDZkcX1n6Yhb52E7IfnMqYbNfwHfyDV8rRN42NLBtdDvfaqcCqs2K0fr5ljZw==} + /@smithy/abort-controller/2.0.12: + resolution: + { + integrity: sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/config-resolver/2.0.16: + resolution: + { + integrity: sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/node-config-provider": 2.1.3 + "@smithy/types": 2.4.0 + "@smithy/util-config-provider": 2.0.0 + "@smithy/util-middleware": 2.0.5 + tslib: 2.6.2 + dev: false + + /@smithy/credential-provider-imds/2.0.18: + resolution: + { + integrity: sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/node-config-provider": 2.1.3 + "@smithy/property-provider": 2.0.13 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + tslib: 2.6.2 + dev: false + + /@smithy/eventstream-codec/2.0.12: + resolution: + { + integrity: sha512-ZZQLzHBJkbiAAdj2C5K+lBlYp/XJ+eH2uy+jgJgYIFW/o5AM59Hlj7zyI44/ZTDIQWmBxb3EFv/c5t44V8/g8A==, + } + dependencies: + "@aws-crypto/crc32": 3.0.0 + "@smithy/types": 2.4.0 + "@smithy/util-hex-encoding": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/eventstream-serde-browser/2.0.12: + resolution: + { + integrity: sha512-0pi8QlU/pwutNshoeJcbKR1p7Ie5STd8UFAMX5xhSoSJjNlxIv/OsHbF023jscMRN2Prrqd6ToGgdCnsZVQjvg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/eventstream-serde-universal": 2.0.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/eventstream-serde-config-resolver/2.0.12: + resolution: + { + integrity: sha512-I0XfwQkIX3gAnbrU5rLMkBSjTM9DHttdbLwf12CXmj7SSI5dT87PxtKLRrZGanaCMbdf2yCep+MW5/4M7IbvQA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/eventstream-serde-node/2.0.12: + resolution: + { + integrity: sha512-vf1vMHGOkG3uqN9x1zKOhnvW/XgvhJXWqjV6zZiT2FMjlEayugQ1mzpSqr7uf89+BzjTzuZKERmOsEAmewLbxw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/eventstream-serde-universal": 2.0.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/eventstream-serde-universal/2.0.12: + resolution: + { + integrity: sha512-xZ3ZNpCxIND+q+UCy7y1n1/5VQEYicgSTNCcPqsKawX+Vd+6OcFX7gUHMyPzL8cZr+GdmJuxNleqHlH4giK2tw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/eventstream-codec": 2.0.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/fetch-http-handler/2.2.4: + resolution: + { + integrity: sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==, + } + dependencies: + "@smithy/protocol-http": 3.0.8 + "@smithy/querystring-builder": 2.0.12 + "@smithy/types": 2.4.0 + "@smithy/util-base64": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/hash-node/2.0.12: + resolution: + { + integrity: sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + "@smithy/util-buffer-from": 2.0.0 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/invalid-dependency/2.0.12: + resolution: + { + integrity: sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==, + } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/is-array-buffer/2.0.0: + resolution: + { + integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/middleware-content-length/2.0.14: + resolution: + { + integrity: sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/protocol-http": 3.0.8 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/middleware-endpoint/2.1.3: + resolution: + { + integrity: sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/middleware-serde": 2.0.12 + "@smithy/node-config-provider": 2.1.3 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + "@smithy/url-parser": 2.0.12 + "@smithy/util-middleware": 2.0.5 + tslib: 2.6.2 + dev: false + + /@smithy/middleware-retry/2.0.18: + resolution: + { + integrity: sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/node-config-provider": 2.1.3 + "@smithy/protocol-http": 3.0.8 + "@smithy/service-error-classification": 2.0.5 + "@smithy/types": 2.4.0 + "@smithy/util-middleware": 2.0.5 + "@smithy/util-retry": 2.0.5 + tslib: 2.6.2 + uuid: 8.3.2 + dev: false + + /@smithy/middleware-serde/2.0.12: + resolution: + { + integrity: sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/middleware-stack/2.0.6: + resolution: + { + integrity: sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/node-config-provider/2.1.3: + resolution: + { + integrity: sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/property-provider": 2.0.13 + "@smithy/shared-ini-file-loader": 2.2.2 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/node-http-handler/2.1.8: + resolution: + { + integrity: sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/abort-controller": 2.0.12 + "@smithy/protocol-http": 3.0.8 + "@smithy/querystring-builder": 2.0.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/property-provider/2.0.13: + resolution: + { + integrity: sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/protocol-http/3.0.8: + resolution: + { + integrity: sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/querystring-builder/2.0.12: + resolution: + { + integrity: sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + "@smithy/util-uri-escape": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/querystring-parser/2.0.12: + resolution: + { + integrity: sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/service-error-classification/2.0.5: + resolution: + { + integrity: sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + dev: false + + /@smithy/shared-ini-file-loader/2.2.2: + resolution: + { + integrity: sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/signature-v4/2.0.12: + resolution: + { + integrity: sha512-6Kc2lCZEVmb1nNYngyNbWpq0d82OZwITH11SW/Q0U6PX5fH7B2cIcFe7o6eGEFPkTZTP8itTzmYiGcECL0D0Lw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/eventstream-codec": 2.0.12 + "@smithy/is-array-buffer": 2.0.0 + "@smithy/types": 2.4.0 + "@smithy/util-hex-encoding": 2.0.0 + "@smithy/util-middleware": 2.0.5 + "@smithy/util-uri-escape": 2.0.0 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/smithy-client/2.1.12: + resolution: + { + integrity: sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/middleware-stack": 2.0.6 + "@smithy/types": 2.4.0 + "@smithy/util-stream": 2.0.17 + tslib: 2.6.2 + dev: false + + /@smithy/types/2.4.0: + resolution: + { + integrity: sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/url-parser/2.0.12: + resolution: + { + integrity: sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==, + } + dependencies: + "@smithy/querystring-parser": 2.0.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-base64/2.0.0: + resolution: + { + integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/util-buffer-from": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-body-length-browser/2.0.0: + resolution: + { + integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==, + } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/util-body-length-node/2.1.0: + resolution: + { + integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/util-buffer-from/2.0.0: + resolution: + { + integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/is-array-buffer": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-config-provider/2.0.0: + resolution: + { + integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/util-defaults-mode-browser/2.0.16: + resolution: + { + integrity: sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==, + } + engines: { node: ">= 10.0.0" } + dependencies: + "@smithy/property-provider": 2.0.13 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + bowser: 2.11.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-defaults-mode-node/2.0.21: + resolution: + { + integrity: sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==, + } + engines: { node: ">= 10.0.0" } + dependencies: + "@smithy/config-resolver": 2.0.16 + "@smithy/credential-provider-imds": 2.0.18 + "@smithy/node-config-provider": 2.1.3 + "@smithy/property-provider": 2.0.13 + "@smithy/smithy-client": 2.1.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-endpoints/1.0.2: + resolution: + { + integrity: sha512-QEdq+sP68IJHAMVB2ugKVVZEWeKQtZLuf+akHzc8eTVElsZ2ZdVLWC6Cp+uKjJ/t4yOj1qu6ZzyxJQEQ8jdEjg==, + } + engines: { node: ">= 14.0.0" } + dependencies: + "@smithy/node-config-provider": 2.1.3 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-hex-encoding/2.0.0: + resolution: + { + integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/util-middleware/2.0.5: + resolution: + { + integrity: sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-retry/2.0.5: + resolution: + { + integrity: sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==, + } + engines: { node: ">= 14.0.0" } + dependencies: + "@smithy/service-error-classification": 2.0.5 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-stream/2.0.17: + resolution: + { + integrity: sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/fetch-http-handler": 2.2.4 + "@smithy/node-http-handler": 2.1.8 + "@smithy/types": 2.4.0 + "@smithy/util-base64": 2.0.0 + "@smithy/util-buffer-from": 2.0.0 + "@smithy/util-hex-encoding": 2.0.0 + "@smithy/util-utf8": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-uri-escape/2.0.0: + resolution: + { + integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==, + } + engines: { node: ">=14.0.0" } + dependencies: + tslib: 2.6.2 + dev: false + + /@smithy/util-utf8/2.0.0: + resolution: + { + integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/util-buffer-from": 2.0.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-waiter/2.0.12: + resolution: + { + integrity: sha512-3sENmyVa1NnOPoiT2NCApPmu7ukP7S/v7kL9IxNmnygkDldn7/yK0TP42oPJLwB2k3mospNsSePIlqdXEUyPHA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@smithy/abort-controller": 2.0.12 + "@smithy/types": 2.4.0 + tslib: 2.6.2 + dev: false + + /@types/aws-lambda/8.10.125: + resolution: + { + integrity: sha512-Vqw/WMlV4O1fJT6capim01v7VLDZkcX1n6Yhb52E7IfnMqYbNfwHfyDV8rRN42NLBtdDvfaqcCqs2K0fr5ljZw==, + } dev: false /@types/common-tags@1.8.2: - resolution: {integrity: sha512-Z5UcOnlqxFm0tCCTEhkcVOfSihWOMyKypIWHtQNSYh6fMdPUIVpNdLBYutDpDXVHsMUrYzI2IczUHXIzpUovmQ==} + resolution: + { + integrity: sha512-Z5UcOnlqxFm0tCCTEhkcVOfSihWOMyKypIWHtQNSYh6fMdPUIVpNdLBYutDpDXVHsMUrYzI2IczUHXIzpUovmQ==, + } dev: true /@types/is-ci@3.0.0: - resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + resolution: + { + integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==, + } dependencies: ci-info: 3.8.0 dev: false /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + resolution: + { + integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, + } dev: false /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + resolution: + { + integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, + } dev: false /@types/node@20.7.0: - resolution: {integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==} + resolution: + { + integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==, + } dev: false /@types/node@20.8.8: - resolution: {integrity: sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==} + resolution: + { + integrity: sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==, + } dependencies: undici-types: 5.25.3 dev: true /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + resolution: + { + integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, + } dev: false /@types/pako@2.0.2: - resolution: {integrity: sha512-AtTbzIwhvLMTEUPudP3hxUwNK50DoX3amfVJmmL7WQH5iF3Kfqs8pG1tStsewHqmh75ULmjjldKn/B70D6DNcQ==} + resolution: + { + integrity: sha512-AtTbzIwhvLMTEUPudP3hxUwNK50DoX3amfVJmmL7WQH5iF3Kfqs8pG1tStsewHqmh75ULmjjldKn/B70D6DNcQ==, + } dev: false /@types/semver@7.5.1: - resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} + resolution: + { + integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==, + } dev: false /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: ">=6" } dev: false /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } dev: false /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: ">=12" } dev: false /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } dependencies: color-convert: 1.9.3 dev: false /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } dependencies: color-convert: 2.0.1 dev: false /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } dev: false /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } dev: false /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 dev: false /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } dependencies: sprintf-js: 1.0.3 dev: false /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + resolution: + { + integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, + } dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 dev: false /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } dev: false /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -942,8 +2643,11 @@ packages: dev: false /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, + } + engines: { node: ">= 0.4" } dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 @@ -955,86 +2659,128 @@ packages: dev: false /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, + } + engines: { node: ">=0.10.0" } dev: false /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: { node: ">= 0.4" } dev: false /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } dev: false /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==, + } + engines: { node: ">=4" } dependencies: is-windows: 1.0.2 dev: false /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } dev: false - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + /brace-expansion/1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: false /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } dependencies: balanced-match: 1.0.2 dev: false /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } dependencies: fill-range: 7.0.1 dev: false /breakword@1.0.6: - resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + resolution: + { + integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==, + } dependencies: wcwidth: 1.0.1 dev: false /bun-types@1.0.3: - resolution: {integrity: sha512-XlyKVdYCHa7K5PHYGcwOVOrGE/bMnLS51y7zFA3ZAAXyiQ6dTaNXNCWTTufgII/6ruN770uhAXphQmzvU/r2fQ==} + resolution: + { + integrity: sha512-XlyKVdYCHa7K5PHYGcwOVOrGE/bMnLS51y7zFA3ZAAXyiQ6dTaNXNCWTTufgII/6ruN770uhAXphQmzvU/r2fQ==, + } dev: false /bundle-require@4.0.1(esbuild@0.18.20): - resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } peerDependencies: - esbuild: '>=0.17' + esbuild: ">=0.17" dependencies: esbuild: 0.18.20 load-tsconfig: 0.2.5 dev: false /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: ">=8" } dev: false /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + resolution: + { + integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, + } dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 dev: false /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, + } + engines: { node: ">=8" } dependencies: camelcase: 5.3.1 map-obj: 4.3.0 @@ -1042,13 +2788,19 @@ packages: dev: false /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: ">=6" } dev: false /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -1056,20 +2808,29 @@ packages: dev: false /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: false /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } dev: false /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -1083,12 +2844,18 @@ packages: dev: false /ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, + } + engines: { node: ">=8" } dev: false /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, + } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -1096,8 +2863,11 @@ packages: dev: false /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: ">=12" } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -1105,52 +2875,82 @@ packages: dev: false /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: ">=0.8" } dev: false /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } dependencies: color-name: 1.1.3 dev: false /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } dependencies: color-name: 1.1.4 dev: false /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } dev: false /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } dev: false /commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, + } + engines: { node: ">=16" } dev: false /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } dev: false /common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, + } + engines: { node: ">=4.0.0" } dev: true /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } dev: false /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + resolution: + { + integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, + } dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -1158,8 +2958,11 @@ packages: dev: false /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -1167,20 +2970,32 @@ packages: dev: false /csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + resolution: + { + integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==, + } dev: false /csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + resolution: + { + integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==, + } dev: false /csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + resolution: + { + integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==, + } dev: false /csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} + resolution: + { + integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==, + } + engines: { node: ">= 0.1.90" } dependencies: csv-generate: 3.4.3 csv-parse: 4.16.3 @@ -1189,10 +3004,13 @@ packages: dev: false /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -1201,73 +3019,109 @@ packages: dev: false /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, + } + engines: { node: ">=0.10.0" } dependencies: decamelize: 1.2.0 map-obj: 1.0.1 dev: false /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, + } + engines: { node: ">=0.10.0" } dev: false /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } dependencies: clone: 1.0.4 dev: false /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, + } + engines: { node: ">= 0.4" } dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: false /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, + } + engines: { node: ">=8" } dev: false /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: ">=8" } dependencies: path-type: 4.0.0 dev: false /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } dev: false /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } dev: false /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } dev: false /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, + } + engines: { node: ">=8.6" } dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 dev: false /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } dependencies: is-arrayish: 0.2.1 dev: false /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==, + } + engines: { node: ">= 0.4" } dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -1311,8 +3165,11 @@ packages: dev: false /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.1 has: 1.0.3 @@ -1320,14 +3177,20 @@ packages: dev: false /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + resolution: + { + integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, + } dependencies: has: 1.0.3 dev: false /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 @@ -1335,84 +3198,102 @@ packages: dev: false /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, + } + engines: { node: ">=12" } hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 dev: false /esbuild@0.19.3: - resolution: {integrity: sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==, + } + engines: { node: ">=12" } hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.3 - '@esbuild/android-arm64': 0.19.3 - '@esbuild/android-x64': 0.19.3 - '@esbuild/darwin-arm64': 0.19.3 - '@esbuild/darwin-x64': 0.19.3 - '@esbuild/freebsd-arm64': 0.19.3 - '@esbuild/freebsd-x64': 0.19.3 - '@esbuild/linux-arm': 0.19.3 - '@esbuild/linux-arm64': 0.19.3 - '@esbuild/linux-ia32': 0.19.3 - '@esbuild/linux-loong64': 0.19.3 - '@esbuild/linux-mips64el': 0.19.3 - '@esbuild/linux-ppc64': 0.19.3 - '@esbuild/linux-riscv64': 0.19.3 - '@esbuild/linux-s390x': 0.19.3 - '@esbuild/linux-x64': 0.19.3 - '@esbuild/netbsd-x64': 0.19.3 - '@esbuild/openbsd-x64': 0.19.3 - '@esbuild/sunos-x64': 0.19.3 - '@esbuild/win32-arm64': 0.19.3 - '@esbuild/win32-ia32': 0.19.3 - '@esbuild/win32-x64': 0.19.3 + "@esbuild/android-arm": 0.19.3 + "@esbuild/android-arm64": 0.19.3 + "@esbuild/android-x64": 0.19.3 + "@esbuild/darwin-arm64": 0.19.3 + "@esbuild/darwin-x64": 0.19.3 + "@esbuild/freebsd-arm64": 0.19.3 + "@esbuild/freebsd-x64": 0.19.3 + "@esbuild/linux-arm": 0.19.3 + "@esbuild/linux-arm64": 0.19.3 + "@esbuild/linux-ia32": 0.19.3 + "@esbuild/linux-loong64": 0.19.3 + "@esbuild/linux-mips64el": 0.19.3 + "@esbuild/linux-ppc64": 0.19.3 + "@esbuild/linux-riscv64": 0.19.3 + "@esbuild/linux-s390x": 0.19.3 + "@esbuild/linux-x64": 0.19.3 + "@esbuild/netbsd-x64": 0.19.3 + "@esbuild/openbsd-x64": 0.19.3 + "@esbuild/sunos-x64": 0.19.3 + "@esbuild/win32-arm64": 0.19.3 + "@esbuild/win32-ia32": 0.19.3 + "@esbuild/win32-x64": 0.19.3 dev: false /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } dev: false /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } dev: false /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } hasBin: true dev: false /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: ">=10" } dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -1426,8 +3307,11 @@ packages: dev: false /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: ">=16.17" } dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -1441,12 +3325,18 @@ packages: dev: false /extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + resolution: + { + integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==, + } dev: false /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: ">=4" } dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 @@ -1454,69 +3344,106 @@ packages: dev: false /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + resolution: + { + integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, + } + engines: { node: ">=8.6.0" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 dev: false - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fast-xml-parser/4.2.5: + resolution: + { + integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==, + } + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + + /fastq/1.15.0: + resolution: + { + integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + } dependencies: reusify: 1.0.4 dev: false - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + /fill-range/7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } dependencies: to-regex-range: 5.0.1 dev: false /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: ">=8" } dependencies: locate-path: 5.0.0 path-exists: 4.0.0 dev: false /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: false /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + resolution: + { + integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==, + } dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 dev: false /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } dependencies: is-callable: 1.2.7 dev: false /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: ">=14" } dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 dev: false /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { + integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, + } + engines: { node: ">=6 <7 || >=8" } dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -1524,8 +3451,11 @@ packages: dev: false /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, + } + engines: { node: ">=6 <7 || >=8" } dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -1533,24 +3463,36 @@ packages: dev: false /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } dev: false /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] requiresBuild: true dev: false optional: true /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + resolution: + { + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + } dev: false /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -1559,16 +3501,25 @@ packages: dev: false /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } dev: false /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } dev: false /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + resolution: + { + integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, + } dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -1577,33 +3528,48 @@ packages: dev: false /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: ">=10" } dev: false /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: ">=16" } dev: false /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 dev: false /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } dependencies: is-glob: 4.0.3 dev: false /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true dependencies: foreground-child: 3.1.1 @@ -1614,7 +3580,10 @@ packages: dev: false /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + resolution: + { + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1625,15 +3594,21 @@ packages: dev: false /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, + } + engines: { node: ">= 0.4" } dependencies: define-properties: 1.2.0 dev: false /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: ">=10" } dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -1644,123 +3619,192 @@ packages: dev: false /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } dependencies: get-intrinsic: 1.2.1 dev: false /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } dev: false /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + resolution: + { + integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, + } dev: false /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, + } + engines: { node: ">=6" } dev: false /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } dev: false /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } dev: false /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } dev: false /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + resolution: + { + integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, + } dependencies: get-intrinsic: 1.2.1 dev: false /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, + } + engines: { node: ">= 0.4" } dev: false /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } dev: false /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, + } + engines: { node: ">= 0.4" } dependencies: has-symbols: 1.0.3 dev: false /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + } + engines: { node: ">= 0.4.0" } dependencies: function-bind: 1.1.1 dev: false /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + resolution: + { + integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, + } dev: false /human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + resolution: + { + integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==, + } dev: false /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: ">=10.17.0" } dev: false /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: ">=16.17.0" } dev: false /husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, + } + engines: { node: ">=14" } hasBin: true dev: false /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: ">=0.10.0" } dependencies: safer-buffer: 2.1.2 dev: false /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, + } + engines: { node: ">= 4" } dev: false /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: ">=8" } dev: false /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } dependencies: once: 1.4.0 wrappy: 1.0.2 dev: false /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } dev: false /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.1 has: 1.0.3 @@ -1768,7 +3812,10 @@ packages: dev: false /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + resolution: + { + integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, + } dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -1776,189 +3823,285 @@ packages: dev: false /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } dev: false /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } dependencies: has-bigints: 1.0.2 dev: false /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } dependencies: binary-extensions: 2.2.0 dev: false /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 dev: false /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: ">= 0.4" } dev: false /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + resolution: + { + integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==, + } hasBin: true dependencies: ci-info: 3.8.0 dev: false /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + resolution: + { + integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==, + } dependencies: has: 1.0.3 dev: false /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: false /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } dev: false /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } dev: false /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } dependencies: is-extglob: 2.1.1 dev: false /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, + } + engines: { node: ">= 0.4" } dev: false /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: false /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } dev: false /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, + } + engines: { node: ">=0.10.0" } dev: false /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 dev: false /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + resolution: + { + integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, + } dependencies: call-bind: 1.0.2 dev: false /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } dev: false /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dev: false /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: false /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, + } + engines: { node: ">=4" } dependencies: better-path-resolve: 1.0.0 dev: false /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } dependencies: has-symbols: 1.0.3 dev: false /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, + } + engines: { node: ">= 0.4" } dependencies: which-typed-array: 1.1.11 dev: false /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } dependencies: call-bind: 1.0.2 dev: false /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: ">=0.10.0" } dev: false /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } dev: false /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } dev: false /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 dev: false /joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, + } + engines: { node: ">=10" } dev: false /js-base64@3.7.5: - resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} + resolution: + { + integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==, + } dev: false /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } dev: false /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } hasBin: true dependencies: argparse: 1.0.10 @@ -1966,42 +4109,66 @@ packages: dev: false /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } dev: false /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: + { + integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, + } optionalDependencies: graceful-fs: 4.2.11 dev: false /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, + } + engines: { node: ">=0.10.0" } dev: false /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: ">=6" } dev: false /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } dev: false /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } dev: false /load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dev: false /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==, + } + engines: { node: ">=6" } dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 @@ -2010,61 +4177,91 @@ packages: dev: false /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: ">=8" } dependencies: p-locate: 4.1.0 dev: false /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } dependencies: p-locate: 5.0.0 dev: false /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + resolution: + { + integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, + } dev: false /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + resolution: + { + integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, + } dev: false /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} + resolution: + { + integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==, + } + engines: { node: 14 || >=16.14 } dev: false /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + resolution: + { + integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, + } dependencies: pseudomap: 1.0.2 yallist: 2.1.2 dev: false /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: ">=10" } dependencies: yallist: 4.0.0 dev: false /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, + } + engines: { node: ">=0.10.0" } dev: false /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, + } + engines: { node: ">=8" } dev: false /meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==, + } + engines: { node: ">=8" } dependencies: - '@types/minimist': 1.2.2 + "@types/minimist": 1.2.2 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -2078,53 +4275,80 @@ packages: dev: false /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } dev: false /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } dev: false /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: false /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: ">=6" } dev: false /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: ">=12" } dev: false /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, + } + engines: { node: ">=4" } dev: false /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } dependencies: brace-expansion: 1.1.11 dev: false /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: brace-expansion: 2.0.1 dev: false /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, + } + engines: { node: ">= 6" } dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 @@ -2132,21 +4356,33 @@ packages: dev: false /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dev: false /mixme@0.5.9: - resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==, + } + engines: { node: ">= 8.0.0" } dev: false /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } dev: false /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } dependencies: any-promise: 1.3.0 object-assign: 4.1.1 @@ -2154,7 +4390,10 @@ packages: dev: false /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + resolution: + { + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, + } dependencies: hosted-git-info: 2.8.9 resolve: 1.22.4 @@ -2163,41 +4402,62 @@ packages: dev: false /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } dev: false /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: ">=8" } dependencies: path-key: 3.1.1 dev: false /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: path-key: 4.0.0 dev: false /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } dev: false /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + resolution: + { + integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, + } dev: false /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } dev: false /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2206,158 +4466,236 @@ packages: dev: false /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } dependencies: wrappy: 1.0.2 dev: false /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: ">=6" } dependencies: mimic-fn: 2.1.0 dev: false /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: ">=12" } dependencies: mimic-fn: 4.0.0 dev: false /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: ">=0.10.0" } dev: false /outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + resolution: + { + integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==, + } dev: false /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, + } + engines: { node: ">=8" } dependencies: p-map: 2.1.0 dev: false /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: ">=6" } dependencies: p-try: 2.2.0 dev: false /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } dependencies: yocto-queue: 0.1.0 dev: false /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: ">=8" } dependencies: p-limit: 2.3.0 dev: false /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } dependencies: p-limit: 3.1.0 dev: false /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, + } + engines: { node: ">=6" } dev: false /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: ">=6" } dev: false /pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + resolution: + { + integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==, + } dev: false /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: ">=8" } dependencies: - '@babel/code-frame': 7.22.13 + "@babel/code-frame": 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: false /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } dev: false /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } dev: false /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } dev: false /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: ">=12" } dev: false /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } dev: false /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: lru-cache: 10.0.1 minipass: 7.0.4 dev: false /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } dev: false /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } dev: false /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, + } + engines: { node: ">=6" } dev: false /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } dev: false /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, + } + engines: { node: ">=8" } dependencies: find-up: 4.1.0 dev: false /postcss-load-config@4.0.1: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, + } + engines: { node: ">= 14" } peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + postcss: ">=8.0.9" + ts-node: ">=9.0.0" peerDependenciesMeta: postcss: optional: true @@ -2369,8 +4707,11 @@ packages: dev: false /preferred-pm@3.1.2: - resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==, + } + engines: { node: ">=10" } dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 @@ -2379,38 +4720,59 @@ packages: dev: false /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + } + engines: { node: ">=10.13.0" } hasBin: true dev: false /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==, + } + engines: { node: ">=14" } hasBin: true dev: false /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + resolution: + { + integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, + } dev: false /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, + } + engines: { node: ">=6" } dev: false /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } dev: false /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, + } + engines: { node: ">=8" } dev: false /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, + } + engines: { node: ">=8" } dependencies: find-up: 4.1.0 read-pkg: 5.2.0 @@ -2418,18 +4780,24 @@ packages: dev: false /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, + } + engines: { node: ">=8" } dependencies: - '@types/normalize-package-data': 2.4.1 + "@types/normalize-package-data": 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 dev: false /read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==, + } + engines: { node: ">=6" } dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 @@ -2438,27 +4806,39 @@ packages: dev: false /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } dependencies: picomatch: 2.3.1 dev: false /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, + } + engines: { node: ">=8" } dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 dev: false /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + resolution: + { + integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, + } dev: false /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2466,21 +4846,33 @@ packages: dev: false /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } dev: false /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, + } dev: false /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: ">=8" } dev: false /resolve@1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + resolution: + { + integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==, + } hasBin: true dependencies: is-core-module: 2.13.0 @@ -2489,27 +4881,39 @@ packages: dev: false /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } dev: false /rollup@3.29.1: - resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==, + } + engines: { node: ">=14.18.0", npm: ">=8.0.0" } hasBin: true optionalDependencies: fsevents: 2.3.3 dev: false /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } dependencies: queue-microtask: 1.2.3 dev: false /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, + } + engines: { node: ">=0.4" } dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -2518,7 +4922,10 @@ packages: dev: false /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + resolution: + { + integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, + } dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -2526,52 +4933,79 @@ packages: dev: false /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } dev: false /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, + } hasBin: true dev: false /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: ">=10" } hasBin: true dependencies: lru-cache: 6.0.0 dev: false /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, + } dev: false /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, + } + engines: { node: ">=0.10.0" } dependencies: shebang-regex: 1.0.0 dev: false /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } dependencies: shebang-regex: 3.0.0 dev: false /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, + } + engines: { node: ">=0.10.0" } dev: false /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } dev: false /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -2579,22 +5013,34 @@ packages: dev: false /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } dev: false /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } dev: false /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: ">=8" } dev: false /smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==, + } + engines: { node: ">=6" } hasBin: true dependencies: array.prototype.flat: 1.3.2 @@ -2606,54 +5052,81 @@ packages: dev: false /source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, + } + engines: { node: ">= 8" } dependencies: whatwg-url: 7.1.0 dev: false /spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + resolution: + { + integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==, + } dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 dev: false /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + } dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 dev: false /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + resolution: + { + integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, + } dev: false /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 dev: false /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + resolution: + { + integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==, + } dev: false /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } dev: false /stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + resolution: + { + integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==, + } dependencies: mixme: 0.5.9 dev: false /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 @@ -2661,8 +5134,11 @@ packages: dev: false /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 @@ -2670,8 +5146,11 @@ packages: dev: false /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2679,7 +5158,10 @@ packages: dev: false /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + resolution: + { + integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, + } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2687,7 +5169,10 @@ packages: dev: false /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + resolution: + { + integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, + } dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2695,47 +5180,75 @@ packages: dev: false /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } dependencies: ansi-regex: 5.0.1 dev: false /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } dependencies: ansi-regex: 6.0.1 dev: false /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } dev: false /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: ">=6" } dev: false /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: ">=12" } dev: false /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, + } + engines: { node: ">=8" } dependencies: min-indent: 1.0.1 dev: false - /sucrase@3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} + /strnum/1.0.5: + resolution: + { + integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, + } + dev: false + + /sucrase/3.34.0: + resolution: + { + integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==, + } + engines: { node: ">=8" } hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.3 + "@jridgewell/gen-mapping": 0.3.3 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -2745,86 +5258,139 @@ packages: dev: false /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } dependencies: has-flag: 3.0.0 dev: false /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } dependencies: has-flag: 4.0.0 dev: false /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } dev: false /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, + } + engines: { node: ">=8" } dev: false /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } dependencies: thenify: 3.3.1 dev: false /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } dependencies: any-promise: 1.3.0 dev: false /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: ">=0.6.0" } dependencies: os-tmpdir: 1.0.2 dev: false /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } dependencies: is-number: 7.0.0 dev: false /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + resolution: + { + integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, + } dependencies: punycode: 2.3.0 dev: false /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } hasBin: true dev: false /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, + } + engines: { node: ">=8" } dev: false /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } dev: false - /tsup@7.2.0(typescript@5.2.2): - resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} - engines: {node: '>=16.14'} + /tslib/1.14.1: + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } + dev: false + + /tslib/2.6.2: + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } + dev: false + + /tsup/7.2.0_typescript@5.2.2: + resolution: + { + integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==, + } + engines: { node: ">=16.14" } hasBin: true peerDependencies: - '@swc/core': ^1 + "@swc/core": ^1 postcss: ^8.4.12 - typescript: '>=4.1.0' + typescript: ">=4.1.0" peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true postcss: optional: true @@ -2852,8 +5418,11 @@ packages: dev: false /tty-table@4.2.1: - resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==, + } + engines: { node: ">=8.0.0" } hasBin: true dependencies: chalk: 4.1.2 @@ -2866,7 +5435,10 @@ packages: dev: false /turbo-darwin-64@1.10.14: - resolution: {integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==} + resolution: + { + integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==, + } cpu: [x64] os: [darwin] requiresBuild: true @@ -2874,7 +5446,10 @@ packages: optional: true /turbo-darwin-arm64@1.10.14: - resolution: {integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==} + resolution: + { + integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==, + } cpu: [arm64] os: [darwin] requiresBuild: true @@ -2882,7 +5457,10 @@ packages: optional: true /turbo-linux-64@1.10.14: - resolution: {integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==} + resolution: + { + integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==, + } cpu: [x64] os: [linux] requiresBuild: true @@ -2890,7 +5468,10 @@ packages: optional: true /turbo-linux-arm64@1.10.14: - resolution: {integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==} + resolution: + { + integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==, + } cpu: [arm64] os: [linux] requiresBuild: true @@ -2898,7 +5479,10 @@ packages: optional: true /turbo-windows-64@1.10.14: - resolution: {integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==} + resolution: + { + integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==, + } cpu: [x64] os: [win32] requiresBuild: true @@ -2906,7 +5490,10 @@ packages: optional: true /turbo-windows-arm64@1.10.14: - resolution: {integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==} + resolution: + { + integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==, + } cpu: [arm64] os: [win32] requiresBuild: true @@ -2914,7 +5501,10 @@ packages: optional: true /turbo@1.10.14: - resolution: {integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==} + resolution: + { + integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==, + } hasBin: true optionalDependencies: turbo-darwin-64: 1.10.14 @@ -2926,23 +5516,35 @@ packages: dev: false /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==, + } + engines: { node: ">=10" } dev: false /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, + } + engines: { node: ">=8" } dev: false /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, + } + engines: { node: ">=8" } dev: false /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -2950,8 +5552,11 @@ packages: dev: false /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.2 for-each: 0.3.3 @@ -2960,8 +5565,11 @@ packages: dev: false /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, + } + engines: { node: ">= 0.4" } dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 @@ -2971,7 +5579,10 @@ packages: dev: false /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + resolution: + { + integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, + } dependencies: call-bind: 1.0.2 for-each: 0.3.3 @@ -2979,13 +5590,19 @@ packages: dev: false /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==, + } + engines: { node: ">=14.17" } hasBin: true dev: false /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 @@ -2994,33 +5611,59 @@ packages: dev: false /undici-types@5.25.3: - resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + resolution: + { + integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==, + } dev: true /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, + } + engines: { node: ">= 4.0.0" } + dev: false + + /uuid/8.3.2: + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } + hasBin: true dev: false - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + /validate-npm-package-license/3.0.4: + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: false /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + } dependencies: defaults: 1.0.4 dev: false /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + resolution: + { + integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, + } dev: false /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + resolution: + { + integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, + } dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 @@ -3028,7 +5671,10 @@ packages: dev: false /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -3038,20 +5684,29 @@ packages: dev: false /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + resolution: + { + integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, + } dev: false /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + resolution: + { + integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==, + } + engines: { node: ">=8.15" } dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 dev: false /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==, + } + engines: { node: ">= 0.4" } dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 @@ -3061,23 +5716,32 @@ packages: dev: false /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: + { + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, + } hasBin: true dependencies: isexe: 2.0.0 dev: false /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true dependencies: isexe: 2.0.0 dev: false /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: ">=8" } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -3085,8 +5749,11 @@ packages: dev: false /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -3094,8 +5761,11 @@ packages: dev: false /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 @@ -3103,47 +5773,74 @@ packages: dev: false /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } dev: false /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, + } dev: false /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } dev: false /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + resolution: + { + integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, + } dev: false /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } dev: false /yaml@2.3.2: - resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==, + } + engines: { node: ">= 14" } dev: false /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, + } + engines: { node: ">=6" } dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: false /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: ">=12" } dev: false /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, + } + engines: { node: ">=8" } dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -3159,8 +5856,11 @@ packages: dev: false /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: ">=12" } dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -3172,6 +5872,9 @@ packages: dev: false /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } dev: false From 238f2f0e49a135d86627f7d4a2e738d5e38fa79d Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Tue, 7 Nov 2023 15:04:53 +0000 Subject: [PATCH 03/21] Migrate to using IaC resource --- packages/aws/package.json | 1 + packages/aws/src/api-gateway.infra.ts | 91 + packages/aws/src/api-gateway.ts | 105 +- packages/aws/src/api-gateway.utils.ts | 22 + packages/aws/src/core.ts | 8 - packages/aws/src/lambda.infra.ts | 50 + packages/aws/src/lambda.runtime.ts | 23 + packages/aws/src/lambda.ts | 47 +- .../__snapshots__/api-gateway.test.ts.snap | 320 +- .../test/__snapshots__/lambda.test.ts.snap | 83 - packages/aws/test/api-gateway.test.ts | 28 +- packages/aws/test/lambda.test.ts | 5 +- packages/aws/tsup.config.ts | 2 +- pnpm-lock.yaml | 4826 ++++++----------- 14 files changed, 1839 insertions(+), 3772 deletions(-) create mode 100644 packages/aws/src/api-gateway.infra.ts create mode 100644 packages/aws/src/api-gateway.utils.ts delete mode 100644 packages/aws/src/core.ts create mode 100644 packages/aws/src/lambda.infra.ts create mode 100644 packages/aws/src/lambda.runtime.ts delete mode 100644 packages/aws/test/__snapshots__/lambda.test.ts.snap diff --git a/packages/aws/package.json b/packages/aws/package.json index 235a289..1890caa 100644 --- a/packages/aws/package.json +++ b/packages/aws/package.json @@ -19,6 +19,7 @@ "dev": "npm run build -- --watch" }, "dependencies": { + "@notation/aws.iac": "workspace:*", "@notation/core": "workspace:*", "@types/aws-lambda": "^8.10.125" } diff --git a/packages/aws/src/api-gateway.infra.ts b/packages/aws/src/api-gateway.infra.ts new file mode 100644 index 0000000..dacd316 --- /dev/null +++ b/packages/aws/src/api-gateway.infra.ts @@ -0,0 +1,91 @@ +import { AwsResourceGroup } from "@notation/aws.iac/client"; +import { apiGateway, lambda } from "@notation/aws.iac/resources"; +import { ApiGatewayHandler, fn } from "./lambda"; + +export const api = (rgConfig: { name: string }) => { + const apiGroup = new AwsResourceGroup("api", rgConfig); + + const apiResource = apiGroup.add( + new apiGateway.Api({ + config: { + Name: rgConfig.name, + ProtocolType: "HTTP", + }, + }), + ); + + apiGroup.add( + new apiGateway.Stage({ + config: { StageName: "$default", AutoDeploy: true }, + dependencies: { router: apiResource }, + }), + ); + + return apiGroup; +}; + +export const route = ( + apiGroup: ReturnType, + method: string, // todo: http methods only + path: `/${string}`, + handler: ApiGatewayHandler, +) => { + const apiResource = apiGroup.findResource( + "aws/api-gateway", + ) as apiGateway.ApiInstance; + + // at compile time becomes infra module + const fnGroup = handler as any as ReturnType; + + const routeGroup = new AwsResourceGroup("api/route", { + dependencies: { router: apiGroup.id, fn: fnGroup.id }, + }); + + let integration; + + const lambdaResource = fnGroup.findResource( + "aws/lambda", + )! as lambda.LambdaInstance; + + const permission = fnGroup.findResource("aws/lambda/permission/api-gateway"); + + integration = fnGroup.findResource( + "aws/api-gateway/integration/lambda", + ) as apiGateway.LambdaIntegrationInstance; + + if (!permission) { + fnGroup.add( + new lambda.LambdaApiGatewayPermission({ + dependencies: { + api: apiResource, + lambda: lambdaResource, + }, + }), + ); + } + + if (!integration) { + integration = fnGroup.add( + new apiGateway.LambdaIntegration({ + dependencies: { + api: apiResource, + lambda: lambdaResource, + }, + }), + ); + } + + routeGroup.add( + new apiGateway.Route({ + config: { + RouteKey: `${method} ${path}`, + }, + dependencies: { + api: apiResource, + lambdaIntegration: integration, + }, + }), + ); + + return routeGroup; +}; diff --git a/packages/aws/src/api-gateway.ts b/packages/aws/src/api-gateway.ts index f861dd4..bc367a9 100644 --- a/packages/aws/src/api-gateway.ts +++ b/packages/aws/src/api-gateway.ts @@ -1,103 +1,2 @@ -import { AwsResourceGroup } from "./core"; -import { ApiGatewayHandler, fn } from "./lambda"; - -export type ApiConfig = { - name: string; -}; - -export const api = (config: ApiConfig) => { - const apiGroup = new AwsResourceGroup({ type: "api", config: config }); - - const apiGateway = apiGroup.createResource({ - type: "api-gateway", - }); - - apiGroup.createResource({ - type: "api-gateway/stage", - dependencies: { - routerId: apiGateway.id, - }, - }); - - return apiGroup; -}; - -export const router = (apiGroup: ReturnType) => { - const createRouteCallback = - (method: string) => (path: string, handler: ApiGatewayHandler) => { - return route(apiGroup, method, path, handler); - }; - return { - get: createRouteCallback("GET"), - post: createRouteCallback("POST"), - put: createRouteCallback("PUT"), - patch: createRouteCallback("PATCH"), - delete: createRouteCallback("DELETE"), - }; -}; - -export const route = ( - apiGroup: ReturnType, - method: string, - path: string, - handler: ApiGatewayHandler, -) => { - const apiGateway = apiGroup.findResourceByType("api-gateway")!; - - // at compile time becomes infra module - const fnGroup = handler as any as ReturnType; - - const routeGroup = new AwsResourceGroup({ - type: "route", - dependencies: { - router: apiGroup.id, - fn: fnGroup.id, - }, - config: { - service: "aws/api-gateway", - path, - method, - }, - }); - - let integration; - - const lambda = fnGroup.findResourceByType("lambda")!; - const permission = fnGroup.findResourceByType("lambda/permission"); - integration = fnGroup.findResourceByType("lambda/integration"); - - if (!integration) { - integration = fnGroup.createResource({ - type: "lambda/integration", - dependencies: { - apiGatewayId: apiGateway.id, - lambdaId: lambda.id, - }, - }); - } - - if (!permission) { - fnGroup.createResource({ - type: "lambda/permission", - dependencies: { - apiGatewayId: apiGateway.id, - lambdaId: lambda.id, - }, - }); - } - - routeGroup.createResource({ - type: "api-gateway/route", - dependencies: { - apiGatewayId: apiGateway.id, - integrationId: integration.id, - }, - }); - - return routeGroup; -}; - -export const json = (result: any) => ({ - body: JSON.stringify(result), - statusCode: 200, -}); +export * from "./api-gateway.utils"; +export * from "./api-gateway.infra"; diff --git a/packages/aws/src/api-gateway.utils.ts b/packages/aws/src/api-gateway.utils.ts new file mode 100644 index 0000000..d8b9698 --- /dev/null +++ b/packages/aws/src/api-gateway.utils.ts @@ -0,0 +1,22 @@ +import { ApiGatewayHandler } from "./lambda"; +import { api, route } from "./api-gateway.infra"; + +export const router = (apiGroup: ReturnType) => { + const createRouteCallback = + (method: string) => (path: `/${string}`, handler: ApiGatewayHandler) => { + return route(apiGroup, method, path, handler); + }; + + return { + get: createRouteCallback("GET"), + post: createRouteCallback("POST"), + put: createRouteCallback("PUT"), + patch: createRouteCallback("PATCH"), + delete: createRouteCallback("DELETE"), + }; +}; + +export const json = (result: any) => ({ + body: JSON.stringify(result), + statusCode: 200, +}); diff --git a/packages/aws/src/core.ts b/packages/aws/src/core.ts deleted file mode 100644 index f8b9397..0000000 --- a/packages/aws/src/core.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ResourceGroup, ResourceGroupOptions } from "@notation/core"; - -export class AwsResourceGroup extends ResourceGroup { - constructor(opts: ResourceGroupOptions) { - super(opts); - this.platform = "aws"; - } -} diff --git a/packages/aws/src/lambda.infra.ts b/packages/aws/src/lambda.infra.ts new file mode 100644 index 0000000..b66eff7 --- /dev/null +++ b/packages/aws/src/lambda.infra.ts @@ -0,0 +1,50 @@ +import path from "node:path"; +import fs from "node:fs"; +import { AwsResourceGroup } from "@notation/aws.iac/client"; +import { lambda } from "@notation/aws.iac/resources"; + +export const fn = (config: { fileName: string; handler: string }) => { + // @todo: make this a zip resource (maybe with a deploySync method) + const zipPath = path.join(process.cwd(), `${config.fileName}.zip`); + const zipContents = fs.readFileSync(zipPath); + + const functionGroup = new AwsResourceGroup("aws/function", { config }); + + const role = functionGroup.add( + new lambda.LambdaIamRole({ + config: { RoleName: `${functionGroup.id}-role` }, + }), + ); + + const policyAttachment = functionGroup.add( + new lambda.LambdaRolePolicyAttachment({ + config: { + // todo: move to resource, or provide default roles + PolicyArn: + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + dependencies: { role }, + }), + ); + + const lambdaResource = functionGroup.add( + new lambda.Lambda({ + config: { + Code: { ZipFile: zipContents }, + PackageType: "Zip", + FunctionName: `function-${functionGroup.id}`, + Handler: `index.${config.handler}`, + Runtime: "nodejs18.x", + }, + dependencies: { role, policyAttachment }, + }), + ); + + functionGroup.add( + new lambda.LambdaLogGroup({ + dependencies: { lambda: lambdaResource }, + }), + ); + + return functionGroup; +}; diff --git a/packages/aws/src/lambda.runtime.ts b/packages/aws/src/lambda.runtime.ts new file mode 100644 index 0000000..b392bd2 --- /dev/null +++ b/packages/aws/src/lambda.runtime.ts @@ -0,0 +1,23 @@ +import type { + Context, + APIGatewayProxyEvent, + APIGatewayProxyResultV2, +} from "aws-lambda"; + +export type FnConfig = { + service: "aws/lambda"; + memory?: number; + timeout?: number; +}; + +export type ApiGatewayHandler = ( + event: APIGatewayProxyEvent, + context: Context, +) => APIGatewayProxyResultV2 | Promise; + +export const handle = { + apiRequest: + (handler: ApiGatewayHandler): ApiGatewayHandler => + async (...args) => + handler(...args), +}; diff --git a/packages/aws/src/lambda.ts b/packages/aws/src/lambda.ts index 09ae67b..751609e 100644 --- a/packages/aws/src/lambda.ts +++ b/packages/aws/src/lambda.ts @@ -1,45 +1,2 @@ -import { AwsResourceGroup } from "./core"; -import type { - Context, - APIGatewayProxyEvent, - APIGatewayProxyResultV2, -} from "aws-lambda"; - -export type FnConfig = { - service: "aws/lambda"; - memory?: number; - timeout?: number; -}; - -export type ApiGatewayHandler = ( - event: APIGatewayProxyEvent, - context: Context, -) => APIGatewayProxyResultV2 | Promise; - -export const handle = { - apiRequest: (handler: ApiGatewayHandler): ApiGatewayHandler => handler, -}; - -export const fn = (config: { handler: string }) => { - const functionGroup = new AwsResourceGroup({ type: "function", config }); - - const role = functionGroup.createResource({ - type: "iam/role", - }); - - const policyAttachment = functionGroup.createResource({ - type: "iam/policy-attachment", - dependencies: { - roleId: role.id, - }, - }); - - functionGroup.createResource({ - type: "lambda", - dependencies: { - policyId: policyAttachment.id, - }, - }); - - return functionGroup; -}; +export * from "./lambda.infra"; +export * from "./lambda.runtime"; diff --git a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap index 49af7a4..c3f7527 100644 --- a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap +++ b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap @@ -5,299 +5,47 @@ AwsResourceGroup { "config": { "name": "api", }, - "createResource": [Function], "dependencies": {}, - "findResourceByType": [Function], - "id": 1, + "id": 0, "platform": "aws", "resources": [ { - "config": {}, - "dependencies": {}, - "groupId": 1, - "id": 3, - "type": "api-gateway", - }, - { - "config": {}, - "dependencies": { - "routerId": 3, - }, - "groupId": 1, - "id": 4, - "type": "api-gateway/stage", - }, - ], - "type": "api", -} -`; - -exports[`route resource group snapshot 1`] = ` -AwsResourceGroup { - "config": { - "method": "GET", - "path": "/hello", - "service": "aws/api-gateway", - }, - "createResource": [Function], - "dependencies": { - "fn": 3, - "router": 2, - }, - "findResourceByType": [Function], - "id": 4, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": { - "apiGatewayId": 5, - "integrationId": 10, - }, - "groupId": 4, - "id": 12, - "type": "api-gateway/route", - }, - ], - "type": "route", -} -`; - -exports[`route resource group snapshot 2`] = ` -AwsResourceGroup { - "config": { - "handler": "handler.fn.js", - }, - "createResource": [Function], - "dependencies": {}, - "findResourceByType": [Function], - "id": 3, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": {}, - "groupId": 3, - "id": 7, - "type": "iam/role", - }, - { - "config": {}, - "dependencies": { - "roleId": 7, - }, - "groupId": 3, - "id": 8, - "type": "iam/policy-attachment", - }, - { - "config": {}, - "dependencies": { - "policyId": 8, - }, - "groupId": 3, - "id": 9, - "type": "lambda", - }, - { - "config": {}, - "dependencies": { - "apiGatewayId": 5, - "lambdaId": 9, - }, - "groupId": 3, - "id": 10, - "type": "lambda/integration", - }, - { - "config": {}, - "dependencies": { - "apiGatewayId": 5, - "lambdaId": 9, - }, - "groupId": 3, - "id": 11, - "type": "lambda/permission", - }, - ], - "type": "function", -} -`; - -exports[`route resource group idempotency snapshot 1`] = ` -AwsResourceGroup { - "config": { - "handler": "handler.fn.js", - }, - "createResource": [Function], - "dependencies": {}, - "findResourceByType": [Function], - "id": 6, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": {}, - "groupId": 6, - "id": 15, - "type": "iam/role", - }, - { - "config": {}, - "dependencies": { - "roleId": 15, - }, - "groupId": 6, - "id": 16, - "type": "iam/policy-attachment", - }, - { - "config": {}, - "dependencies": { - "policyId": 16, - }, - "groupId": 6, - "id": 17, - "type": "lambda", - }, - { - "config": {}, - "dependencies": {}, - "groupId": 6, - "id": 18, - "type": "lambda/integration", - }, - { - "config": {}, - "dependencies": {}, - "groupId": 6, - "id": 19, - "type": "lambda/permission", - }, - ], - "type": "function", -} -`; - -exports[`route resource group idempotency snapshot 2`] = ` -AwsResourceGroup { - "config": { - "method": "GET", - "path": "/hello", - "service": "aws/api-gateway", - }, - "createResource": [Function], - "dependencies": { - "fn": 6, - "router": 5, - }, - "findResourceByType": [Function], - "id": 7, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": { - "apiGatewayId": 13, - "integrationId": 18, - }, - "groupId": 7, - "id": 20, - "type": "api-gateway/route", - }, - ], - "type": "route", -} -`; - -exports[`route resource group snapshot 3`] = ` -AwsResourceGroup { - "config": { - "method": "GET", - "path": "/hello", - "service": "aws/api-gateway", - }, - "createResource": [Function], - "dependencies": { - "fn": 6, - "router": 5, - }, - "findResourceByType": [Function], - "id": 7, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": { - "apiGatewayId": 13, - "integrationId": 18, + "config": { + "Name": "api", + "ProtocolType": "HTTP", }, - "groupId": 7, - "id": 20, - "type": "api-gateway/route", - }, - ], - "type": "route", -} -`; - -exports[`route resource group snapshot 4`] = ` -AwsResourceGroup { - "config": { - "handler": "handler.fn.js", - }, - "createResource": [Function], - "dependencies": {}, - "findResourceByType": [Function], - "id": 6, - "platform": "aws", - "resources": [ - { - "config": {}, "dependencies": {}, - "groupId": 6, - "id": 15, - "type": "iam/role", - }, - { - "config": {}, - "dependencies": { - "roleId": 15, - }, - "groupId": 6, - "id": 16, - "type": "iam/policy-attachment", - }, - { - "config": {}, - "dependencies": { - "policyId": 16, - }, - "groupId": 6, - "id": 17, - "type": "lambda", - }, - { - "config": {}, - "dependencies": { - "apiGatewayId": 13, - "lambdaId": 17, - }, - "groupId": 6, - "id": 18, - "type": "lambda/integration", - }, - { - "config": {}, - "dependencies": { - "apiGatewayId": 13, - "lambdaId": 17, - }, - "groupId": 6, - "id": 19, - "type": "lambda/permission", + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "type": "aws/api-gateway", + }, + { + "config": { + "StageName": "dev", + }, + "dependencies": { + "router": { + "config": { + "Name": "api", + "ProtocolType": "HTTP", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "type": "aws/api-gateway", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 1, + "output": null, + "type": "aws/api-gateway/stage", }, ], - "type": "function", + "type": "api", } `; diff --git a/packages/aws/test/__snapshots__/lambda.test.ts.snap b/packages/aws/test/__snapshots__/lambda.test.ts.snap deleted file mode 100644 index cbedd7a..0000000 --- a/packages/aws/test/__snapshots__/lambda.test.ts.snap +++ /dev/null @@ -1,83 +0,0 @@ -// Bun Snapshot v1, https://goo.gl/fbAQLP - -exports[`fn 1`] = ` -AwsResourceGroup { - "config": { - "handler": "handler.fn.js", - }, - "createResource": [Function], - "dependencies": {}, - "findResourceByType": [Function], - "id": 0, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": {}, - "groupId": 0, - "id": 0, - "type": "iam/role", - }, - { - "config": {}, - "dependencies": { - "roleId": 0, - }, - "groupId": 0, - "id": 1, - "type": "iam/policy-attachment", - }, - { - "config": {}, - "dependencies": { - "policyId": 1, - }, - "groupId": 0, - "id": 2, - "type": "lambda", - }, - ], - "type": "function", -} -`; - -exports[`fn resource group snapshot 1`] = ` -AwsResourceGroup { - "config": { - "handler": "handler.fn.js", - }, - "createResource": [Function], - "dependencies": {}, - "findResourceByType": [Function], - "id": 0, - "platform": "aws", - "resources": [ - { - "config": {}, - "dependencies": {}, - "groupId": 0, - "id": 0, - "type": "iam/role", - }, - { - "config": {}, - "dependencies": { - "roleId": 0, - }, - "groupId": 0, - "id": 1, - "type": "iam/policy-attachment", - }, - { - "config": {}, - "dependencies": { - "policyId": 1, - }, - "groupId": 0, - "id": 2, - "type": "lambda", - }, - ], - "type": "function", -} -`; diff --git a/packages/aws/test/api-gateway.test.ts b/packages/aws/test/api-gateway.test.ts index e128df9..1f89d4c 100644 --- a/packages/aws/test/api-gateway.test.ts +++ b/packages/aws/test/api-gateway.test.ts @@ -1,5 +1,7 @@ import { test, expect } from "bun:test"; -import { api, route, router, json } from "src/api-gateway"; +import { apiGateway } from "@notation/aws.iac/resources"; +import { api, route } from "src/api-gateway.infra"; +import { router, json } from "src/api-gateway.utils"; import { fn } from "src/lambda"; test("json returns a JSON string and a 200 status code", () => { @@ -16,7 +18,10 @@ test("api resource group snapshot", () => { test("route resource group snapshot", () => { const apiResourceGroup = api({ name: "api" }); - const fnResourceGroup = fn({ handler: "handler.fn.js" }); + const fnResourceGroup = fn({ + fileName: "src/fns/handler.fn.js", + handler: "handler.fn.js", + }); const routeResourceGroup = route( apiResourceGroup, @@ -31,7 +36,10 @@ test("route resource group snapshot", () => { test("route resource group idempotency snapshot", () => { const apiResourceGroup = api({ name: "api" }); - const fnResourceGroup = fn({ handler: "handler.fn.js" }); + const fnResourceGroup = fn({ + fileName: "src/fns/handler.fn.js", + handler: "handler.fn.js", + }); route(apiResourceGroup, "GET", "/hello", fnResourceGroup as any); const fnResourceGroupSnapshot = JSON.stringify(fnResourceGroup); @@ -44,11 +52,17 @@ test("route resource group idempotency snapshot", () => { test("router provides methods for each HTTP verb", () => { const apiResourceGroup = api({ name: "api" }); const apiRouter = router(apiResourceGroup); - const handler = fn({ handler: "handler.fn.js" }); + const handler = fn({ + fileName: "src/fns/handler.fn.js", + handler: "handler.fn.js", + }); for (const method of ["GET", "POST", "PUT", "DELETE", "PATCH"]) { - const route = (apiRouter as any)[method.toLowerCase()]("/hello", handler); - expect(route.config.method).toEqual(method); - expect(route.config.path).toEqual("/hello"); + const routerKey = method.toLowerCase() as keyof typeof apiRouter; + const routeGroup = apiRouter[routerKey]("/hello", handler as any); + const route = routeGroup.findResource( + "aws/api-gateway/route", + ) as apiGateway.RouteInstance; + expect(route.config.RouteKey).toEqual(`${method} /hello`); } }); diff --git a/packages/aws/test/lambda.test.ts b/packages/aws/test/lambda.test.ts index 542973c..7e972b4 100644 --- a/packages/aws/test/lambda.test.ts +++ b/packages/aws/test/lambda.test.ts @@ -10,6 +10,9 @@ test("handlers are identity functions", async () => { }); test("fn resource group snapshot", async () => { - const fnResourceGroup = fn({ handler: "handler.fn.js" }); + const fnResourceGroup = fn({ + fileName: "src/fns/handler.fn/index.js", + handler: "handler", + }); expect(fnResourceGroup).toMatchSnapshot(); }); diff --git a/packages/aws/tsup.config.ts b/packages/aws/tsup.config.ts index 0fb00cc..62297b3 100644 --- a/packages/aws/tsup.config.ts +++ b/packages/aws/tsup.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from "tsup"; export default defineConfig({ - entry: ["src/core.ts", "src/lambda.ts", "src/api-gateway.ts"], + entry: ["src/lambda.ts", "src/api-gateway.ts"], splitting: false, dts: true, clean: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a441c7c..08cfcc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,16 +1,17 @@ -lockfileVersion: "6.0" +lockfileVersion: '6.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: + .: dependencies: - "@changesets/cli": + '@changesets/cli': specifier: ^2.26.2 version: 2.26.2 - "@types/node": + '@types/node': specifier: ^20.7.0 version: 20.7.0 bun-types: @@ -43,39 +44,58 @@ importers: packages/aws: dependencies: + '@notation/aws.iac': + specifier: workspace:* + version: link:../aws.iac + '@notation/core': + specifier: workspace:* + version: link:../core + '@types/aws-lambda': + specifier: ^8.10.125 + version: 8.10.125 + packages/aws.iac: - specifiers: - "@aws-sdk/client-apigatewayv2": ^3.441.0 - "@aws-sdk/client-cloudwatch-logs": ^3.441.0 - "@aws-sdk/client-iam": ^3.441.0 - "@aws-sdk/client-lambda": ^3.441.0 - "@notation/core": workspace:* - "@types/aws-lambda": ^8.10.125 - dependencies: - "@aws-sdk/client-apigatewayv2": 3.441.0 - "@aws-sdk/client-cloudwatch-logs": 3.445.0 - "@aws-sdk/client-iam": 3.441.0 - "@aws-sdk/client-lambda": 3.441.0 - "@notation/core": link:../core - "@types/aws-lambda": 8.10.125 + dependencies: + '@aws-sdk/client-apigatewayv2': + specifier: ^3.441.0 + version: 3.454.0 + '@aws-sdk/client-cloudwatch-logs': + specifier: ^3.441.0 + version: 3.454.0 + '@aws-sdk/client-iam': + specifier: ^3.441.0 + version: 3.454.0 + '@aws-sdk/client-lambda': + specifier: ^3.441.0 + version: 3.454.0 + '@notation/core': + specifier: workspace:* + version: link:../core + '@types/aws-lambda': + specifier: ^8.10.125 + version: 8.10.125 packages/cli: - specifiers: - "@notation/core": workspace:* - "@notation/esbuild-plugins": workspace:* - commander: ^11.0.0 - esbuild: ^0.19.3 - glob: ^10.3.10 - dependencies: - "@notation/core": link:../core - "@notation/esbuild-plugins": link:../esbuild-plugins - commander: 11.0.0 - esbuild: 0.19.3 - glob: 10.3.10 + dependencies: + '@notation/core': + specifier: workspace:* + version: link:../core + '@notation/esbuild-plugins': + specifier: workspace:* + version: link:../esbuild-plugins + commander: + specifier: ^11.0.0 + version: 11.0.0 + esbuild: + specifier: ^0.19.3 + version: 0.19.3 + glob: + specifier: ^10.3.10 + version: 10.3.10 packages/core: dependencies: - "@types/pako": + '@types/pako': specifier: ^2.0.2 version: 2.0.2 js-base64: @@ -85,7 +105,7 @@ importers: specifier: ^2.1.0 version: 2.1.0 devDependencies: - "@types/common-tags": + '@types/common-tags': specifier: ^1.8.2 version: 1.8.2 common-tags: @@ -101,7 +121,7 @@ importers: specifier: ^5.2.2 version: 5.2.2 devDependencies: - "@types/common-tags": + '@types/common-tags': specifier: ^1.8.2 version: 1.8.2 common-tags: @@ -112,944 +132,662 @@ importers: test/compiler.test.app: dependencies: - "@notation/aws": + '@notation/aws': specifier: workspace:* version: link:../../packages/aws - "@notation/cli": + '@notation/cli': specifier: workspace:* version: link:../../packages/cli - "@notation/core": + '@notation/core': specifier: workspace:* version: link:../../packages/core devDependencies: - "@types/node": + '@types/node': specifier: ^20.8.4 version: 20.8.8 packages: - /@aws-crypto/crc32/3.0.0: - resolution: - { - integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==, - } - dependencies: - "@aws-crypto/util": 3.0.0 - "@aws-sdk/types": 3.433.0 + + /@aws-crypto/crc32@3.0.0: + resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 tslib: 1.14.1 dev: false - /@aws-crypto/ie11-detection/3.0.0: - resolution: - { - integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==, - } + /@aws-crypto/ie11-detection@3.0.0: + resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} dependencies: tslib: 1.14.1 dev: false - /@aws-crypto/sha256-browser/3.0.0: - resolution: - { - integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==, - } + /@aws-crypto/sha256-browser@3.0.0: + resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} dependencies: - "@aws-crypto/ie11-detection": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-crypto/supports-web-crypto": 3.0.0 - "@aws-crypto/util": 3.0.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-locate-window": 3.310.0 - "@aws-sdk/util-utf8-browser": 3.259.0 + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-locate-window': 3.310.0 + '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false - /@aws-crypto/sha256-js/3.0.0: - resolution: - { - integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==, - } + /@aws-crypto/sha256-js@3.0.0: + resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: - "@aws-crypto/util": 3.0.0 - "@aws-sdk/types": 3.433.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 tslib: 1.14.1 dev: false - /@aws-crypto/supports-web-crypto/3.0.0: - resolution: - { - integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==, - } + /@aws-crypto/supports-web-crypto@3.0.0: + resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} dependencies: tslib: 1.14.1 dev: false - /@aws-crypto/util/3.0.0: - resolution: - { - integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==, - } + /@aws-crypto/util@3.0.0: + resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-utf8-browser": 3.259.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false - /@aws-sdk/client-apigatewayv2/3.441.0: - resolution: - { - integrity: sha512-DbplhsMLLS6JqmQDblQC3MpFHUL21CcnKw2b2qQ4/bZutS93+5JmLO+xsWCNwyGxzLyji3OGonaCmk2Zh/RPeA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.441.0 - "@aws-sdk/core": 3.441.0 - "@aws-sdk/credential-provider-node": 3.441.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-stream": 2.0.17 - "@smithy/util-utf8": 2.0.0 + /@aws-sdk/client-apigatewayv2@3.454.0: + resolution: {integrity: sha512-TRohVG0lCFZBkUiLhBoKU+8U3/jt3hxusNvU5uuTxyaVj0/MWau4h9kHnvSjXlxpdtOvwqN65uBLApJw/tkZHA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.454.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-stream': 2.0.21 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-cloudwatch-logs/3.445.0: - resolution: - { - integrity: sha512-Npc6vHogjcvM/lHTVtCTLAb8TirDClzb6V9iV5vlxS9X3AzAIQjvS7Iq7zUNd5o5I2yosc2QKLNlTeL02enMgA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.445.0 - "@aws-sdk/core": 3.445.0 - "@aws-sdk/credential-provider-node": 3.445.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 + /@aws-sdk/client-cloudwatch-logs@3.454.0: + resolution: {integrity: sha512-anXMEIZvDvqsFAURYmNHaJU8SH85Rqkahkk0TsDiTLc6/J4Qh8xvcem358qTiXzRpPJmZe4m20XKqL0fXsJgIw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.454.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 uuid: 8.3.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-iam/3.441.0: - resolution: - { - integrity: sha512-kwokUFBWWycGjhCzZTDblAS+x/hjYhLyel+Eb80wz0/tZi+pQ1bDbjkc4r4f6l1YiZ0YC2Y2A7eMVBczp51ogA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.441.0 - "@aws-sdk/core": 3.441.0 - "@aws-sdk/credential-provider-node": 3.441.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 - "@smithy/util-waiter": 2.0.12 + /@aws-sdk/client-iam@3.454.0: + resolution: {integrity: sha512-feBcpbCyBfeLBC2L+1BQnAZ0KhPGdlxAzX4HLk3v6dSoVGFPyS9/7NTISiXy5iVc7fdFBtosiqvDBMpajrXpAA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.454.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 + '@smithy/util-waiter': 2.0.14 fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-lambda/3.441.0: - resolution: - { - integrity: sha512-Ory1rjbRn+Pa5u95ffSbzKEm7PQhkVeL8MtypZPcm7mBI6nPhIyFRk+Ua7yL2tw0uo6TgAqUMA+YEpGxfU7/ig==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.441.0 - "@aws-sdk/core": 3.441.0 - "@aws-sdk/credential-provider-node": 3.441.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/eventstream-serde-browser": 2.0.12 - "@smithy/eventstream-serde-config-resolver": 2.0.12 - "@smithy/eventstream-serde-node": 2.0.12 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-stream": 2.0.17 - "@smithy/util-utf8": 2.0.0 - "@smithy/util-waiter": 2.0.12 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-sso/3.441.0: - resolution: - { - integrity: sha512-gndGymu4cEIN7WWhQ67RO0JMda09EGBlay2L8IKCHBK/65Y34FHUX1tCNbO2qezEzsi6BPW5o2n53Rd9QqpHUw==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/core": 3.441.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 + /@aws-sdk/client-lambda@3.454.0: + resolution: {integrity: sha512-nYak+ojl0H0AG0WTF2894npak4Uj2slBr09+3lBUz4rwPol93TsUHy8/5GfGLcqPMNnEKOknc4jioJOK7cb2Pw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.454.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/eventstream-serde-browser': 2.0.14 + '@smithy/eventstream-serde-config-resolver': 2.0.14 + '@smithy/eventstream-serde-node': 2.0.14 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-stream': 2.0.21 + '@smithy/util-utf8': 2.0.2 + '@smithy/util-waiter': 2.0.14 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso/3.445.0: - resolution: - { - integrity: sha512-me4LvqNnu6kxi+sW7t0AgMv1Yi64ikas0x2+5jv23o6Csg32w0S0xOjCTKQYahOA5CMFunWvlkFIfxbqs+Uo7w==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/core": 3.445.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 + /@aws-sdk/client-sso@3.451.0: + resolution: {integrity: sha512-KkYSke3Pdv3MfVH/5fT528+MKjMyPKlcLcd4zQb0x6/7Bl7EHrPh1JZYjzPLHelb+UY5X0qN8+cb8iSu1eiwIQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sts/3.441.0: - resolution: - { - integrity: sha512-GL0Cw2v7XL1cn0T+Sk5VHLlgBJoUdMsysXsHa1mFdk0l6XHMAAnwXVXiNnjmoDSPrG0psz7dL2AKzPVRXbIUjA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/core": 3.441.0 - "@aws-sdk/credential-provider-node": 3.441.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-sdk-sts": 3.433.0 - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 + /@aws-sdk/client-sts@3.454.0: + resolution: {integrity: sha512-0fDvr8WeB6IYO8BUCzcivWmahgGl/zDbaYfakzGnt4mrl5ztYaXE875WI6b7+oFcKMRvN+KLvwu5TtyFuNY+GQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-sdk-sts': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sts/3.445.0: - resolution: - { - integrity: sha512-ogbdqrS8x9O5BTot826iLnTQ6i4/F5BSi/74gycneCxYmAnYnyUBNOWVnynv6XZiEWyDJQCU2UtMd52aNGW1GA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/core": 3.445.0 - "@aws-sdk/credential-provider-node": 3.445.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-sdk-sts": 3.433.0 - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/protocol-http": 3.0.8 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/core/3.441.0: - resolution: - { - integrity: sha512-gV0eQwR0VnSPUYAbgDkbBtfXbSpZgl/K6UB13DP1IFFjQYbF/BxYwvcQe4jHoPOBifSgjEbl8MfOOeIyI7k9vg==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@smithy/smithy-client": 2.1.12 - dev: false - - /@aws-sdk/core/3.445.0: - resolution: - { - integrity: sha512-6GYLElUG1QTOdmXG8zXa+Ull9IUeSeItKDYHKzHYfIkbsagMfYlf7wm9XIYlatjtgodNfZ3gPHAJfRyPmwKrsg==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/core@3.451.0: + resolution: {integrity: sha512-SamWW2zHEf1ZKe3j1w0Piauryl8BQIlej0TBS18A4ACzhjhWXhCs13bO1S88LvPR5mBFXok3XOT6zPOnKDFktw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/smithy-client": 2.1.12 + '@smithy/smithy-client': 2.1.16 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-env/3.433.0: - resolution: - { - integrity: sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/credential-provider-env@3.451.0: + resolution: {integrity: sha512-9dAav7DcRgaF7xCJEQR5ER9ErXxnu/tdnVJ+UPmb1NPeIZdESv1A3lxFDEq1Fs8c4/lzAj9BpshGyJVIZwZDKg==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/property-provider": 2.0.13 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-ini/3.441.0: - resolution: - { - integrity: sha512-SQipQYxYqDUuSOfIhDmaTdwPTcndGQotGZXWJl56mMWqAhU8MkwjK+oMf3VgRt/umJC0QwUCF5HUHIj7gSB1JA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-sdk/credential-provider-env": 3.433.0 - "@aws-sdk/credential-provider-process": 3.433.0 - "@aws-sdk/credential-provider-sso": 3.441.0 - "@aws-sdk/credential-provider-web-identity": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@smithy/credential-provider-imds": 2.0.18 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-ini/3.445.0: - resolution: - { - integrity: sha512-R7IYSGjNZ5KKJwQJ2HNPemjpAMWvdce91i8w+/aHfqeGfTXrmYJu99PeGRyyBTKEumBaojyjTRvmO8HzS+/l7g==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-sdk/credential-provider-env": 3.433.0 - "@aws-sdk/credential-provider-process": 3.433.0 - "@aws-sdk/credential-provider-sso": 3.445.0 - "@aws-sdk/credential-provider-web-identity": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@smithy/credential-provider-imds": 2.0.18 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-node/3.441.0: - resolution: - { - integrity: sha512-WB9p37yHq6fGJt6Vll29ijHbkh9VDbPM/n5ns73bTAgFD7R0ht5kPmdmHGQA6m3RKjcHLPbymQ3lXykkMwWf/Q==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-sdk/credential-provider-env": 3.433.0 - "@aws-sdk/credential-provider-ini": 3.441.0 - "@aws-sdk/credential-provider-process": 3.433.0 - "@aws-sdk/credential-provider-sso": 3.441.0 - "@aws-sdk/credential-provider-web-identity": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@smithy/credential-provider-imds": 2.0.18 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 + /@aws-sdk/credential-provider-ini@3.451.0: + resolution: {integrity: sha512-TySt64Ci5/ZbqFw1F9Z0FIGvYx5JSC9e6gqDnizIYd8eMnn8wFRUscRrD7pIHKfrhvVKN5h0GdYovmMO/FMCBw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.451.0 + '@aws-sdk/credential-provider-process': 3.451.0 + '@aws-sdk/credential-provider-sso': 3.451.0 + '@aws-sdk/credential-provider-web-identity': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/credential-provider-imds': 2.1.2 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-node/3.445.0: - resolution: - { - integrity: sha512-zI4k4foSjQRKNEsouculRcz7IbLfuqdFxypDLYwn+qPNMqJwWJ7VxOOeBSPUpHFcd7CLSfbHN2JAhQ7M02gPTA==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-sdk/credential-provider-env": 3.433.0 - "@aws-sdk/credential-provider-ini": 3.445.0 - "@aws-sdk/credential-provider-process": 3.433.0 - "@aws-sdk/credential-provider-sso": 3.445.0 - "@aws-sdk/credential-provider-web-identity": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@smithy/credential-provider-imds": 2.0.18 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 + /@aws-sdk/credential-provider-node@3.451.0: + resolution: {integrity: sha512-AEwM1WPyxUdKrKyUsKyFqqRFGU70e4qlDyrtBxJnSU9NRLZI8tfEZ67bN7fHSxBUBODgDXpMSlSvJiBLh5/3pw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.451.0 + '@aws-sdk/credential-provider-ini': 3.451.0 + '@aws-sdk/credential-provider-process': 3.451.0 + '@aws-sdk/credential-provider-sso': 3.451.0 + '@aws-sdk/credential-provider-web-identity': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/credential-provider-imds': 2.1.2 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-process/3.433.0: - resolution: - { - integrity: sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-sso/3.441.0: - resolution: - { - integrity: sha512-pTg16G+62mWCE8yGKuQnEBqPdpG5g71remf2jUqXaI1c7GCzbnkQDV9eD4DaAGOvzIs0wo9zAQnS2kVDPFlCYA==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/credential-provider-process@3.451.0: + resolution: {integrity: sha512-HQywSdKeD5PErcLLnZfSyCJO+6T+ZyzF+Lm/QgscSC+CbSUSIPi//s15qhBRVely/3KBV6AywxwNH+5eYgt4lQ==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/client-sso": 3.441.0 - "@aws-sdk/token-providers": 3.438.0 - "@aws-sdk/types": 3.433.0 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt dev: false - /@aws-sdk/credential-provider-sso/3.445.0: - resolution: - { - integrity: sha512-gJz7kAiDecdhtApgXnxfZsXKsww8BnifDF9MAx9Dr4X6no47qYsCCS3XPuEyRiF9VebXvHOH0H260Zp3bVyniQ==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/credential-provider-sso@3.451.0: + resolution: {integrity: sha512-Usm/N51+unOt8ID4HnQzxIjUJDrkAQ1vyTOC0gSEEJ7h64NSSPGD5yhN7il5WcErtRd3EEtT1a8/GTC5TdBctg==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/client-sso": 3.445.0 - "@aws-sdk/token-providers": 3.438.0 - "@aws-sdk/types": 3.433.0 - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 + '@aws-sdk/client-sso': 3.451.0 + '@aws-sdk/token-providers': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity/3.433.0: - resolution: - { - integrity: sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/credential-provider-web-identity@3.451.0: + resolution: {integrity: sha512-Xtg3Qw65EfDjWNG7o2xD6sEmumPfsy3WDGjk2phEzVg8s7hcZGxf5wYwe6UY7RJvlEKrU0rFA+AMn6Hfj5oOzg==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/property-provider": 2.0.13 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-host-header/3.433.0: - resolution: - { - integrity: sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/middleware-host-header@3.451.0: + resolution: {integrity: sha512-j8a5jAfhWmsK99i2k8oR8zzQgXrsJtgrLxc3js6U+525mcZytoiDndkWTmD5fjJ1byU1U2E5TaPq+QJeDip05Q==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/protocol-http": 3.0.8 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-logger/3.433.0: - resolution: - { - integrity: sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/middleware-logger@3.451.0: + resolution: {integrity: sha512-0kHrYEyVeB2QBfP6TfbI240aRtatLZtcErJbhpiNUb+CQPgEL3crIjgVE8yYiJumZ7f0jyjo8HLPkwD1/2APaw==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-recursion-detection/3.433.0: - resolution: - { - integrity: sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/middleware-recursion-detection@3.451.0: + resolution: {integrity: sha512-J6jL6gJ7orjHGM70KDRcCP7so/J2SnkN4vZ9YRLTeeZY6zvBuHDjX8GCIgSqPn/nXFXckZO8XSnA7u6+3TAT0w==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/protocol-http": 3.0.8 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-sts/3.433.0: - resolution: - { - integrity: sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/middleware-sdk-sts@3.451.0: + resolution: {integrity: sha512-UJ6UfVUEgp0KIztxpAeelPXI5MLj9wUtUCqYeIMP7C1ZhoEMNm3G39VLkGN43dNhBf1LqjsV9jkKMZbVfYXuwg==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/middleware-signing": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@smithy/types": 2.4.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-signing/3.433.0: - resolution: - { - integrity: sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/middleware-signing@3.451.0: + resolution: {integrity: sha512-s5ZlcIoLNg1Huj4Qp06iKniE8nJt/Pj1B/fjhWc6cCPCM7XJYUCejCnRh6C5ZJoBEYodjuwZBejPc1Wh3j+znA==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/property-provider": 2.0.13 - "@smithy/protocol-http": 3.0.8 - "@smithy/signature-v4": 2.0.12 - "@smithy/types": 2.4.0 - "@smithy/util-middleware": 2.0.5 + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/protocol-http': 3.0.10 + '@smithy/signature-v4': 2.0.16 + '@smithy/types': 2.6.0 + '@smithy/util-middleware': 2.0.7 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-user-agent/3.438.0: - resolution: - { - integrity: sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/middleware-user-agent@3.451.0: + resolution: {integrity: sha512-8NM/0JiKLNvT9wtAQVl1DFW0cEO7OvZyLSUBLNLTHqyvOZxKaZ8YFk7d8PL6l76LeUKRxq4NMxfZQlUIRe0eSA==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@smithy/protocol-http": 3.0.8 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/region-config-resolver/3.433.0: - resolution: - { - integrity: sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/region-config-resolver@3.451.0: + resolution: {integrity: sha512-3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/node-config-provider": 2.1.3 - "@smithy/types": 2.4.0 - "@smithy/util-config-provider": 2.0.0 - "@smithy/util-middleware": 2.0.5 + '@smithy/node-config-provider': 2.1.6 + '@smithy/types': 2.6.0 + '@smithy/util-config-provider': 2.0.0 + '@smithy/util-middleware': 2.0.7 tslib: 2.6.2 dev: false - /@aws-sdk/token-providers/3.438.0: - resolution: - { - integrity: sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/middleware-host-header": 3.433.0 - "@aws-sdk/middleware-logger": 3.433.0 - "@aws-sdk/middleware-recursion-detection": 3.433.0 - "@aws-sdk/middleware-user-agent": 3.438.0 - "@aws-sdk/region-config-resolver": 3.433.0 - "@aws-sdk/types": 3.433.0 - "@aws-sdk/util-endpoints": 3.438.0 - "@aws-sdk/util-user-agent-browser": 3.433.0 - "@aws-sdk/util-user-agent-node": 3.437.0 - "@smithy/config-resolver": 2.0.16 - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/hash-node": 2.0.12 - "@smithy/invalid-dependency": 2.0.12 - "@smithy/middleware-content-length": 2.0.14 - "@smithy/middleware-endpoint": 2.1.3 - "@smithy/middleware-retry": 2.0.18 - "@smithy/middleware-serde": 2.0.12 - "@smithy/middleware-stack": 2.0.6 - "@smithy/node-config-provider": 2.1.3 - "@smithy/node-http-handler": 2.1.8 - "@smithy/property-provider": 2.0.13 - "@smithy/protocol-http": 3.0.8 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-base64": 2.0.0 - "@smithy/util-body-length-browser": 2.0.0 - "@smithy/util-body-length-node": 2.1.0 - "@smithy/util-defaults-mode-browser": 2.0.16 - "@smithy/util-defaults-mode-node": 2.0.21 - "@smithy/util-endpoints": 1.0.2 - "@smithy/util-retry": 2.0.5 - "@smithy/util-utf8": 2.0.0 + /@aws-sdk/token-providers@3.451.0: + resolution: {integrity: sha512-ij1L5iUbn6CwxVOT1PG4NFjsrsKN9c4N1YEM0lkl6DwmaNOscjLKGSNyj9M118vSWsOs1ZDbTwtj++h0O/BWrQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/property-provider': 2.0.15 + '@smithy/protocol-http': 3.0.10 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/types/3.433.0: - resolution: - { - integrity: sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/types@3.451.0: + resolution: {integrity: sha512-rhK+qeYwCIs+laJfWCcrYEjay2FR/9VABZJ2NRM89jV/fKqGVQR52E5DQqrI+oEIL5JHMhhnr4N4fyECMS35lw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-endpoints/3.438.0: - resolution: - { - integrity: sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/util-endpoints@3.451.0: + resolution: {integrity: sha512-giqLGBTnRIcKkDqwU7+GQhKbtJ5Ku35cjGQIfMyOga6pwTBUbaK0xW1Sdd8sBQ1GhApscnChzI9o/R9x0368vw==} + engines: {node: '>=14.0.0'} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/util-endpoints": 1.0.2 + '@aws-sdk/types': 3.451.0 + '@smithy/util-endpoints': 1.0.5 tslib: 2.6.2 dev: false - /@aws-sdk/util-locate-window/3.310.0: - resolution: - { - integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/util-locate-window@3.310.0: + resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-browser/3.433.0: - resolution: - { - integrity: sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==, - } + /@aws-sdk/util-user-agent-browser@3.451.0: + resolution: {integrity: sha512-Ws5mG3J0TQifH7OTcMrCTexo7HeSAc3cBgjfhS/ofzPUzVCtsyg0G7I6T7wl7vJJETix2Kst2cpOsxygPgPD9w==} dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-node/3.437.0: - resolution: - { - integrity: sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA==, - } - engines: { node: ">=14.0.0" } + /@aws-sdk/util-user-agent-node@3.451.0: + resolution: {integrity: sha512-TBzm6P+ql4mkGFAjPlO1CI+w3yUT+NulaiALjl/jNX/nnUp6HsJsVxJf4nVFQTG5KRV0iqMypcs7I3KIhH+LmA==} + engines: {node: '>=14.0.0'} peerDependencies: - aws-crt: ">=1.0.0" + aws-crt: '>=1.0.0' peerDependenciesMeta: aws-crt: optional: true dependencies: - "@aws-sdk/types": 3.433.0 - "@smithy/node-config-provider": 2.1.3 - "@smithy/types": 2.4.0 + '@aws-sdk/types': 3.451.0 + '@smithy/node-config-provider': 2.1.6 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-utf8-browser/3.259.0: - resolution: - { - integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==, - } + /@aws-sdk/util-utf8-browser@3.259.0: + resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} dependencies: tslib: 2.6.2 dev: false /@babel/code-frame@7.22.13: - resolution: - { - integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==, - } - engines: { node: ">=6.9.0" } + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/highlight": 7.22.13 + '@babel/highlight': 7.22.13 chalk: 2.4.2 dev: false /@babel/helper-validator-identifier@7.22.15: - resolution: - { - integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==, - } - engines: { node: ">=6.9.0" } + resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} + engines: {node: '>=6.9.0'} dev: false /@babel/highlight@7.22.13: - resolution: - { - integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==, - } - engines: { node: ">=6.9.0" } + resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/helper-validator-identifier": 7.22.15 + '@babel/helper-validator-identifier': 7.22.15 chalk: 2.4.2 js-tokens: 4.0.0 dev: false /@babel/runtime@7.22.15: - resolution: - { - integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==, - } - engines: { node: ">=6.9.0" } + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 dev: false /@changesets/apply-release-plan@6.1.4: - resolution: - { - integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==, - } - dependencies: - "@babel/runtime": 7.22.15 - "@changesets/config": 2.3.1 - "@changesets/get-version-range-type": 0.3.2 - "@changesets/git": 2.0.0 - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/config': 2.3.1 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 2.0.0 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 lodash.startcase: 4.4.0 @@ -1060,52 +798,43 @@ packages: dev: false /@changesets/assemble-release-plan@5.2.4: - resolution: - { - integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==, - } - dependencies: - "@babel/runtime": 7.22.15 - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.6 - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 semver: 7.5.4 dev: false /@changesets/changelog-git@0.1.14: - resolution: - { - integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==, - } + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} dependencies: - "@changesets/types": 5.2.1 + '@changesets/types': 5.2.1 dev: false /@changesets/cli@2.26.2: - resolution: - { - integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==, - } + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} hasBin: true dependencies: - "@babel/runtime": 7.22.15 - "@changesets/apply-release-plan": 6.1.4 - "@changesets/assemble-release-plan": 5.2.4 - "@changesets/changelog-git": 0.1.14 - "@changesets/config": 2.3.1 - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.6 - "@changesets/get-release-plan": 3.0.17 - "@changesets/git": 2.0.0 - "@changesets/logger": 0.0.5 - "@changesets/pre": 1.0.14 - "@changesets/read": 0.5.9 - "@changesets/types": 5.2.1 - "@changesets/write": 0.2.3 - "@manypkg/get-packages": 1.1.3 - "@types/is-ci": 3.0.0 - "@types/semver": 7.5.1 + '@babel/runtime': 7.22.15 + '@changesets/apply-release-plan': 6.1.4 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/changelog-git': 0.1.14 + '@changesets/config': 2.3.1 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/get-release-plan': 3.0.17 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@changesets/write': 0.2.3 + '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.0 + '@types/semver': 7.5.1 ansi-colors: 4.1.3 chalk: 2.4.2 enquirer: 2.4.1 @@ -1125,160 +854,118 @@ packages: dev: false /@changesets/config@2.3.1: - resolution: - { - integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==, - } - dependencies: - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.6 - "@changesets/logger": 0.0.5 - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 dev: false /@changesets/errors@0.1.4: - resolution: - { - integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==, - } + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} dependencies: extendable-error: 0.1.7 dev: false /@changesets/get-dependents-graph@1.3.6: - resolution: - { - integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==, - } + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} dependencies: - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 semver: 7.5.4 dev: false /@changesets/get-release-plan@3.0.17: - resolution: - { - integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==, - } + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} dependencies: - "@babel/runtime": 7.22.15 - "@changesets/assemble-release-plan": 5.2.4 - "@changesets/config": 2.3.1 - "@changesets/pre": 1.0.14 - "@changesets/read": 0.5.9 - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + '@babel/runtime': 7.22.15 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/config': 2.3.1 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 dev: false /@changesets/get-version-range-type@0.3.2: - resolution: - { - integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==, - } + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} dev: false /@changesets/git@2.0.0: - resolution: - { - integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==, - } - dependencies: - "@babel/runtime": 7.22.15 - "@changesets/errors": 0.1.4 - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 dev: false /@changesets/logger@0.0.5: - resolution: - { - integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==, - } + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} dependencies: chalk: 2.4.2 dev: false /@changesets/parse@0.3.16: - resolution: - { - integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==, - } + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} dependencies: - "@changesets/types": 5.2.1 + '@changesets/types': 5.2.1 js-yaml: 3.14.1 dev: false /@changesets/pre@1.0.14: - resolution: - { - integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==, - } - dependencies: - "@babel/runtime": 7.22.15 - "@changesets/errors": 0.1.4 - "@changesets/types": 5.2.1 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 dev: false /@changesets/read@0.5.9: - resolution: - { - integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==, - } - dependencies: - "@babel/runtime": 7.22.15 - "@changesets/git": 2.0.0 - "@changesets/logger": 0.0.5 - "@changesets/parse": 0.3.16 - "@changesets/types": 5.2.1 + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.16 + '@changesets/types': 5.2.1 chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 dev: false /@changesets/types@4.1.0: - resolution: - { - integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==, - } + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} dev: false /@changesets/types@5.2.1: - resolution: - { - integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==, - } + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} dev: false /@changesets/write@0.2.3: - resolution: - { - integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==, - } + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} dependencies: - "@babel/runtime": 7.22.15 - "@changesets/types": 5.2.1 + '@babel/runtime': 7.22.15 + '@changesets/types': 5.2.1 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 dev: false /@esbuild/android-arm64@0.18.20: - resolution: - { - integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true @@ -1286,11 +973,8 @@ packages: optional: true /@esbuild/android-arm64@0.19.3: - resolution: - { - integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true @@ -1298,11 +982,8 @@ packages: optional: true /@esbuild/android-arm@0.18.20: - resolution: - { - integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true @@ -1310,11 +991,8 @@ packages: optional: true /@esbuild/android-arm@0.19.3: - resolution: - { - integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==} + engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true @@ -1322,11 +1000,8 @@ packages: optional: true /@esbuild/android-x64@0.18.20: - resolution: - { - integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true @@ -1334,11 +1009,8 @@ packages: optional: true /@esbuild/android-x64@0.19.3: - resolution: - { - integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true @@ -1346,11 +1018,8 @@ packages: optional: true /@esbuild/darwin-arm64@0.18.20: - resolution: - { - integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -1358,11 +1027,8 @@ packages: optional: true /@esbuild/darwin-arm64@0.19.3: - resolution: - { - integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -1370,11 +1036,8 @@ packages: optional: true /@esbuild/darwin-x64@0.18.20: - resolution: - { - integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true @@ -1382,11 +1045,8 @@ packages: optional: true /@esbuild/darwin-x64@0.19.3: - resolution: - { - integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true @@ -1394,11 +1054,8 @@ packages: optional: true /@esbuild/freebsd-arm64@0.18.20: - resolution: - { - integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -1406,11 +1063,8 @@ packages: optional: true /@esbuild/freebsd-arm64@0.19.3: - resolution: - { - integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -1418,11 +1072,8 @@ packages: optional: true /@esbuild/freebsd-x64@0.18.20: - resolution: - { - integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true @@ -1430,11 +1081,8 @@ packages: optional: true /@esbuild/freebsd-x64@0.19.3: - resolution: - { - integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true @@ -1442,11 +1090,8 @@ packages: optional: true /@esbuild/linux-arm64@0.18.20: - resolution: - { - integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true @@ -1454,11 +1099,8 @@ packages: optional: true /@esbuild/linux-arm64@0.19.3: - resolution: - { - integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true @@ -1466,11 +1108,8 @@ packages: optional: true /@esbuild/linux-arm@0.18.20: - resolution: - { - integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true @@ -1478,11 +1117,8 @@ packages: optional: true /@esbuild/linux-arm@0.19.3: - resolution: - { - integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true @@ -1490,11 +1126,8 @@ packages: optional: true /@esbuild/linux-ia32@0.18.20: - resolution: - { - integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true @@ -1502,11 +1135,8 @@ packages: optional: true /@esbuild/linux-ia32@0.19.3: - resolution: - { - integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true @@ -1514,11 +1144,8 @@ packages: optional: true /@esbuild/linux-loong64@0.18.20: - resolution: - { - integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true @@ -1526,11 +1153,8 @@ packages: optional: true /@esbuild/linux-loong64@0.19.3: - resolution: - { - integrity: sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true @@ -1538,11 +1162,8 @@ packages: optional: true /@esbuild/linux-mips64el@0.18.20: - resolution: - { - integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true @@ -1550,11 +1171,8 @@ packages: optional: true /@esbuild/linux-mips64el@0.19.3: - resolution: - { - integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true @@ -1562,11 +1180,8 @@ packages: optional: true /@esbuild/linux-ppc64@0.18.20: - resolution: - { - integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true @@ -1574,11 +1189,8 @@ packages: optional: true /@esbuild/linux-ppc64@0.19.3: - resolution: - { - integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true @@ -1586,11 +1198,8 @@ packages: optional: true /@esbuild/linux-riscv64@0.18.20: - resolution: - { - integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true @@ -1598,11 +1207,8 @@ packages: optional: true /@esbuild/linux-riscv64@0.19.3: - resolution: - { - integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true @@ -1610,11 +1216,8 @@ packages: optional: true /@esbuild/linux-s390x@0.18.20: - resolution: - { - integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true @@ -1622,11 +1225,8 @@ packages: optional: true /@esbuild/linux-s390x@0.19.3: - resolution: - { - integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true @@ -1634,11 +1234,8 @@ packages: optional: true /@esbuild/linux-x64@0.18.20: - resolution: - { - integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true @@ -1646,11 +1243,8 @@ packages: optional: true /@esbuild/linux-x64@0.19.3: - resolution: - { - integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true @@ -1658,11 +1252,8 @@ packages: optional: true /@esbuild/netbsd-x64@0.18.20: - resolution: - { - integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true @@ -1670,11 +1261,8 @@ packages: optional: true /@esbuild/netbsd-x64@0.19.3: - resolution: - { - integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true @@ -1682,11 +1270,8 @@ packages: optional: true /@esbuild/openbsd-x64@0.18.20: - resolution: - { - integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true @@ -1694,11 +1279,8 @@ packages: optional: true /@esbuild/openbsd-x64@0.19.3: - resolution: - { - integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true @@ -1706,11 +1288,8 @@ packages: optional: true /@esbuild/sunos-x64@0.18.20: - resolution: - { - integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true @@ -1718,11 +1297,8 @@ packages: optional: true /@esbuild/sunos-x64@0.19.3: - resolution: - { - integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true @@ -1730,11 +1306,8 @@ packages: optional: true /@esbuild/win32-arm64@0.18.20: - resolution: - { - integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true @@ -1742,11 +1315,8 @@ packages: optional: true /@esbuild/win32-arm64@0.19.3: - resolution: - { - integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true @@ -1754,11 +1324,8 @@ packages: optional: true /@esbuild/win32-ia32@0.18.20: - resolution: - { - integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true @@ -1766,11 +1333,8 @@ packages: optional: true /@esbuild/win32-ia32@0.19.3: - resolution: - { - integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true @@ -1778,11 +1342,8 @@ packages: optional: true /@esbuild/win32-x64@0.18.20: - resolution: - { - integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true @@ -1790,11 +1351,8 @@ packages: optional: true /@esbuild/win32-x64@0.19.3: - resolution: - { - integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true @@ -1802,11 +1360,8 @@ packages: optional: true /@isaacs/cliui@8.0.2: - resolution: - { - integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 @@ -1817,824 +1372,593 @@ packages: dev: false /@jridgewell/gen-mapping@0.3.3: - resolution: - { - integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, - } - engines: { node: ">=6.0.0" } + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} dependencies: - "@jridgewell/set-array": 1.1.2 - "@jridgewell/sourcemap-codec": 1.4.15 - "@jridgewell/trace-mapping": 0.3.19 + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 dev: false /@jridgewell/resolve-uri@3.1.1: - resolution: - { - integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, - } - engines: { node: ">=6.0.0" } + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} dev: false /@jridgewell/set-array@1.1.2: - resolution: - { - integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, - } - engines: { node: ">=6.0.0" } + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} dev: false /@jridgewell/sourcemap-codec@1.4.15: - resolution: - { - integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, - } + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: false /@jridgewell/trace-mapping@0.3.19: - resolution: - { - integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==, - } + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: - "@jridgewell/resolve-uri": 3.1.1 - "@jridgewell/sourcemap-codec": 1.4.15 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: false /@manypkg/find-root@1.1.0: - resolution: - { - integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, - } + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - "@babel/runtime": 7.22.15 - "@types/node": 12.20.55 + '@babel/runtime': 7.22.15 + '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 dev: false /@manypkg/get-packages@1.1.3: - resolution: - { - integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, - } - dependencies: - "@babel/runtime": 7.22.15 - "@changesets/types": 4.1.0 - "@manypkg/find-root": 1.1.0 + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 dev: false /@nodelib/fs.scandir@2.1.5: - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: - "@nodelib/fs.stat": 2.0.5 + '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 dev: false /@nodelib/fs.stat@2.0.5: - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} dev: false /@nodelib/fs.walk@1.2.8: - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: - "@nodelib/fs.scandir": 2.1.5 + '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 dev: false /@pkgjs/parseargs@0.11.0: - resolution: - { - integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, - } - engines: { node: ">=14" } + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} requiresBuild: true dev: false optional: true - /@smithy/abort-controller/2.0.12: - resolution: - { - integrity: sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==, - } - engines: { node: ">=14.0.0" } + /@smithy/abort-controller@2.0.14: + resolution: {integrity: sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/config-resolver/2.0.16: - resolution: - { - integrity: sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==, - } - engines: { node: ">=14.0.0" } + /@smithy/config-resolver@2.0.19: + resolution: {integrity: sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/node-config-provider": 2.1.3 - "@smithy/types": 2.4.0 - "@smithy/util-config-provider": 2.0.0 - "@smithy/util-middleware": 2.0.5 + '@smithy/node-config-provider': 2.1.6 + '@smithy/types': 2.6.0 + '@smithy/util-config-provider': 2.0.0 + '@smithy/util-middleware': 2.0.7 tslib: 2.6.2 dev: false - /@smithy/credential-provider-imds/2.0.18: - resolution: - { - integrity: sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==, - } - engines: { node: ">=14.0.0" } + /@smithy/credential-provider-imds@2.1.2: + resolution: {integrity: sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/node-config-provider": 2.1.3 - "@smithy/property-provider": 2.0.13 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 + '@smithy/node-config-provider': 2.1.6 + '@smithy/property-provider': 2.0.15 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 tslib: 2.6.2 dev: false - /@smithy/eventstream-codec/2.0.12: - resolution: - { - integrity: sha512-ZZQLzHBJkbiAAdj2C5K+lBlYp/XJ+eH2uy+jgJgYIFW/o5AM59Hlj7zyI44/ZTDIQWmBxb3EFv/c5t44V8/g8A==, - } + /@smithy/eventstream-codec@2.0.14: + resolution: {integrity: sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA==} dependencies: - "@aws-crypto/crc32": 3.0.0 - "@smithy/types": 2.4.0 - "@smithy/util-hex-encoding": 2.0.0 + '@aws-crypto/crc32': 3.0.0 + '@smithy/types': 2.6.0 + '@smithy/util-hex-encoding': 2.0.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-browser/2.0.12: - resolution: - { - integrity: sha512-0pi8QlU/pwutNshoeJcbKR1p7Ie5STd8UFAMX5xhSoSJjNlxIv/OsHbF023jscMRN2Prrqd6ToGgdCnsZVQjvg==, - } - engines: { node: ">=14.0.0" } + /@smithy/eventstream-serde-browser@2.0.14: + resolution: {integrity: sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/eventstream-serde-universal": 2.0.12 - "@smithy/types": 2.4.0 + '@smithy/eventstream-serde-universal': 2.0.14 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-config-resolver/2.0.12: - resolution: - { - integrity: sha512-I0XfwQkIX3gAnbrU5rLMkBSjTM9DHttdbLwf12CXmj7SSI5dT87PxtKLRrZGanaCMbdf2yCep+MW5/4M7IbvQA==, - } - engines: { node: ">=14.0.0" } + /@smithy/eventstream-serde-config-resolver@2.0.14: + resolution: {integrity: sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-node/2.0.12: - resolution: - { - integrity: sha512-vf1vMHGOkG3uqN9x1zKOhnvW/XgvhJXWqjV6zZiT2FMjlEayugQ1mzpSqr7uf89+BzjTzuZKERmOsEAmewLbxw==, - } - engines: { node: ">=14.0.0" } + /@smithy/eventstream-serde-node@2.0.14: + resolution: {integrity: sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/eventstream-serde-universal": 2.0.12 - "@smithy/types": 2.4.0 + '@smithy/eventstream-serde-universal': 2.0.14 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-universal/2.0.12: - resolution: - { - integrity: sha512-xZ3ZNpCxIND+q+UCy7y1n1/5VQEYicgSTNCcPqsKawX+Vd+6OcFX7gUHMyPzL8cZr+GdmJuxNleqHlH4giK2tw==, - } - engines: { node: ">=14.0.0" } + /@smithy/eventstream-serde-universal@2.0.14: + resolution: {integrity: sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/eventstream-codec": 2.0.12 - "@smithy/types": 2.4.0 + '@smithy/eventstream-codec': 2.0.14 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/fetch-http-handler/2.2.4: - resolution: - { - integrity: sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==, - } + /@smithy/fetch-http-handler@2.2.7: + resolution: {integrity: sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ==} dependencies: - "@smithy/protocol-http": 3.0.8 - "@smithy/querystring-builder": 2.0.12 - "@smithy/types": 2.4.0 - "@smithy/util-base64": 2.0.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/querystring-builder': 2.0.14 + '@smithy/types': 2.6.0 + '@smithy/util-base64': 2.0.1 tslib: 2.6.2 dev: false - /@smithy/hash-node/2.0.12: - resolution: - { - integrity: sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==, - } - engines: { node: ">=14.0.0" } + /@smithy/hash-node@2.0.16: + resolution: {integrity: sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 - "@smithy/util-buffer-from": 2.0.0 - "@smithy/util-utf8": 2.0.0 + '@smithy/types': 2.6.0 + '@smithy/util-buffer-from': 2.0.0 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 dev: false - /@smithy/invalid-dependency/2.0.12: - resolution: - { - integrity: sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==, - } + /@smithy/invalid-dependency@2.0.14: + resolution: {integrity: sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ==} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/is-array-buffer/2.0.0: - resolution: - { - integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==, - } - engines: { node: ">=14.0.0" } + /@smithy/is-array-buffer@2.0.0: + resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/middleware-content-length/2.0.14: - resolution: - { - integrity: sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==, - } - engines: { node: ">=14.0.0" } + /@smithy/middleware-content-length@2.0.16: + resolution: {integrity: sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/protocol-http": 3.0.8 - "@smithy/types": 2.4.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/middleware-endpoint/2.1.3: - resolution: - { - integrity: sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==, - } - engines: { node: ">=14.0.0" } + /@smithy/middleware-endpoint@2.2.1: + resolution: {integrity: sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/middleware-serde": 2.0.12 - "@smithy/node-config-provider": 2.1.3 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 - "@smithy/url-parser": 2.0.12 - "@smithy/util-middleware": 2.0.5 + '@smithy/middleware-serde': 2.0.14 + '@smithy/node-config-provider': 2.1.6 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-middleware': 2.0.7 tslib: 2.6.2 dev: false - /@smithy/middleware-retry/2.0.18: - resolution: - { - integrity: sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==, - } - engines: { node: ">=14.0.0" } + /@smithy/middleware-retry@2.0.21: + resolution: {integrity: sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/node-config-provider": 2.1.3 - "@smithy/protocol-http": 3.0.8 - "@smithy/service-error-classification": 2.0.5 - "@smithy/types": 2.4.0 - "@smithy/util-middleware": 2.0.5 - "@smithy/util-retry": 2.0.5 + '@smithy/node-config-provider': 2.1.6 + '@smithy/protocol-http': 3.0.10 + '@smithy/service-error-classification': 2.0.7 + '@smithy/types': 2.6.0 + '@smithy/util-middleware': 2.0.7 + '@smithy/util-retry': 2.0.7 tslib: 2.6.2 uuid: 8.3.2 dev: false - /@smithy/middleware-serde/2.0.12: - resolution: - { - integrity: sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==, - } - engines: { node: ">=14.0.0" } + /@smithy/middleware-serde@2.0.14: + resolution: {integrity: sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/middleware-stack/2.0.6: - resolution: - { - integrity: sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==, - } - engines: { node: ">=14.0.0" } + /@smithy/middleware-stack@2.0.8: + resolution: {integrity: sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/node-config-provider/2.1.3: - resolution: - { - integrity: sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==, - } - engines: { node: ">=14.0.0" } + /@smithy/node-config-provider@2.1.6: + resolution: {integrity: sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/property-provider": 2.0.13 - "@smithy/shared-ini-file-loader": 2.2.2 - "@smithy/types": 2.4.0 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/node-http-handler/2.1.8: - resolution: - { - integrity: sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==, - } - engines: { node: ">=14.0.0" } + /@smithy/node-http-handler@2.1.10: + resolution: {integrity: sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/abort-controller": 2.0.12 - "@smithy/protocol-http": 3.0.8 - "@smithy/querystring-builder": 2.0.12 - "@smithy/types": 2.4.0 + '@smithy/abort-controller': 2.0.14 + '@smithy/protocol-http': 3.0.10 + '@smithy/querystring-builder': 2.0.14 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/property-provider/2.0.13: - resolution: - { - integrity: sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==, - } - engines: { node: ">=14.0.0" } + /@smithy/property-provider@2.0.15: + resolution: {integrity: sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/protocol-http/3.0.8: - resolution: - { - integrity: sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==, - } - engines: { node: ">=14.0.0" } + /@smithy/protocol-http@3.0.10: + resolution: {integrity: sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/querystring-builder/2.0.12: - resolution: - { - integrity: sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==, - } - engines: { node: ">=14.0.0" } + /@smithy/querystring-builder@2.0.14: + resolution: {integrity: sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 - "@smithy/util-uri-escape": 2.0.0 + '@smithy/types': 2.6.0 + '@smithy/util-uri-escape': 2.0.0 tslib: 2.6.2 dev: false - /@smithy/querystring-parser/2.0.12: - resolution: - { - integrity: sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==, - } - engines: { node: ">=14.0.0" } + /@smithy/querystring-parser@2.0.14: + resolution: {integrity: sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/service-error-classification/2.0.5: - resolution: - { - integrity: sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==, - } - engines: { node: ">=14.0.0" } + /@smithy/service-error-classification@2.0.7: + resolution: {integrity: sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 dev: false - /@smithy/shared-ini-file-loader/2.2.2: - resolution: - { - integrity: sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==, - } - engines: { node: ">=14.0.0" } + /@smithy/shared-ini-file-loader@2.2.5: + resolution: {integrity: sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/signature-v4/2.0.12: - resolution: - { - integrity: sha512-6Kc2lCZEVmb1nNYngyNbWpq0d82OZwITH11SW/Q0U6PX5fH7B2cIcFe7o6eGEFPkTZTP8itTzmYiGcECL0D0Lw==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@smithy/eventstream-codec": 2.0.12 - "@smithy/is-array-buffer": 2.0.0 - "@smithy/types": 2.4.0 - "@smithy/util-hex-encoding": 2.0.0 - "@smithy/util-middleware": 2.0.5 - "@smithy/util-uri-escape": 2.0.0 - "@smithy/util-utf8": 2.0.0 + /@smithy/signature-v4@2.0.16: + resolution: {integrity: sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/eventstream-codec': 2.0.14 + '@smithy/is-array-buffer': 2.0.0 + '@smithy/types': 2.6.0 + '@smithy/util-hex-encoding': 2.0.0 + '@smithy/util-middleware': 2.0.7 + '@smithy/util-uri-escape': 2.0.0 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 dev: false - /@smithy/smithy-client/2.1.12: - resolution: - { - integrity: sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==, - } - engines: { node: ">=14.0.0" } + /@smithy/smithy-client@2.1.16: + resolution: {integrity: sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/middleware-stack": 2.0.6 - "@smithy/types": 2.4.0 - "@smithy/util-stream": 2.0.17 + '@smithy/middleware-stack': 2.0.8 + '@smithy/types': 2.6.0 + '@smithy/util-stream': 2.0.21 tslib: 2.6.2 dev: false - /@smithy/types/2.4.0: - resolution: - { - integrity: sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==, - } - engines: { node: ">=14.0.0" } + /@smithy/types@2.6.0: + resolution: {integrity: sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/url-parser/2.0.12: - resolution: - { - integrity: sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==, - } + /@smithy/url-parser@2.0.14: + resolution: {integrity: sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw==} dependencies: - "@smithy/querystring-parser": 2.0.12 - "@smithy/types": 2.4.0 + '@smithy/querystring-parser': 2.0.14 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/util-base64/2.0.0: - resolution: - { - integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-base64@2.0.1: + resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/util-buffer-from": 2.0.0 + '@smithy/util-buffer-from': 2.0.0 tslib: 2.6.2 dev: false - /@smithy/util-body-length-browser/2.0.0: - resolution: - { - integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==, - } + /@smithy/util-body-length-browser@2.0.0: + resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-body-length-node/2.1.0: - resolution: - { - integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-body-length-node@2.1.0: + resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-buffer-from/2.0.0: - resolution: - { - integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-buffer-from@2.0.0: + resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/is-array-buffer": 2.0.0 + '@smithy/is-array-buffer': 2.0.0 tslib: 2.6.2 dev: false - /@smithy/util-config-provider/2.0.0: - resolution: - { - integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-config-provider@2.0.0: + resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser/2.0.16: - resolution: - { - integrity: sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==, - } - engines: { node: ">= 10.0.0" } + /@smithy/util-defaults-mode-browser@2.0.20: + resolution: {integrity: sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw==} + engines: {node: '>= 10.0.0'} dependencies: - "@smithy/property-provider": 2.0.13 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 + '@smithy/property-provider': 2.0.15 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node/2.0.21: - resolution: - { - integrity: sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==, - } - engines: { node: ">= 10.0.0" } + /@smithy/util-defaults-mode-node@2.0.26: + resolution: {integrity: sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg==} + engines: {node: '>= 10.0.0'} dependencies: - "@smithy/config-resolver": 2.0.16 - "@smithy/credential-provider-imds": 2.0.18 - "@smithy/node-config-provider": 2.1.3 - "@smithy/property-provider": 2.0.13 - "@smithy/smithy-client": 2.1.12 - "@smithy/types": 2.4.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/credential-provider-imds': 2.1.2 + '@smithy/node-config-provider': 2.1.6 + '@smithy/property-provider': 2.0.15 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/util-endpoints/1.0.2: - resolution: - { - integrity: sha512-QEdq+sP68IJHAMVB2ugKVVZEWeKQtZLuf+akHzc8eTVElsZ2ZdVLWC6Cp+uKjJ/t4yOj1qu6ZzyxJQEQ8jdEjg==, - } - engines: { node: ">= 14.0.0" } + /@smithy/util-endpoints@1.0.5: + resolution: {integrity: sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw==} + engines: {node: '>= 14.0.0'} dependencies: - "@smithy/node-config-provider": 2.1.3 - "@smithy/types": 2.4.0 + '@smithy/node-config-provider': 2.1.6 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/util-hex-encoding/2.0.0: - resolution: - { - integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-hex-encoding@2.0.0: + resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-middleware/2.0.5: - resolution: - { - integrity: sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-middleware@2.0.7: + resolution: {integrity: sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/types": 2.4.0 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/util-retry/2.0.5: - resolution: - { - integrity: sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==, - } - engines: { node: ">= 14.0.0" } + /@smithy/util-retry@2.0.7: + resolution: {integrity: sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q==} + engines: {node: '>= 14.0.0'} dependencies: - "@smithy/service-error-classification": 2.0.5 - "@smithy/types": 2.4.0 + '@smithy/service-error-classification': 2.0.7 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@smithy/util-stream/2.0.17: - resolution: - { - integrity: sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==, - } - engines: { node: ">=14.0.0" } - dependencies: - "@smithy/fetch-http-handler": 2.2.4 - "@smithy/node-http-handler": 2.1.8 - "@smithy/types": 2.4.0 - "@smithy/util-base64": 2.0.0 - "@smithy/util-buffer-from": 2.0.0 - "@smithy/util-hex-encoding": 2.0.0 - "@smithy/util-utf8": 2.0.0 + /@smithy/util-stream@2.0.21: + resolution: {integrity: sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/node-http-handler': 2.1.10 + '@smithy/types': 2.6.0 + '@smithy/util-base64': 2.0.1 + '@smithy/util-buffer-from': 2.0.0 + '@smithy/util-hex-encoding': 2.0.0 + '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 dev: false - /@smithy/util-uri-escape/2.0.0: - resolution: - { - integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-uri-escape@2.0.0: + resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} + engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-utf8/2.0.0: - resolution: - { - integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-utf8@2.0.2: + resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/util-buffer-from": 2.0.0 + '@smithy/util-buffer-from': 2.0.0 tslib: 2.6.2 dev: false - /@smithy/util-waiter/2.0.12: - resolution: - { - integrity: sha512-3sENmyVa1NnOPoiT2NCApPmu7ukP7S/v7kL9IxNmnygkDldn7/yK0TP42oPJLwB2k3mospNsSePIlqdXEUyPHA==, - } - engines: { node: ">=14.0.0" } + /@smithy/util-waiter@2.0.14: + resolution: {integrity: sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA==} + engines: {node: '>=14.0.0'} dependencies: - "@smithy/abort-controller": 2.0.12 - "@smithy/types": 2.4.0 + '@smithy/abort-controller': 2.0.14 + '@smithy/types': 2.6.0 tslib: 2.6.2 dev: false - /@types/aws-lambda/8.10.125: - resolution: - { - integrity: sha512-Vqw/WMlV4O1fJT6capim01v7VLDZkcX1n6Yhb52E7IfnMqYbNfwHfyDV8rRN42NLBtdDvfaqcCqs2K0fr5ljZw==, - } + /@types/aws-lambda@8.10.125: + resolution: {integrity: sha512-Vqw/WMlV4O1fJT6capim01v7VLDZkcX1n6Yhb52E7IfnMqYbNfwHfyDV8rRN42NLBtdDvfaqcCqs2K0fr5ljZw==} dev: false /@types/common-tags@1.8.2: - resolution: - { - integrity: sha512-Z5UcOnlqxFm0tCCTEhkcVOfSihWOMyKypIWHtQNSYh6fMdPUIVpNdLBYutDpDXVHsMUrYzI2IczUHXIzpUovmQ==, - } + resolution: {integrity: sha512-Z5UcOnlqxFm0tCCTEhkcVOfSihWOMyKypIWHtQNSYh6fMdPUIVpNdLBYutDpDXVHsMUrYzI2IczUHXIzpUovmQ==} dev: true /@types/is-ci@3.0.0: - resolution: - { - integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==, - } + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} dependencies: ci-info: 3.8.0 dev: false /@types/minimist@1.2.2: - resolution: - { - integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, - } + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: false /@types/node@12.20.55: - resolution: - { - integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, - } + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: false /@types/node@20.7.0: - resolution: - { - integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==, - } + resolution: {integrity: sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==} dev: false /@types/node@20.8.8: - resolution: - { - integrity: sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==, - } + resolution: {integrity: sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==} dependencies: undici-types: 5.25.3 dev: true /@types/normalize-package-data@2.4.1: - resolution: - { - integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, - } + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: false /@types/pako@2.0.2: - resolution: - { - integrity: sha512-AtTbzIwhvLMTEUPudP3hxUwNK50DoX3amfVJmmL7WQH5iF3Kfqs8pG1tStsewHqmh75ULmjjldKn/B70D6DNcQ==, - } + resolution: {integrity: sha512-AtTbzIwhvLMTEUPudP3hxUwNK50DoX3amfVJmmL7WQH5iF3Kfqs8pG1tStsewHqmh75ULmjjldKn/B70D6DNcQ==} dev: false /@types/semver@7.5.1: - resolution: - { - integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==, - } + resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} dev: false /ansi-colors@4.1.3: - resolution: - { - integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} dev: false /ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} dev: false /ansi-regex@6.0.1: - resolution: - { - integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} dev: false /ansi-styles@3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: false /ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: false /ansi-styles@6.2.1: - resolution: - { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} dev: false /any-promise@1.3.0: - resolution: - { - integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, - } + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: false /anymatch@3.1.3: - resolution: - { - integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 dev: false /argparse@1.0.10: - resolution: - { - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, - } + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: false /array-buffer-byte-length@1.0.0: - resolution: - { - integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, - } + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 dev: false /array-union@2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} dev: false /array.prototype.flat@1.3.2: - resolution: - { - integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2643,11 +1967,8 @@ packages: dev: false /arraybuffer.prototype.slice@1.0.2: - resolution: - { - integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 @@ -2659,128 +1980,90 @@ packages: dev: false /arrify@1.0.1: - resolution: - { - integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} dev: false /available-typed-arrays@1.0.5: - resolution: - { - integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} dev: false /balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: false /better-path-resolve@1.0.0: - resolution: - { - integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} dependencies: is-windows: 1.0.2 dev: false /binary-extensions@2.2.0: - resolution: - { - integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} dev: false - /brace-expansion/1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: false /brace-expansion@2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, - } + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: false /braces@3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: false /breakword@1.0.6: - resolution: - { - integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==, - } + resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} dependencies: wcwidth: 1.0.1 dev: false /bun-types@1.0.3: - resolution: - { - integrity: sha512-XlyKVdYCHa7K5PHYGcwOVOrGE/bMnLS51y7zFA3ZAAXyiQ6dTaNXNCWTTufgII/6ruN770uhAXphQmzvU/r2fQ==, - } + resolution: {integrity: sha512-XlyKVdYCHa7K5PHYGcwOVOrGE/bMnLS51y7zFA3ZAAXyiQ6dTaNXNCWTTufgII/6ruN770uhAXphQmzvU/r2fQ==} dev: false /bundle-require@4.0.1(esbuild@0.18.20): - resolution: - { - integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: ">=0.17" + esbuild: '>=0.17' dependencies: esbuild: 0.18.20 load-tsconfig: 0.2.5 dev: false /cac@6.7.14: - resolution: - { - integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} dev: false /call-bind@1.0.2: - resolution: - { - integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, - } + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 dev: false /camelcase-keys@6.2.2: - resolution: - { - integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 map-obj: 4.3.0 @@ -2788,19 +2071,13 @@ packages: dev: false /camelcase@5.3.1: - resolution: - { - integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} dev: false /chalk@2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -2808,29 +2085,20 @@ packages: dev: false /chalk@4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: false /chardet@0.7.0: - resolution: - { - integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, - } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false /chokidar@3.5.3: - resolution: - { - integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, - } - engines: { node: ">= 8.10.0" } + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -2844,18 +2112,12 @@ packages: dev: false /ci-info@3.8.0: - resolution: - { - integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} dev: false /cliui@6.0.0: - resolution: - { - integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, - } + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -2863,11 +2125,8 @@ packages: dev: false /cliui@8.0.1: - resolution: - { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -2875,82 +2134,52 @@ packages: dev: false /clone@1.0.4: - resolution: - { - integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, - } - engines: { node: ">=0.8" } + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} dev: false /color-convert@1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, - } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 dev: false /color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: ">=7.0.0" } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: false /color-name@1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, - } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: false /color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false /commander@11.0.0: - resolution: - { - integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, - } - engines: { node: ">=16" } + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} dev: false /commander@4.1.1: - resolution: - { - integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} dev: false /common-tags@1.8.2: - resolution: - { - integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, - } - engines: { node: ">=4.0.0" } + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} dev: true /concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: false /cross-spawn@5.1.0: - resolution: - { - integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, - } + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -2958,11 +2187,8 @@ packages: dev: false /cross-spawn@7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -2970,32 +2196,20 @@ packages: dev: false /csv-generate@3.4.3: - resolution: - { - integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==, - } + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} dev: false /csv-parse@4.16.3: - resolution: - { - integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==, - } + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} dev: false /csv-stringify@5.6.5: - resolution: - { - integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==, - } + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} dev: false /csv@5.5.3: - resolution: - { - integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==, - } - engines: { node: ">= 0.1.90" } + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} dependencies: csv-generate: 3.4.3 csv-parse: 4.16.3 @@ -3004,13 +2218,10 @@ packages: dev: false /debug@4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: { node: ">=6.0" } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -3019,109 +2230,73 @@ packages: dev: false /decamelize-keys@1.1.1: - resolution: - { - integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 map-obj: 1.0.1 dev: false /decamelize@1.2.0: - resolution: - { - integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} dev: false /defaults@1.0.4: - resolution: - { - integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, - } + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: false /define-properties@1.2.0: - resolution: - { - integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: false /detect-indent@6.1.0: - resolution: - { - integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} dev: false /dir-glob@3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: false /eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false /emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false /emoji-regex@9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: false /enquirer@2.4.1: - resolution: - { - integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, - } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 dev: false /error-ex@1.3.2: - resolution: - { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, - } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: false /es-abstract@1.22.1: - resolution: - { - integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -3165,11 +2340,8 @@ packages: dev: false /es-set-tostringtag@2.0.1: - resolution: - { - integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 has: 1.0.3 @@ -3177,20 +2349,14 @@ packages: dev: false /es-shim-unscopables@1.0.0: - resolution: - { - integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, - } + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 dev: false /es-to-primitive@1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 @@ -3198,102 +2364,84 @@ packages: dev: false /esbuild@0.18.20: - resolution: - { - integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - "@esbuild/android-arm": 0.18.20 - "@esbuild/android-arm64": 0.18.20 - "@esbuild/android-x64": 0.18.20 - "@esbuild/darwin-arm64": 0.18.20 - "@esbuild/darwin-x64": 0.18.20 - "@esbuild/freebsd-arm64": 0.18.20 - "@esbuild/freebsd-x64": 0.18.20 - "@esbuild/linux-arm": 0.18.20 - "@esbuild/linux-arm64": 0.18.20 - "@esbuild/linux-ia32": 0.18.20 - "@esbuild/linux-loong64": 0.18.20 - "@esbuild/linux-mips64el": 0.18.20 - "@esbuild/linux-ppc64": 0.18.20 - "@esbuild/linux-riscv64": 0.18.20 - "@esbuild/linux-s390x": 0.18.20 - "@esbuild/linux-x64": 0.18.20 - "@esbuild/netbsd-x64": 0.18.20 - "@esbuild/openbsd-x64": 0.18.20 - "@esbuild/sunos-x64": 0.18.20 - "@esbuild/win32-arm64": 0.18.20 - "@esbuild/win32-ia32": 0.18.20 - "@esbuild/win32-x64": 0.18.20 + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 dev: false /esbuild@0.19.3: - resolution: - { - integrity: sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - "@esbuild/android-arm": 0.19.3 - "@esbuild/android-arm64": 0.19.3 - "@esbuild/android-x64": 0.19.3 - "@esbuild/darwin-arm64": 0.19.3 - "@esbuild/darwin-x64": 0.19.3 - "@esbuild/freebsd-arm64": 0.19.3 - "@esbuild/freebsd-x64": 0.19.3 - "@esbuild/linux-arm": 0.19.3 - "@esbuild/linux-arm64": 0.19.3 - "@esbuild/linux-ia32": 0.19.3 - "@esbuild/linux-loong64": 0.19.3 - "@esbuild/linux-mips64el": 0.19.3 - "@esbuild/linux-ppc64": 0.19.3 - "@esbuild/linux-riscv64": 0.19.3 - "@esbuild/linux-s390x": 0.19.3 - "@esbuild/linux-x64": 0.19.3 - "@esbuild/netbsd-x64": 0.19.3 - "@esbuild/openbsd-x64": 0.19.3 - "@esbuild/sunos-x64": 0.19.3 - "@esbuild/win32-arm64": 0.19.3 - "@esbuild/win32-ia32": 0.19.3 - "@esbuild/win32-x64": 0.19.3 + '@esbuild/android-arm': 0.19.3 + '@esbuild/android-arm64': 0.19.3 + '@esbuild/android-x64': 0.19.3 + '@esbuild/darwin-arm64': 0.19.3 + '@esbuild/darwin-x64': 0.19.3 + '@esbuild/freebsd-arm64': 0.19.3 + '@esbuild/freebsd-x64': 0.19.3 + '@esbuild/linux-arm': 0.19.3 + '@esbuild/linux-arm64': 0.19.3 + '@esbuild/linux-ia32': 0.19.3 + '@esbuild/linux-loong64': 0.19.3 + '@esbuild/linux-mips64el': 0.19.3 + '@esbuild/linux-ppc64': 0.19.3 + '@esbuild/linux-riscv64': 0.19.3 + '@esbuild/linux-s390x': 0.19.3 + '@esbuild/linux-x64': 0.19.3 + '@esbuild/netbsd-x64': 0.19.3 + '@esbuild/openbsd-x64': 0.19.3 + '@esbuild/sunos-x64': 0.19.3 + '@esbuild/win32-arm64': 0.19.3 + '@esbuild/win32-ia32': 0.19.3 + '@esbuild/win32-x64': 0.19.3 dev: false /escalade@3.1.1: - resolution: - { - integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} dev: false /escape-string-regexp@1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, - } - engines: { node: ">=0.8.0" } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: false /esprima@4.0.1: - resolution: - { - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true dev: false /execa@5.1.1: - resolution: - { - integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -3307,11 +2455,8 @@ packages: dev: false /execa@8.0.1: - resolution: - { - integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, - } - engines: { node: ">=16.17" } + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -3325,18 +2470,12 @@ packages: dev: false /extendable-error@0.1.7: - resolution: - { - integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==, - } + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} dev: false /external-editor@3.1.0: - resolution: - { - integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 @@ -3344,106 +2483,76 @@ packages: dev: false /fast-glob@3.3.1: - resolution: - { - integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, - } - engines: { node: ">=8.6.0" } - dependencies: - "@nodelib/fs.stat": 2.0.5 - "@nodelib/fs.walk": 1.2.8 + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 dev: false - /fast-xml-parser/4.2.5: - resolution: - { - integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==, - } + /fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} hasBin: true dependencies: strnum: 1.0.5 dev: false - /fastq/1.15.0: - resolution: - { - integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, - } + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: false - /fill-range/7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, - } - engines: { node: ">=8" } + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: false /find-up@4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 dev: false /find-up@5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: false /find-yarn-workspace-root2@1.2.16: - resolution: - { - integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==, - } + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 dev: false /for-each@0.3.3: - resolution: - { - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, - } + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 dev: false /foreground-child@3.1.1: - resolution: - { - integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, - } - engines: { node: ">=14" } + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 dev: false /fs-extra@7.0.1: - resolution: - { - integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, - } - engines: { node: ">=6 <7 || >=8" } + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -3451,11 +2560,8 @@ packages: dev: false /fs-extra@8.1.0: - resolution: - { - integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, - } - engines: { node: ">=6 <7 || >=8" } + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -3463,36 +2569,24 @@ packages: dev: false /fs.realpath@1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: false /fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true dev: false optional: true /function-bind@1.1.1: - resolution: - { - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, - } + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: false /function.prototype.name@1.1.6: - resolution: - { - integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -3501,25 +2595,16 @@ packages: dev: false /functions-have-names@1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, - } + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: false /get-caller-file@2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, - } - engines: { node: 6.* || 8.* || >= 10.* } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} dev: false /get-intrinsic@1.2.1: - resolution: - { - integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, - } + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -3528,48 +2613,33 @@ packages: dev: false /get-stream@6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} dev: false /get-stream@8.0.1: - resolution: - { - integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, - } - engines: { node: ">=16" } + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} dev: false /get-symbol-description@1.0.0: - resolution: - { - integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 dev: false /glob-parent@5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: false /glob@10.3.10: - resolution: - { - integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, - } - engines: { node: ">=16 || 14 >=14.17" } + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 @@ -3580,10 +2650,7 @@ packages: dev: false /glob@7.1.6: - resolution: - { - integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, - } + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3594,21 +2661,15 @@ packages: dev: false /globalthis@1.0.3: - resolution: - { - integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.0 dev: false /globby@11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -3619,192 +2680,123 @@ packages: dev: false /gopd@1.0.1: - resolution: - { - integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, - } + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.1 dev: false /graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, - } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: false /grapheme-splitter@1.0.4: - resolution: - { - integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, - } + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: false /hard-rejection@2.1.0: - resolution: - { - integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} dev: false /has-bigints@1.0.2: - resolution: - { - integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, - } + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false /has-flag@3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} dev: false /has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} dev: false /has-property-descriptors@1.0.0: - resolution: - { - integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, - } + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.1 dev: false /has-proto@1.0.1: - resolution: - { - integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} dev: false /has-symbols@1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} dev: false /has-tostringtag@1.0.0: - resolution: - { - integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: false /has@1.0.3: - resolution: - { - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, - } - engines: { node: ">= 0.4.0" } + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 dev: false /hosted-git-info@2.8.9: - resolution: - { - integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, - } + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: false /human-id@1.0.2: - resolution: - { - integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==, - } + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: false /human-signals@2.1.0: - resolution: - { - integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, - } - engines: { node: ">=10.17.0" } + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} dev: false /human-signals@5.0.0: - resolution: - { - integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, - } - engines: { node: ">=16.17.0" } + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} dev: false /husky@8.0.3: - resolution: - { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, - } - engines: { node: ">=14" } + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} hasBin: true dev: false /iconv-lite@0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: false /ignore@5.2.4: - resolution: - { - integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, - } - engines: { node: ">= 4" } + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} dev: false /indent-string@4.0.0: - resolution: - { - integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} dev: false /inflight@1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: false /inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: false /internal-slot@1.0.5: - resolution: - { - integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 has: 1.0.3 @@ -3812,10 +2804,7 @@ packages: dev: false /is-array-buffer@3.0.2: - resolution: - { - integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, - } + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -3823,285 +2812,189 @@ packages: dev: false /is-arrayish@0.2.1: - resolution: - { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, - } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: false /is-bigint@1.0.4: - resolution: - { - integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, - } + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 dev: false /is-binary-path@2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 dev: false /is-boolean-object@1.1.2: - resolution: - { - integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 dev: false /is-callable@1.2.7: - resolution: - { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} dev: false /is-ci@3.0.1: - resolution: - { - integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==, - } + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: ci-info: 3.8.0 dev: false /is-core-module@2.13.0: - resolution: - { - integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==, - } + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 dev: false /is-date-object@1.0.5: - resolution: - { - integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: false /is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} dev: false /is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} dev: false /is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: false /is-negative-zero@2.0.2: - resolution: - { - integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} dev: false /is-number-object@1.0.7: - resolution: - { - integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: false /is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: { node: ">=0.12.0" } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} dev: false /is-plain-obj@1.1.0: - resolution: - { - integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} dev: false /is-regex@1.1.4: - resolution: - { - integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 dev: false /is-shared-array-buffer@1.0.2: - resolution: - { - integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, - } + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 dev: false /is-stream@2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} dev: false /is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false /is-string@1.0.7: - resolution: - { - integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: false /is-subdir@1.2.0: - resolution: - { - integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 dev: false /is-symbol@1.0.4: - resolution: - { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: false /is-typed-array@1.1.12: - resolution: - { - integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.11 dev: false /is-weakref@1.0.2: - resolution: - { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, - } + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: false /is-windows@1.0.2: - resolution: - { - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} dev: false /isarray@2.0.5: - resolution: - { - integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, - } + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: false /isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: false /jackspeak@2.3.6: - resolution: - { - integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, - } - engines: { node: ">=14" } + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} dependencies: - "@isaacs/cliui": 8.0.2 + '@isaacs/cliui': 8.0.2 optionalDependencies: - "@pkgjs/parseargs": 0.11.0 + '@pkgjs/parseargs': 0.11.0 dev: false /joycon@3.1.1: - resolution: - { - integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} dev: false /js-base64@3.7.5: - resolution: - { - integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==, - } + resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} dev: false /js-tokens@4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, - } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false /js-yaml@3.14.1: - resolution: - { - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, - } + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 @@ -4109,66 +3002,42 @@ packages: dev: false /json-parse-even-better-errors@2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, - } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: false /jsonfile@4.0.0: - resolution: - { - integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, - } + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 dev: false /kind-of@6.0.3: - resolution: - { - integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} dev: false /kleur@4.1.5: - resolution: - { - integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} dev: false /lilconfig@2.1.0: - resolution: - { - integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} dev: false /lines-and-columns@1.2.4: - resolution: - { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, - } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false /load-tsconfig@0.2.5: - resolution: - { - integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false /load-yaml-file@0.2.0: - resolution: - { - integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 @@ -4177,91 +3046,61 @@ packages: dev: false /locate-path@5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: false /locate-path@6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: false /lodash.sortby@4.7.0: - resolution: - { - integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, - } + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: false /lodash.startcase@4.4.0: - resolution: - { - integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, - } + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: false /lru-cache@10.0.1: - resolution: - { - integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==, - } - engines: { node: 14 || >=16.14 } + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} dev: false /lru-cache@4.1.5: - resolution: - { - integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, - } + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: pseudomap: 1.0.2 yallist: 2.1.2 dev: false /lru-cache@6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: false /map-obj@1.0.1: - resolution: - { - integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} dev: false /map-obj@4.3.0: - resolution: - { - integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} dev: false /meow@6.1.1: - resolution: - { - integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} dependencies: - "@types/minimist": 1.2.2 + '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -4275,80 +3114,53 @@ packages: dev: false /merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false /merge2@1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} dev: false /micromatch@4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, - } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: false /mimic-fn@2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} dev: false /mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} dev: false /min-indent@1.0.1: - resolution: - { - integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} dev: false /minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: false /minimatch@9.0.3: - resolution: - { - integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, - } - engines: { node: ">=16 || 14 >=14.17" } + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: false /minimist-options@4.1.0: - resolution: - { - integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 @@ -4356,33 +3168,21 @@ packages: dev: false /minipass@7.0.4: - resolution: - { - integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, - } - engines: { node: ">=16 || 14 >=14.17" } + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} dev: false /mixme@0.5.9: - resolution: - { - integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==, - } - engines: { node: ">= 8.0.0" } + resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} + engines: {node: '>= 8.0.0'} dev: false /ms@2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false /mz@2.7.0: - resolution: - { - integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, - } + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 object-assign: 4.1.1 @@ -4390,10 +3190,7 @@ packages: dev: false /normalize-package-data@2.5.0: - resolution: - { - integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, - } + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.4 @@ -4402,62 +3199,41 @@ packages: dev: false /normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} dev: false /npm-run-path@4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: false /npm-run-path@5.1.0: - resolution: - { - integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 dev: false /object-assign@4.1.1: - resolution: - { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} dev: false /object-inspect@1.12.3: - resolution: - { - integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, - } + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: false /object-keys@1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} dev: false /object.assign@4.1.4: - resolution: - { - integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -4466,236 +3242,158 @@ packages: dev: false /once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: false /onetime@5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: false /onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 dev: false /os-tmpdir@1.0.2: - resolution: - { - integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} dev: false /outdent@0.5.0: - resolution: - { - integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==, - } + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: false /p-filter@2.1.0: - resolution: - { - integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} dependencies: p-map: 2.1.0 dev: false /p-limit@2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: false /p-limit@3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: false /p-locate@4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: false /p-locate@5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: false /p-map@2.1.0: - resolution: - { - integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} dev: false /p-try@2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} dev: false /pako@2.1.0: - resolution: - { - integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==, - } + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} dev: false /parse-json@5.2.0: - resolution: - { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - "@babel/code-frame": 7.22.13 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: false /path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} dev: false /path-is-absolute@1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} dev: false /path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} dev: false /path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} dev: false /path-parse@1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, - } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: false /path-scurry@1.10.1: - resolution: - { - integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, - } - engines: { node: ">=16 || 14 >=14.17" } + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.0.1 minipass: 7.0.4 dev: false /path-type@4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: false /picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: ">=8.6" } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} dev: false /pify@4.0.1: - resolution: - { - integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} dev: false /pirates@4.0.6: - resolution: - { - integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, - } - engines: { node: ">= 6" } + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} dev: false /pkg-dir@4.2.0: - resolution: - { - integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 dev: false /postcss-load-config@4.0.1: - resolution: - { - integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, - } - engines: { node: ">= 14" } + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" + postcss: '>=8.0.9' + ts-node: '>=9.0.0' peerDependenciesMeta: postcss: optional: true @@ -4707,11 +3405,8 @@ packages: dev: false /preferred-pm@3.1.2: - resolution: - { - integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 @@ -4720,59 +3415,38 @@ packages: dev: false /prettier@2.8.8: - resolution: - { - integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, - } - engines: { node: ">=10.13.0" } + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} hasBin: true dev: false /prettier@3.0.3: - resolution: - { - integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==, - } - engines: { node: ">=14" } + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} hasBin: true dev: false /pseudomap@1.0.2: - resolution: - { - integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, - } + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: false /punycode@2.3.0: - resolution: - { - integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} dev: false /queue-microtask@1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: false /quick-lru@4.0.1: - resolution: - { - integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} dev: false /read-pkg-up@7.0.1: - resolution: - { - integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 @@ -4780,24 +3454,18 @@ packages: dev: false /read-pkg@5.2.0: - resolution: - { - integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: - "@types/normalize-package-data": 2.4.1 + '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 dev: false /read-yaml-file@1.1.0: - resolution: - { - integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 @@ -4806,39 +3474,27 @@ packages: dev: false /readdirp@3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, - } - engines: { node: ">=8.10.0" } + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: false /redent@3.0.0: - resolution: - { - integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 dev: false /regenerator-runtime@0.14.0: - resolution: - { - integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, - } + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: false /regexp.prototype.flags@1.5.0: - resolution: - { - integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -4846,33 +3502,21 @@ packages: dev: false /require-directory@2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} dev: false /require-main-filename@2.0.0: - resolution: - { - integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, - } + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: false /resolve-from@5.0.0: - resolution: - { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} dev: false /resolve@1.22.4: - resolution: - { - integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==, - } + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true dependencies: is-core-module: 2.13.0 @@ -4881,39 +3525,27 @@ packages: dev: false /reusify@1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, - } - engines: { iojs: ">=1.0.0", node: ">=0.10.0" } + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: false /rollup@3.29.1: - resolution: - { - integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==, - } - engines: { node: ">=14.18.0", npm: ">=8.0.0" } + resolution: {integrity: sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.3 dev: false /run-parallel@1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: false /safe-array-concat@1.0.1: - resolution: - { - integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, - } - engines: { node: ">=0.4" } + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -4922,10 +3554,7 @@ packages: dev: false /safe-regex-test@1.0.0: - resolution: - { - integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, - } + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -4933,79 +3562,52 @@ packages: dev: false /safer-buffer@2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, - } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false /semver@5.7.2: - resolution: - { - integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, - } + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true dev: false /semver@7.5.4: - resolution: - { - integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: false /set-blocking@2.0.0: - resolution: - { - integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, - } + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false /shebang-command@1.2.0: - resolution: - { - integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 dev: false /shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: false /shebang-regex@1.0.0: - resolution: - { - integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, - } - engines: { node: ">=0.10.0" } + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} dev: false /shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} dev: false /side-channel@1.0.4: - resolution: - { - integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, - } + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -5013,34 +3615,22 @@ packages: dev: false /signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: false /signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, - } - engines: { node: ">=14" } + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} dev: false /slash@3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} dev: false /smartwrap@2.0.2: - resolution: - { - integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} hasBin: true dependencies: array.prototype.flat: 1.3.2 @@ -5052,81 +3642,54 @@ packages: dev: false /source-map@0.8.0-beta.0: - resolution: - { - integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} dependencies: whatwg-url: 7.1.0 dev: false /spawndamnit@2.0.0: - resolution: - { - integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==, - } + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 dev: false /spdx-correct@3.2.0: - resolution: - { - integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, - } + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 dev: false /spdx-exceptions@2.3.0: - resolution: - { - integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, - } + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: false /spdx-expression-parse@3.0.1: - resolution: - { - integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, - } + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 dev: false /spdx-license-ids@3.0.13: - resolution: - { - integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==, - } + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: false /sprintf-js@1.0.3: - resolution: - { - integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, - } + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: false /stream-transform@2.1.3: - resolution: - { - integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==, - } + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: mixme: 0.5.9 dev: false /string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 @@ -5134,11 +3697,8 @@ packages: dev: false /string-width@5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 @@ -5146,11 +3706,8 @@ packages: dev: false /string.prototype.trim@1.2.8: - resolution: - { - integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -5158,10 +3715,7 @@ packages: dev: false /string.prototype.trimend@1.0.7: - resolution: - { - integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, - } + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -5169,10 +3723,7 @@ packages: dev: false /string.prototype.trimstart@1.0.7: - resolution: - { - integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, - } + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -5180,75 +3731,51 @@ packages: dev: false /strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: false /strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: false /strip-bom@3.0.0: - resolution: - { - integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} dev: false /strip-final-newline@2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} dev: false /strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} dev: false /strip-indent@3.0.0: - resolution: - { - integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: false - /strnum/1.0.5: - resolution: - { - integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, - } + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} dev: false - /sucrase/3.34.0: - resolution: - { - integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==, - } - engines: { node: ">=8" } + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} hasBin: true dependencies: - "@jridgewell/gen-mapping": 0.3.3 + '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -5258,139 +3785,94 @@ packages: dev: false /supports-color@5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: { node: ">=4" } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 dev: false /supports-color@7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: false /supports-preserve-symlinks-flag@1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} dev: false /term-size@2.2.1: - resolution: - { - integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} dev: false /thenify-all@1.6.0: - resolution: - { - integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, - } - engines: { node: ">=0.8" } + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 dev: false /thenify@3.3.1: - resolution: - { - integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, - } + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 dev: false /tmp@0.0.33: - resolution: - { - integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, - } - engines: { node: ">=0.6.0" } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: false /to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: { node: ">=8.0" } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: false /tr46@1.0.1: - resolution: - { - integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, - } + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: punycode: 2.3.0 dev: false /tree-kill@1.2.2: - resolution: - { - integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, - } + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: false /trim-newlines@3.0.1: - resolution: - { - integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} dev: false /ts-interface-checker@0.1.13: - resolution: - { - integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, - } + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: false - /tslib/1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false - /tslib/2.6.2: - resolution: - { - integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, - } + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: false - /tsup/7.2.0_typescript@5.2.2: - resolution: - { - integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==, - } - engines: { node: ">=16.14" } + /tsup@7.2.0(typescript@5.2.2): + resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} + engines: {node: '>=16.14'} hasBin: true peerDependencies: - "@swc/core": ^1 + '@swc/core': ^1 postcss: ^8.4.12 - typescript: ">=4.1.0" + typescript: '>=4.1.0' peerDependenciesMeta: - "@swc/core": + '@swc/core': optional: true postcss: optional: true @@ -5418,11 +3900,8 @@ packages: dev: false /tty-table@4.2.1: - resolution: - { - integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==, - } - engines: { node: ">=8.0.0" } + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + engines: {node: '>=8.0.0'} hasBin: true dependencies: chalk: 4.1.2 @@ -5435,10 +3914,7 @@ packages: dev: false /turbo-darwin-64@1.10.14: - resolution: - { - integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==, - } + resolution: {integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==} cpu: [x64] os: [darwin] requiresBuild: true @@ -5446,10 +3922,7 @@ packages: optional: true /turbo-darwin-arm64@1.10.14: - resolution: - { - integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==, - } + resolution: {integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==} cpu: [arm64] os: [darwin] requiresBuild: true @@ -5457,10 +3930,7 @@ packages: optional: true /turbo-linux-64@1.10.14: - resolution: - { - integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==, - } + resolution: {integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==} cpu: [x64] os: [linux] requiresBuild: true @@ -5468,10 +3938,7 @@ packages: optional: true /turbo-linux-arm64@1.10.14: - resolution: - { - integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==, - } + resolution: {integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==} cpu: [arm64] os: [linux] requiresBuild: true @@ -5479,10 +3946,7 @@ packages: optional: true /turbo-windows-64@1.10.14: - resolution: - { - integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==, - } + resolution: {integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==} cpu: [x64] os: [win32] requiresBuild: true @@ -5490,10 +3954,7 @@ packages: optional: true /turbo-windows-arm64@1.10.14: - resolution: - { - integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==, - } + resolution: {integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==} cpu: [arm64] os: [win32] requiresBuild: true @@ -5501,10 +3962,7 @@ packages: optional: true /turbo@1.10.14: - resolution: - { - integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==, - } + resolution: {integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==} hasBin: true optionalDependencies: turbo-darwin-64: 1.10.14 @@ -5516,35 +3974,23 @@ packages: dev: false /type-fest@0.13.1: - resolution: - { - integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} dev: false /type-fest@0.6.0: - resolution: - { - integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} dev: false /type-fest@0.8.1: - resolution: - { - integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} dev: false /typed-array-buffer@1.0.0: - resolution: - { - integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -5552,11 +3998,8 @@ packages: dev: false /typed-array-byte-length@1.0.0: - resolution: - { - integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 for-each: 0.3.3 @@ -5565,11 +4008,8 @@ packages: dev: false /typed-array-byte-offset@1.0.0: - resolution: - { - integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 @@ -5579,10 +4019,7 @@ packages: dev: false /typed-array-length@1.0.4: - resolution: - { - integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, - } + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 for-each: 0.3.3 @@ -5590,19 +4027,13 @@ packages: dev: false /typescript@5.2.2: - resolution: - { - integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==, - } - engines: { node: ">=14.17" } + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} hasBin: true dev: false /unbox-primitive@1.0.2: - resolution: - { - integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, - } + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 @@ -5611,59 +4042,38 @@ packages: dev: false /undici-types@5.25.3: - resolution: - { - integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==, - } + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} dev: true /universalify@0.1.2: - resolution: - { - integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, - } - engines: { node: ">= 4.0.0" } - dev: false - - /uuid/8.3.2: - resolution: - { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, - } + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: false - /validate-npm-package-license/3.0.4: - resolution: - { - integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, - } + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: false /wcwidth@1.0.1: - resolution: - { - integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, - } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: false /webidl-conversions@4.0.2: - resolution: - { - integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, - } + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: false /whatwg-url@7.1.0: - resolution: - { - integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, - } + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 @@ -5671,10 +4081,7 @@ packages: dev: false /which-boxed-primitive@1.0.2: - resolution: - { - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, - } + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -5684,29 +4091,20 @@ packages: dev: false /which-module@2.0.1: - resolution: - { - integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, - } + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: false /which-pm@2.0.0: - resolution: - { - integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==, - } - engines: { node: ">=8.15" } + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 dev: false /which-typed-array@1.1.11: - resolution: - { - integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==, - } - engines: { node: ">= 0.4" } + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 @@ -5716,32 +4114,23 @@ packages: dev: false /which@1.3.1: - resolution: - { - integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, - } + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 dev: false /which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: ">= 8" } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 dev: false /wrap-ansi@6.2.0: - resolution: - { - integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -5749,11 +4138,8 @@ packages: dev: false /wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -5761,11 +4147,8 @@ packages: dev: false /wrap-ansi@8.1.0: - resolution: - { - integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 @@ -5773,74 +4156,47 @@ packages: dev: false /wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: false /y18n@4.0.3: - resolution: - { - integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, - } + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: false /y18n@5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} dev: false /yallist@2.1.2: - resolution: - { - integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, - } + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: false /yallist@4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: false /yaml@2.3.2: - resolution: - { - integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==, - } - engines: { node: ">= 14" } + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} dev: false /yargs-parser@18.1.3: - resolution: - { - integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, - } - engines: { node: ">=6" } + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: false /yargs-parser@21.1.1: - resolution: - { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} dev: false /yargs@15.4.1: - resolution: - { - integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, - } - engines: { node: ">=8" } + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -5856,11 +4212,8 @@ packages: dev: false /yargs@17.7.2: - resolution: - { - integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, - } - engines: { node: ">=12" } + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -5872,9 +4225,6 @@ packages: dev: false /yocto-queue@0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - } - engines: { node: ">=10" } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} dev: false From e2bb12b058f80177112d58a71cb0ef260f8a8709 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Wed, 8 Nov 2023 09:17:06 +0000 Subject: [PATCH 04/21] Fix build command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d2b3f44..98cb323 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "type": "module", "private": true, "scripts": { - "build": "turbo run dev", + "build": "turbo run build", "dev": "turbo run dev", "test": ": 'run `$ bun test` instead'", "format": "prettier --write .", From d3a5c674f84540407d189827f36a498f1fb30ea1 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Wed, 8 Nov 2023 10:26:58 +0000 Subject: [PATCH 05/21] Assign outputs to resource instance after deploy --- packages/core/src/resource.ts | 5 +++++ packages/core/test/resource.test.ts | 32 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/packages/core/src/resource.ts b/packages/core/src/resource.ts index bf66bea..5f336d4 100644 --- a/packages/core/src/resource.ts +++ b/packages/core/src/resource.ts @@ -24,6 +24,11 @@ export abstract class Resource< abstract getDeployInput(): Input; abstract deploy(input: Input): Promise; + + async runDeploy() { + const input = this.getDeployInput(); + this.output = await this.deploy(input); + } } export function createResourceFactory< diff --git a/packages/core/test/resource.test.ts b/packages/core/test/resource.test.ts index 3cde4ec..2ab5a6a 100644 --- a/packages/core/test/resource.test.ts +++ b/packages/core/test/resource.test.ts @@ -73,3 +73,35 @@ it("passes dependencies to getIntrinsicConfig", () => { { dep1: childResource }, ]); }); + +it('passes merged config to "deploy"', async () => { + const deployMock = mock(() => Promise.resolve({})); + + const factory = createResourceFactory<{ name: string; a: 1 }>(); + + const TestResource = factory({ + type: "testType", + deploy: deployMock, + getIntrinsicConfig: () => ({ a: 1 }), + }); + + const resource = new TestResource({ config: { name: "testName" } }); + + await resource.runDeploy(); + expect(deployMock.mock.calls[0]).toEqual([{ a: 1, name: "testName" }]); +}); + +it("assigns outputs after deploy", async () => { + const factory = createResourceFactory<{ name: string }, { id: number }>(); + + const TestResource = factory({ + type: "testType", + deploy: () => Promise.resolve({ id: 123 }), + }); + + const resource = new TestResource({ config: { name: "testName" } }); + expect(resource.output).toBe(null); + + await resource.runDeploy(); + expect(resource.output).toEqual({ id: 123 }); +}); From 764b015ef0617260dcc5d5f6373817be6ed92d59 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Fri, 10 Nov 2023 11:46:02 +0000 Subject: [PATCH 06/21] Implement resource retries --- packages/core/src/resource.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/core/src/resource.ts b/packages/core/src/resource.ts index 5f336d4..17035b5 100644 --- a/packages/core/src/resource.ts +++ b/packages/core/src/resource.ts @@ -10,6 +10,7 @@ export abstract class Resource< Dependencies extends Record = {}, > { abstract type: string; + abstract retryOn: string[] | undefined; config: Config; dependencies: Dependencies; id: number = -1; @@ -26,8 +27,20 @@ export abstract class Resource< abstract deploy(input: Input): Promise; async runDeploy() { - const input = this.getDeployInput(); - this.output = await this.deploy(input); + let backoff = 1000; + try { + const input = this.getDeployInput(); + this.output = await this.deploy(input); + } catch (err: any) { + if (this.retryOn?.includes(err.name)) { + console.log(`Retrying ${this.type} ${this.id}`); + await new Promise((resolve) => setTimeout(resolve, backoff)); + backoff *= 1.5; + await this.runDeploy(); + } else { + throw err; + } + } } } @@ -42,13 +55,12 @@ export function createResourceFactory< function factory< DefaultConfig extends Partial = Partial, - Config = Omit & { - [P in keyof DefaultConfig]?: never; - }, + Config = Omit, >(opts: { type: string; getIntrinsicConfig: (dependencies: Dependencies) => DefaultConfig; deploy: (input: Input) => Promise; + retryOn?: string[]; }): DerivedResourceConstructor; function factory(opts: { @@ -59,6 +71,7 @@ export function createResourceFactory< function factory(opts: any) { return class extends Resource { type = opts.type; + retryOn = opts.retryOn; getDeployInput() { if ("getIntrinsicConfig" in opts) { From 094ad959836edfbcc1c3ce13833f45855ff3758e Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Fri, 10 Nov 2023 14:19:29 +0000 Subject: [PATCH 07/21] Get account ID from STS --- packages/aws.iac/package.json | 1 + packages/aws.iac/src/config.ts | 1 + packages/aws.iac/src/context.ts | 13 +++++++++++-- packages/aws.iac/src/templates/arn.ts | 3 ++- packages/aws.iac/src/utils/aws-clients.ts | 6 +++++- pnpm-lock.yaml | 3 +++ 6 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 packages/aws.iac/src/config.ts diff --git a/packages/aws.iac/package.json b/packages/aws.iac/package.json index cc3b469..c54b9df 100644 --- a/packages/aws.iac/package.json +++ b/packages/aws.iac/package.json @@ -16,6 +16,7 @@ } }, "dependencies": { + "@aws-sdk/client-sts": "^3.441.0", "@aws-sdk/client-apigatewayv2": "^3.441.0", "@aws-sdk/client-lambda": "^3.441.0", "@aws-sdk/client-iam": "^3.441.0", diff --git a/packages/aws.iac/src/config.ts b/packages/aws.iac/src/config.ts new file mode 100644 index 0000000..09c3154 --- /dev/null +++ b/packages/aws.iac/src/config.ts @@ -0,0 +1 @@ +export const region = "us-west-2"; diff --git a/packages/aws.iac/src/context.ts b/packages/aws.iac/src/context.ts index b5d1364..e105353 100644 --- a/packages/aws.iac/src/context.ts +++ b/packages/aws.iac/src/context.ts @@ -1,2 +1,11 @@ -export const region = "us-west-2"; -export const accountId = "123456789012"; +import { GetCallerIdentityCommand } from "@aws-sdk/client-sts"; +import { stsClient } from "src/utils/aws-clients"; + +const command = new GetCallerIdentityCommand({}); + +const getAwsAccountId = async () => { + const response = await stsClient.send(command); + return response.Account; +}; + +export const accountId = await getAwsAccountId(); diff --git a/packages/aws.iac/src/templates/arn.ts b/packages/aws.iac/src/templates/arn.ts index 4eda4d1..8bab076 100644 --- a/packages/aws.iac/src/templates/arn.ts +++ b/packages/aws.iac/src/templates/arn.ts @@ -1,4 +1,5 @@ -import { region, accountId } from "src/context"; +import { accountId } from "src/context"; +import { region } from "src/config"; export const getLambdaInvocationUri = (arn: string) => { return `arn:aws:apigateway:${region}:lambda:path/2015-03-31/functions/${arn}/invocations`; diff --git a/packages/aws.iac/src/utils/aws-clients.ts b/packages/aws.iac/src/utils/aws-clients.ts index ae21916..1972340 100644 --- a/packages/aws.iac/src/utils/aws-clients.ts +++ b/packages/aws.iac/src/utils/aws-clients.ts @@ -1,8 +1,12 @@ +import { STSClient } from "@aws-sdk/client-sts"; +import { CloudWatchLogsClient } from "@aws-sdk/client-cloudwatch-logs"; import { ApiGatewayV2Client } from "@aws-sdk/client-apigatewayv2"; import { LambdaClient } from "@aws-sdk/client-lambda"; import { IAMClient } from "@aws-sdk/client-iam"; -import { region } from "src/context"; +import { region } from "src/config"; +export const stsClient = new STSClient({ region }); +export const cloudWatchLogsClient = new CloudWatchLogsClient({ region }); export const lambdaClient = new LambdaClient({ region }); export const apiGatewayClient = new ApiGatewayV2Client({ region }); export const iamClient = new IAMClient({ region }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08cfcc6..6a15d9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,6 +68,9 @@ importers: '@aws-sdk/client-lambda': specifier: ^3.441.0 version: 3.454.0 + '@aws-sdk/client-sts': + specifier: ^3.441.0 + version: 3.454.0 '@notation/core': specifier: workspace:* version: link:../core From 9af805bba4dc8a6a53f4ff8c85f5d7ad43578599 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Fri, 10 Nov 2023 14:48:52 +0000 Subject: [PATCH 08/21] Make packages ESM only --- packages/aws.iac/package.json | 17 +++++++++-------- packages/aws.iac/tsup.config.ts | 9 +++++++++ packages/aws/package.json | 12 +++++------- packages/aws/tsup.config.ts | 3 ++- packages/cli/package.json | 6 ++---- packages/cli/tsup.config.ts | 8 ++++++++ packages/core/package.json | 4 ++-- packages/core/tsup.config.ts | 8 ++++++++ packages/esbuild-plugins/package.json | 4 ++-- .../src/parsers/parse-fn-module.ts | 2 +- .../src/parsers/remove-config-export.ts | 2 +- packages/esbuild-plugins/tsup.config.ts | 8 ++++++++ 12 files changed, 57 insertions(+), 26 deletions(-) create mode 100644 packages/aws.iac/tsup.config.ts create mode 100644 packages/cli/tsup.config.ts create mode 100644 packages/core/tsup.config.ts create mode 100644 packages/esbuild-plugins/tsup.config.ts diff --git a/packages/aws.iac/package.json b/packages/aws.iac/package.json index c54b9df..4150c98 100644 --- a/packages/aws.iac/package.json +++ b/packages/aws.iac/package.json @@ -1,18 +1,19 @@ { + "type": "module", "name": "@notation/aws.iac", "version": "0.0.1", - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", "scripts": { - "build": "tsup src/resources.ts src/client.ts --format cjs,esm --dts --clean", + "build": "tsup", "dev": "npm run build -- --watch" }, "exports": { - "./*": { - "require": "./dist/*.js", - "import": "./dist/*.mjs", - "types": "./dist/*.d.ts" + "./client": { + "import": "./dist/client.js", + "types": "./dist/client.d.ts" + }, + "./resources": { + "import": "./dist/resources.js", + "types": "./dist/resources.d.ts" } }, "dependencies": { diff --git a/packages/aws.iac/tsup.config.ts b/packages/aws.iac/tsup.config.ts new file mode 100644 index 0000000..2614107 --- /dev/null +++ b/packages/aws.iac/tsup.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/resources.ts", "src/client.ts"], + dts: true, + clean: true, + format: ["esm"], + platform: "node", +}); diff --git a/packages/aws/package.json b/packages/aws/package.json index 1890caa..0f946ec 100644 --- a/packages/aws/package.json +++ b/packages/aws/package.json @@ -1,17 +1,15 @@ { + "type": "module", "name": "@notation/aws", "version": "0.0.1", - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", "exports": { "./api-gateway": { - "require": "./dist/api-gateway.js", - "import": "./dist/api-gateway.mjs" + "import": "./dist/api-gateway.js", + "types": "./dist/api-gateway.d.ts" }, "./lambda": { - "require": "./dist/lambda.js", - "import": "./dist/lambda.mjs" + "import": "./dist/lambda.js", + "types": "./dist/lambda.d.ts" } }, "scripts": { diff --git a/packages/aws/tsup.config.ts b/packages/aws/tsup.config.ts index 62297b3..ce5bf3f 100644 --- a/packages/aws/tsup.config.ts +++ b/packages/aws/tsup.config.ts @@ -5,5 +5,6 @@ export default defineConfig({ splitting: false, dts: true, clean: true, - format: ["cjs", "esm"], + format: ["esm"], + platform: "node", }); diff --git a/packages/cli/package.json b/packages/cli/package.json index 24a0fcc..58c1cdf 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,14 +1,12 @@ { + "type": "module", "name": "@notation/cli", "version": "0.0.1", - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", "bin": { "notation": "dist/index.js" }, "scripts": { - "build": "tsup src/index.ts --format cjs", + "build": "tsup", "dev": "npm run build -- --watch" }, "dependencies": { diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts new file mode 100644 index 0000000..e2fe847 --- /dev/null +++ b/packages/cli/tsup.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + clean: true, + format: ["esm"], + platform: "node", +}); diff --git a/packages/core/package.json b/packages/core/package.json index 2604e9d..e9f0e5b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,11 +1,11 @@ { + "type": "module", "name": "@notation/core", "version": "0.0.1", "main": "./dist/index.js", - "module": "./dist/index.mjs", "types": "./dist/index.d.ts", "scripts": { - "build": "tsup src/index.ts --format cjs,esm --dts", + "build": "tsup", "dev": "npm run build -- --watch" }, "dependencies": { diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts new file mode 100644 index 0000000..f260be5 --- /dev/null +++ b/packages/core/tsup.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + dts: true, + clean: true, + format: ["esm"], +}); diff --git a/packages/esbuild-plugins/package.json b/packages/esbuild-plugins/package.json index a005361..cfc5a15 100644 --- a/packages/esbuild-plugins/package.json +++ b/packages/esbuild-plugins/package.json @@ -1,11 +1,11 @@ { + "type": "module", "name": "@notation/esbuild-plugins", "version": "0.0.1", "main": "./dist/index.js", - "module": "./dist/index.mjs", "types": "./dist/index.d.ts", "scripts": { - "build": "tsup src/index.ts --format cjs,esm --dts", + "build": "tsup", "dev": "npm run build -- --watch" }, "dependencies": { diff --git a/packages/esbuild-plugins/src/parsers/parse-fn-module.ts b/packages/esbuild-plugins/src/parsers/parse-fn-module.ts index 0b1d478..2d46908 100644 --- a/packages/esbuild-plugins/src/parsers/parse-fn-module.ts +++ b/packages/esbuild-plugins/src/parsers/parse-fn-module.ts @@ -1,4 +1,4 @@ -import * as ts from "typescript"; +import ts from "typescript"; export function parseFnModule(input: string) { const sourceFile = ts.createSourceFile( diff --git a/packages/esbuild-plugins/src/parsers/remove-config-export.ts b/packages/esbuild-plugins/src/parsers/remove-config-export.ts index 1fbed45..33f22a2 100644 --- a/packages/esbuild-plugins/src/parsers/remove-config-export.ts +++ b/packages/esbuild-plugins/src/parsers/remove-config-export.ts @@ -1,4 +1,4 @@ -import * as ts from "typescript"; +import ts from "typescript"; export function removeConfigExport(sourceText: string): string { const sourceFile = ts.createSourceFile( diff --git a/packages/esbuild-plugins/tsup.config.ts b/packages/esbuild-plugins/tsup.config.ts new file mode 100644 index 0000000..f260be5 --- /dev/null +++ b/packages/esbuild-plugins/tsup.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + dts: true, + clean: true, + format: ["esm"], +}); From 338064e468ff7df67bcae5080244eddeaa139cdd Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Fri, 10 Nov 2023 17:07:56 +0000 Subject: [PATCH 09/21] Split infra and runtime modules --- packages/aws/package.json | 10 +- packages/aws/src/api-gateway.infra.ts | 91 ------------------- packages/aws/src/api-gateway.ts | 2 - packages/aws/src/api-gateway/api.ts | 24 +++++ packages/aws/src/api-gateway/index.ts | 3 + packages/aws/src/api-gateway/route.ts | 73 +++++++++++++++ .../router.ts} | 9 +- packages/aws/src/lambda.fn/api-responses.ts | 4 + packages/aws/src/lambda.fn/config.ts | 5 + packages/aws/src/lambda.fn/handlers.ts | 8 ++ packages/aws/src/lambda.fn/index.ts | 3 + packages/aws/src/lambda.ts | 2 - packages/aws/src/lambda/index.ts | 1 + .../src/{lambda.infra.ts => lambda/lambda.ts} | 12 +-- packages/aws/src/shared/index.ts | 1 + .../lambda.handler.ts} | 13 --- packages/aws/test/api-gateway.test.ts | 12 +-- packages/aws/test/lambda.test.ts | 7 +- packages/aws/tsup.config.ts | 7 +- .../src/plugins/function-infra-plugin.ts | 8 +- .../plugins/function-infra-plugin.test.ts | 20 ++-- .../plugins/function-runtime-plugin.test.ts | 4 +- test/compiler.test.app/src/todos/todos.fn.ts | 6 +- 23 files changed, 170 insertions(+), 155 deletions(-) delete mode 100644 packages/aws/src/api-gateway.infra.ts delete mode 100644 packages/aws/src/api-gateway.ts create mode 100644 packages/aws/src/api-gateway/api.ts create mode 100644 packages/aws/src/api-gateway/index.ts create mode 100644 packages/aws/src/api-gateway/route.ts rename packages/aws/src/{api-gateway.utils.ts => api-gateway/router.ts} (70%) create mode 100644 packages/aws/src/lambda.fn/api-responses.ts create mode 100644 packages/aws/src/lambda.fn/config.ts create mode 100644 packages/aws/src/lambda.fn/handlers.ts create mode 100644 packages/aws/src/lambda.fn/index.ts delete mode 100644 packages/aws/src/lambda.ts create mode 100644 packages/aws/src/lambda/index.ts rename packages/aws/src/{lambda.infra.ts => lambda/lambda.ts} (81%) create mode 100644 packages/aws/src/shared/index.ts rename packages/aws/src/{lambda.runtime.ts => shared/lambda.handler.ts} (51%) diff --git a/packages/aws/package.json b/packages/aws/package.json index 0f946ec..f4278ec 100644 --- a/packages/aws/package.json +++ b/packages/aws/package.json @@ -3,13 +3,9 @@ "name": "@notation/aws", "version": "0.0.1", "exports": { - "./api-gateway": { - "import": "./dist/api-gateway.js", - "types": "./dist/api-gateway.d.ts" - }, - "./lambda": { - "import": "./dist/lambda.js", - "types": "./dist/lambda.d.ts" + "./*": { + "import": "./dist/*/index.js", + "types": "./dist/*/index.d.ts" } }, "scripts": { diff --git a/packages/aws/src/api-gateway.infra.ts b/packages/aws/src/api-gateway.infra.ts deleted file mode 100644 index dacd316..0000000 --- a/packages/aws/src/api-gateway.infra.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { AwsResourceGroup } from "@notation/aws.iac/client"; -import { apiGateway, lambda } from "@notation/aws.iac/resources"; -import { ApiGatewayHandler, fn } from "./lambda"; - -export const api = (rgConfig: { name: string }) => { - const apiGroup = new AwsResourceGroup("api", rgConfig); - - const apiResource = apiGroup.add( - new apiGateway.Api({ - config: { - Name: rgConfig.name, - ProtocolType: "HTTP", - }, - }), - ); - - apiGroup.add( - new apiGateway.Stage({ - config: { StageName: "$default", AutoDeploy: true }, - dependencies: { router: apiResource }, - }), - ); - - return apiGroup; -}; - -export const route = ( - apiGroup: ReturnType, - method: string, // todo: http methods only - path: `/${string}`, - handler: ApiGatewayHandler, -) => { - const apiResource = apiGroup.findResource( - "aws/api-gateway", - ) as apiGateway.ApiInstance; - - // at compile time becomes infra module - const fnGroup = handler as any as ReturnType; - - const routeGroup = new AwsResourceGroup("api/route", { - dependencies: { router: apiGroup.id, fn: fnGroup.id }, - }); - - let integration; - - const lambdaResource = fnGroup.findResource( - "aws/lambda", - )! as lambda.LambdaInstance; - - const permission = fnGroup.findResource("aws/lambda/permission/api-gateway"); - - integration = fnGroup.findResource( - "aws/api-gateway/integration/lambda", - ) as apiGateway.LambdaIntegrationInstance; - - if (!permission) { - fnGroup.add( - new lambda.LambdaApiGatewayPermission({ - dependencies: { - api: apiResource, - lambda: lambdaResource, - }, - }), - ); - } - - if (!integration) { - integration = fnGroup.add( - new apiGateway.LambdaIntegration({ - dependencies: { - api: apiResource, - lambda: lambdaResource, - }, - }), - ); - } - - routeGroup.add( - new apiGateway.Route({ - config: { - RouteKey: `${method} ${path}`, - }, - dependencies: { - api: apiResource, - lambdaIntegration: integration, - }, - }), - ); - - return routeGroup; -}; diff --git a/packages/aws/src/api-gateway.ts b/packages/aws/src/api-gateway.ts deleted file mode 100644 index bc367a9..0000000 --- a/packages/aws/src/api-gateway.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./api-gateway.utils"; -export * from "./api-gateway.infra"; diff --git a/packages/aws/src/api-gateway/api.ts b/packages/aws/src/api-gateway/api.ts new file mode 100644 index 0000000..f6fe8ba --- /dev/null +++ b/packages/aws/src/api-gateway/api.ts @@ -0,0 +1,24 @@ +import { AwsResourceGroup } from "@notation/aws.iac/client"; +import * as aws from "@notation/aws.iac/resources"; + +export const api = (rgConfig: { name: string }) => { + const apiGroup = new AwsResourceGroup("api", rgConfig); + + const apiResource = apiGroup.add( + new aws.apiGateway.Api({ + config: { + Name: rgConfig.name, + ProtocolType: "HTTP", + }, + }), + ); + + apiGroup.add( + new aws.apiGateway.Stage({ + config: { StageName: "$default", AutoDeploy: true }, + dependencies: { router: apiResource }, + }), + ); + + return apiGroup; +}; diff --git a/packages/aws/src/api-gateway/index.ts b/packages/aws/src/api-gateway/index.ts new file mode 100644 index 0000000..ca8adcd --- /dev/null +++ b/packages/aws/src/api-gateway/index.ts @@ -0,0 +1,3 @@ +export * from "./api"; +export * from "./route"; +export * from "./router"; diff --git a/packages/aws/src/api-gateway/route.ts b/packages/aws/src/api-gateway/route.ts new file mode 100644 index 0000000..4a4bb30 --- /dev/null +++ b/packages/aws/src/api-gateway/route.ts @@ -0,0 +1,73 @@ +import type { ApiGatewayHandler } from "src/shared"; +import * as aws from "@notation/aws.iac/resources"; +import { AwsResourceGroup } from "@notation/aws.iac/client"; +import { lambda } from "src/lambda"; +import { api } from "./api"; + +export const route = ( + apiGroup: ReturnType, + method: string, // todo: http methods only + path: `/${string}`, + handler: ApiGatewayHandler, +) => { + const apiResource = apiGroup.findResource( + "aws/api-gateway", + ) as aws.apiGateway.ApiInstance; + + // at compile time becomes infra module + const lambdaGroup = handler as any as ReturnType; + + const routeGroup = new AwsResourceGroup("api/route", { + dependencies: { router: apiGroup.id, fn: lambdaGroup.id }, + }); + + let integration; + + const lambdaResource = lambdaGroup.findResource( + "aws/lambda", + )! as aws.lambda.LambdaInstance; + + const permission = lambdaGroup.findResource( + "aws/lambda/permission/api-gateway", + ); + + integration = lambdaGroup.findResource( + "aws/api-gateway/integration/lambda", + ) as aws.apiGateway.LambdaIntegrationInstance; + + if (!permission) { + lambdaGroup.add( + new aws.lambda.LambdaApiGatewayPermission({ + dependencies: { + api: apiResource, + lambda: lambdaResource, + }, + }), + ); + } + + if (!integration) { + integration = lambdaGroup.add( + new aws.apiGateway.LambdaIntegration({ + dependencies: { + api: apiResource, + lambda: lambdaResource, + }, + }), + ); + } + + routeGroup.add( + new aws.apiGateway.Route({ + config: { + RouteKey: `${method} ${path}`, + }, + dependencies: { + api: apiResource, + lambdaIntegration: integration, + }, + }), + ); + + return routeGroup; +}; diff --git a/packages/aws/src/api-gateway.utils.ts b/packages/aws/src/api-gateway/router.ts similarity index 70% rename from packages/aws/src/api-gateway.utils.ts rename to packages/aws/src/api-gateway/router.ts index d8b9698..0b84808 100644 --- a/packages/aws/src/api-gateway.utils.ts +++ b/packages/aws/src/api-gateway/router.ts @@ -1,5 +1,5 @@ -import { ApiGatewayHandler } from "./lambda"; -import { api, route } from "./api-gateway.infra"; +import type { ApiGatewayHandler } from "src/shared"; +import { api, route } from "."; export const router = (apiGroup: ReturnType) => { const createRouteCallback = @@ -15,8 +15,3 @@ export const router = (apiGroup: ReturnType) => { delete: createRouteCallback("DELETE"), }; }; - -export const json = (result: any) => ({ - body: JSON.stringify(result), - statusCode: 200, -}); diff --git a/packages/aws/src/lambda.fn/api-responses.ts b/packages/aws/src/lambda.fn/api-responses.ts new file mode 100644 index 0000000..717678f --- /dev/null +++ b/packages/aws/src/lambda.fn/api-responses.ts @@ -0,0 +1,4 @@ +export const json = (result: any) => ({ + body: JSON.stringify(result), + statusCode: 200, +}); diff --git a/packages/aws/src/lambda.fn/config.ts b/packages/aws/src/lambda.fn/config.ts new file mode 100644 index 0000000..856989c --- /dev/null +++ b/packages/aws/src/lambda.fn/config.ts @@ -0,0 +1,5 @@ +export type LambdaConfig = { + service: "aws/lambda"; + memory?: number; + timeout?: number; +}; diff --git a/packages/aws/src/lambda.fn/handlers.ts b/packages/aws/src/lambda.fn/handlers.ts new file mode 100644 index 0000000..0992d3f --- /dev/null +++ b/packages/aws/src/lambda.fn/handlers.ts @@ -0,0 +1,8 @@ +import type { ApiGatewayHandler } from "src/shared/lambda.handler"; + +export const handle = { + apiRequest: + (handler: ApiGatewayHandler): ApiGatewayHandler => + async (...args) => + handler(...args), +}; diff --git a/packages/aws/src/lambda.fn/index.ts b/packages/aws/src/lambda.fn/index.ts new file mode 100644 index 0000000..e4c158c --- /dev/null +++ b/packages/aws/src/lambda.fn/index.ts @@ -0,0 +1,3 @@ +export * from "./api-responses"; +export * from "./config"; +export * from "./handlers"; diff --git a/packages/aws/src/lambda.ts b/packages/aws/src/lambda.ts deleted file mode 100644 index 751609e..0000000 --- a/packages/aws/src/lambda.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./lambda.infra"; -export * from "./lambda.runtime"; diff --git a/packages/aws/src/lambda/index.ts b/packages/aws/src/lambda/index.ts new file mode 100644 index 0000000..16044ca --- /dev/null +++ b/packages/aws/src/lambda/index.ts @@ -0,0 +1 @@ +export * from "./lambda"; diff --git a/packages/aws/src/lambda.infra.ts b/packages/aws/src/lambda/lambda.ts similarity index 81% rename from packages/aws/src/lambda.infra.ts rename to packages/aws/src/lambda/lambda.ts index b66eff7..76428ff 100644 --- a/packages/aws/src/lambda.infra.ts +++ b/packages/aws/src/lambda/lambda.ts @@ -1,9 +1,9 @@ import path from "node:path"; import fs from "node:fs"; +import * as aws from "@notation/aws.iac/resources"; import { AwsResourceGroup } from "@notation/aws.iac/client"; -import { lambda } from "@notation/aws.iac/resources"; -export const fn = (config: { fileName: string; handler: string }) => { +export const lambda = (config: { fileName: string; handler: string }) => { // @todo: make this a zip resource (maybe with a deploySync method) const zipPath = path.join(process.cwd(), `${config.fileName}.zip`); const zipContents = fs.readFileSync(zipPath); @@ -11,13 +11,13 @@ export const fn = (config: { fileName: string; handler: string }) => { const functionGroup = new AwsResourceGroup("aws/function", { config }); const role = functionGroup.add( - new lambda.LambdaIamRole({ + new aws.lambda.LambdaIamRole({ config: { RoleName: `${functionGroup.id}-role` }, }), ); const policyAttachment = functionGroup.add( - new lambda.LambdaRolePolicyAttachment({ + new aws.lambda.LambdaRolePolicyAttachment({ config: { // todo: move to resource, or provide default roles PolicyArn: @@ -28,7 +28,7 @@ export const fn = (config: { fileName: string; handler: string }) => { ); const lambdaResource = functionGroup.add( - new lambda.Lambda({ + new aws.lambda.Lambda({ config: { Code: { ZipFile: zipContents }, PackageType: "Zip", @@ -41,7 +41,7 @@ export const fn = (config: { fileName: string; handler: string }) => { ); functionGroup.add( - new lambda.LambdaLogGroup({ + new aws.lambda.LambdaLogGroup({ dependencies: { lambda: lambdaResource }, }), ); diff --git a/packages/aws/src/shared/index.ts b/packages/aws/src/shared/index.ts new file mode 100644 index 0000000..6afe224 --- /dev/null +++ b/packages/aws/src/shared/index.ts @@ -0,0 +1 @@ +export * from "./lambda.handler"; diff --git a/packages/aws/src/lambda.runtime.ts b/packages/aws/src/shared/lambda.handler.ts similarity index 51% rename from packages/aws/src/lambda.runtime.ts rename to packages/aws/src/shared/lambda.handler.ts index b392bd2..84ef3ff 100644 --- a/packages/aws/src/lambda.runtime.ts +++ b/packages/aws/src/shared/lambda.handler.ts @@ -4,20 +4,7 @@ import type { APIGatewayProxyResultV2, } from "aws-lambda"; -export type FnConfig = { - service: "aws/lambda"; - memory?: number; - timeout?: number; -}; - export type ApiGatewayHandler = ( event: APIGatewayProxyEvent, context: Context, ) => APIGatewayProxyResultV2 | Promise; - -export const handle = { - apiRequest: - (handler: ApiGatewayHandler): ApiGatewayHandler => - async (...args) => - handler(...args), -}; diff --git a/packages/aws/test/api-gateway.test.ts b/packages/aws/test/api-gateway.test.ts index 1f89d4c..dabfa2f 100644 --- a/packages/aws/test/api-gateway.test.ts +++ b/packages/aws/test/api-gateway.test.ts @@ -1,8 +1,8 @@ import { test, expect } from "bun:test"; import { apiGateway } from "@notation/aws.iac/resources"; -import { api, route } from "src/api-gateway.infra"; -import { router, json } from "src/api-gateway.utils"; -import { fn } from "src/lambda"; +import { api, route, router } from "src/api-gateway"; +import { json } from "src/api-gateway.runtime"; +import { lambda } from "src/lambda"; test("json returns a JSON string and a 200 status code", () => { const payload = { message: "Hello, world!" }; @@ -18,7 +18,7 @@ test("api resource group snapshot", () => { test("route resource group snapshot", () => { const apiResourceGroup = api({ name: "api" }); - const fnResourceGroup = fn({ + const fnResourceGroup = lambda({ fileName: "src/fns/handler.fn.js", handler: "handler.fn.js", }); @@ -36,7 +36,7 @@ test("route resource group snapshot", () => { test("route resource group idempotency snapshot", () => { const apiResourceGroup = api({ name: "api" }); - const fnResourceGroup = fn({ + const fnResourceGroup = lambda({ fileName: "src/fns/handler.fn.js", handler: "handler.fn.js", }); @@ -52,7 +52,7 @@ test("route resource group idempotency snapshot", () => { test("router provides methods for each HTTP verb", () => { const apiResourceGroup = api({ name: "api" }); const apiRouter = router(apiResourceGroup); - const handler = fn({ + const handler = lambda({ fileName: "src/fns/handler.fn.js", handler: "handler.fn.js", }); diff --git a/packages/aws/test/lambda.test.ts b/packages/aws/test/lambda.test.ts index 7e972b4..f0b586d 100644 --- a/packages/aws/test/lambda.test.ts +++ b/packages/aws/test/lambda.test.ts @@ -1,5 +1,6 @@ import { test, expect } from "bun:test"; -import { handle, fn } from "src/lambda"; +import { handle } from "src/lambda.fn"; +import { lambda } from "src/lambda"; test("handlers are identity functions", async () => { const fn = () => ({}); @@ -9,8 +10,8 @@ test("handlers are identity functions", async () => { } }); -test("fn resource group snapshot", async () => { - const fnResourceGroup = fn({ +test("lambda resource group snapshot", async () => { + const fnResourceGroup = lambda({ fileName: "src/fns/handler.fn/index.js", handler: "handler", }); diff --git a/packages/aws/tsup.config.ts b/packages/aws/tsup.config.ts index ce5bf3f..2c88f87 100644 --- a/packages/aws/tsup.config.ts +++ b/packages/aws/tsup.config.ts @@ -1,7 +1,12 @@ import { defineConfig } from "tsup"; export default defineConfig({ - entry: ["src/lambda.ts", "src/api-gateway.ts"], + entry: [ + "src/api-gateway/index.ts", + "src/lambda/index.ts", + "src/lambda.fn/index.ts", + "src/shared/index.ts", + ], splitting: false, dts: true, clean: true, diff --git a/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts b/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts index c41f842..04dc8b1 100644 --- a/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts +++ b/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts @@ -15,17 +15,19 @@ export function functionInfraPlugin(opts: PluginOpts = {}): Plugin { const getFile = withFileCheck(opts.getFile || fsGetFile); const fileContent = await getFile(args.path); const fileName = path.relative(process.cwd(), args.path); + const outFileName = getOutFilePath(fileName); const { config, configRaw, exports } = parseFnModule(fileContent); const reservedNames = ["preload", "config"]; + const [platform, service] = (config.service as string).split("/"); - let infraCode = `import { fn } from "@notation/${config.service}"`; + let infraCode = `import { ${service} } from "@notation/${platform}/${service}";`; infraCode = infraCode.concat(`\nconst config = ${configRaw};`); for (const handlerName of exports) { if (reservedNames.includes(handlerName)) continue; infraCode = infraCode.concat( - `\nexport const ${handlerName} = fn({ fileName: "${fileName}", handler: "${handlerName}", ...config });`, + `\nexport const ${handlerName} = ${service}({ fileName: "${outFileName}", handler: "${handlerName}", ...config });`, ); } @@ -37,3 +39,5 @@ export function functionInfraPlugin(opts: PluginOpts = {}): Plugin { }, }; } +const getOutFilePath = (entryPoint: string) => + `dist/runtime/${entryPoint.replace(".ts", "/index.mjs")}`; diff --git a/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts b/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts index 3777fa2..08be9c8 100644 --- a/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts +++ b/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts @@ -16,9 +16,9 @@ it("remaps exports", async () => { `; const expected = stripIndent` - import { fn } from "@notation/aws/lambda"; + import { lambda } from "@notation/aws/lambda"; const config = { service: "aws/lambda" }; - export const getNum = fn({ fileName: "entry.fn.ts", handler: "getNum", ...config }); + export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getNum", ...config }); `; const output = await buildInfra(input); @@ -28,16 +28,16 @@ it("remaps exports", async () => { it("merges config", async () => { const input = ` - import { FnConfig } from "@notation/aws/lambda"; + import { LambdaConfig } from "@notation/aws/lambda"; import { handler } from "@notation/aws/api-gateway"; export const getNum = handler(() => 1); - export const config: FnConfig = { service: "aws/lambda", memory: 64 }; + export const config: LambdaConfig = { service: "aws/lambda", memory: 64 }; `; const expected = stripIndent` - import { fn } from "@notation/aws/lambda"; + import { lambda } from "@notation/aws/lambda"; const config = { service: "aws/lambda", memory: 64 }; - export const getNum = fn({ fileName: "entry.fn.ts", handler: "getNum", ...config }); + export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getNum", ...config }); `; const output = await buildInfra(input); @@ -47,7 +47,7 @@ it("merges config", async () => { it("should strip runtime code", async () => { const input = ` - import { FnConfig } from "@notation/aws/lambda"; + import { LambdaConfig } from "@notation/aws/lambda"; import { handler } from "@notation/aws/api-gateway"; import lib from "lib"; @@ -58,10 +58,10 @@ it("should strip runtime code", async () => { export const config = { service: "aws/lambda" };`; const expected = stripIndent` - import { fn } from "@notation/aws/lambda"; + import { lambda } from "@notation/aws/lambda"; const config = { service: "aws/lambda" }; - export const getNum = fn({ fileName: "entry.fn.ts", handler: "getNum", ...config }); - export const getDoubleNum = fn({ fileName: "entry.fn.ts", handler: "getDoubleNum", ...config }); + export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getNum", ...config }); + export const getDoubleNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getDoubleNum", ...config }); `; const output = await buildInfra(input); diff --git a/packages/esbuild-plugins/test/plugins/function-runtime-plugin.test.ts b/packages/esbuild-plugins/test/plugins/function-runtime-plugin.test.ts index e813d1e..7db629f 100644 --- a/packages/esbuild-plugins/test/plugins/function-runtime-plugin.test.ts +++ b/packages/esbuild-plugins/test/plugins/function-runtime-plugin.test.ts @@ -10,7 +10,7 @@ const buildRuntime = createBuilder((input) => ({ it("strips infra code", async () => { const input = stripIndent` - import { FnConfig } from "@notation/aws/lambda"; + import { LambdaConfig } from "@notation/aws/lambda"; import { handler } from "@notation/aws/api-gateway"; const num = await fetch("http://api.com/num").then((res) => res.json()); @@ -18,7 +18,7 @@ it("strips infra code", async () => { export const getNum = handler(() => num); export const getDoubleNum = handler(() => num * 2); - export const config: FnConfig = { + export const config: LambdaConfig = { memory: 64, timeout: 5, environment: "node:16", diff --git a/test/compiler.test.app/src/todos/todos.fn.ts b/test/compiler.test.app/src/todos/todos.fn.ts index c2cfc81..bffb94f 100644 --- a/test/compiler.test.app/src/todos/todos.fn.ts +++ b/test/compiler.test.app/src/todos/todos.fn.ts @@ -1,5 +1,5 @@ -import { FnConfig, handle } from "@notation/aws/lambda"; -import { json } from "@notation/aws/api-gateway"; +import type { LambdaConfig } from "@notation/aws/lambda.fn"; +import { handle, json } from "@notation/aws/lambda.fn"; import { api } from "./utils"; const todos = await api.get("/todos"); @@ -12,7 +12,7 @@ export const getTodoCount = handle.apiRequest(() => { return json(todos.length); }); -export const config: FnConfig = { +export const config: LambdaConfig = { service: "aws/lambda", timeout: 5, memory: 64, From c99f2ce25a11c6cf35c2cf24a805b5b6b4ac2d0c Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Fri, 10 Nov 2023 17:10:03 +0000 Subject: [PATCH 10/21] Fix build in watch mode --- packages/aws.iac/tsup.config.ts | 1 - packages/aws/tsup.config.ts | 1 - packages/cli/tsup.config.ts | 1 - packages/core/tsup.config.ts | 1 - packages/esbuild-plugins/tsup.config.ts | 1 - 5 files changed, 5 deletions(-) diff --git a/packages/aws.iac/tsup.config.ts b/packages/aws.iac/tsup.config.ts index 2614107..1544847 100644 --- a/packages/aws.iac/tsup.config.ts +++ b/packages/aws.iac/tsup.config.ts @@ -3,7 +3,6 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/resources.ts", "src/client.ts"], dts: true, - clean: true, format: ["esm"], platform: "node", }); diff --git a/packages/aws/tsup.config.ts b/packages/aws/tsup.config.ts index 2c88f87..d5fc9be 100644 --- a/packages/aws/tsup.config.ts +++ b/packages/aws/tsup.config.ts @@ -9,7 +9,6 @@ export default defineConfig({ ], splitting: false, dts: true, - clean: true, format: ["esm"], platform: "node", }); diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts index e2fe847..187a26c 100644 --- a/packages/cli/tsup.config.ts +++ b/packages/cli/tsup.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], - clean: true, format: ["esm"], platform: "node", }); diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index f260be5..f0ac238 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -3,6 +3,5 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], dts: true, - clean: true, format: ["esm"], }); diff --git a/packages/esbuild-plugins/tsup.config.ts b/packages/esbuild-plugins/tsup.config.ts index f260be5..f0ac238 100644 --- a/packages/esbuild-plugins/tsup.config.ts +++ b/packages/esbuild-plugins/tsup.config.ts @@ -3,6 +3,5 @@ import { defineConfig } from "tsup"; export default defineConfig({ entry: ["src/index.ts"], dts: true, - clean: true, format: ["esm"], }); From 2352e79e53988a406bb9b05583dd29a906ca086e Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:06:26 +0000 Subject: [PATCH 11/21] Add deploy and visualisation commands --- packages/cli/src/compile.ts | 54 +++++++++++++++++------------------ packages/cli/src/deploy.ts | 16 +++++++++++ packages/cli/src/index.ts | 17 ++++++++--- packages/cli/src/utils.ts | 18 ++++++++++++ packages/cli/src/visualise.ts | 20 +++++++++++++ 5 files changed, 93 insertions(+), 32 deletions(-) create mode 100644 packages/cli/src/deploy.ts create mode 100644 packages/cli/src/utils.ts create mode 100644 packages/cli/src/visualise.ts diff --git a/packages/cli/src/compile.ts b/packages/cli/src/compile.ts index 3b8c244..5bba1f6 100644 --- a/packages/cli/src/compile.ts +++ b/packages/cli/src/compile.ts @@ -1,25 +1,24 @@ +import fs from "fs"; +import * as fflate from "fflate"; +import { glob } from "glob"; import esbuild from "esbuild"; import { functionInfraPlugin, functionRuntimePlugin, } from "@notation/esbuild-plugins"; -import { - getResourceGroups, - getResources, - createMermaidFlowChart, - createMermaidLiveUrl, -} from "@notation/core"; -import { glob } from "glob"; -import path from "path"; +import { getRuntimeOutFilePath } from "./utils"; +import { log } from "console"; -export async function compile(infraEntryPoint: string) { - await compileInfra(infraEntryPoint); +export async function compile(entryPoint: string) { + await compileInfra(entryPoint); // @todo: fnEntryPoints could be an output of compileInfra const fnEntryPoints = await glob("**/*.fn.ts"); await compileFns(fnEntryPoints); } export async function compileInfra(entryPoint: string) { + log("Compiling infrastructure", entryPoint); + await esbuild.build({ entryPoints: [entryPoint], plugins: [functionInfraPlugin()], @@ -28,27 +27,26 @@ export async function compileInfra(entryPoint: string) { outExtension: { ".js": ".mjs" }, bundle: true, format: "esm", + platform: "node", treeShaking: true, - external: ["@notation/core"], + packages: "external", }); - const outFilePath = `dist/infra/${entryPoint.replace("ts", "mjs")}`; - await import(path.join(process.cwd(), outFilePath)); - const resourceGroups = getResourceGroups(); - const resources = getResources(); - const chart = createMermaidFlowChart(resourceGroups, resources); - const chartUrl = createMermaidLiveUrl(chart); - console.log("\nGenerated infrastructure chart:\n"); - console.log(chartUrl); } export async function compileFns(entryPoints: string[]) { - await esbuild.build({ - entryPoints: entryPoints, - plugins: [functionRuntimePlugin()], - outdir: "dist/runtime", - outbase: ".", - bundle: true, - format: "esm", - treeShaking: true, - }); + log("Compiling functions"); + + for (const entryPoint of entryPoints) { + await esbuild.build({ + entryPoints: [entryPoint], + plugins: [functionRuntimePlugin()], + outfile: getRuntimeOutFilePath(entryPoint), + outExtension: { ".js": ".mjs" }, + bundle: true, + format: "esm", + platform: "node", + treeShaking: true, + }); + } +} } diff --git a/packages/cli/src/deploy.ts b/packages/cli/src/deploy.ts new file mode 100644 index 0000000..d2a27b5 --- /dev/null +++ b/packages/cli/src/deploy.ts @@ -0,0 +1,16 @@ +import { compile } from "./compile"; +import { getResourceGraph } from "./utils"; + +export async function deploy(entryPoint: string) { + await compile(entryPoint); + await deployApp(entryPoint); +} + +export async function deployApp(entryPoint: string) { + console.log(`Deploying ${entryPoint}`); + const graph = await getResourceGraph(entryPoint); + for (const resource of graph.resources) { + await resource.runDeploy(); + console.log(`Deployed ${resource.type} ${resource.id}`); + } +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index a32e003..e4c2d08 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,6 +1,8 @@ #!/usr/bin/env node import { program } from "commander"; import { compile } from "./compile"; +import { deploy } from "./deploy"; +import { visualise } from "./visualise"; program .command("init") @@ -15,16 +17,23 @@ program .argument("", "entryPoint") .description("Compile Notation App") .action(async (entryPoint) => { - console.log("Compiling", entryPoint); await compile(entryPoint); }); +program + .command("viz") + .argument("", "entryPoint") + .description("Visualise Notation App") + .action(async (entryPoint) => { + await visualise(entryPoint); + }); + program .command("deploy") - .argument("", "environment") + .argument("", "entryPoint") .description("Deploy Notation App") - .action(async (stackName) => { - console.log(`Deploying stack ${stackName}...`); + .action(async (entryPoint) => { + await deploy(entryPoint); }); program.parse(process.argv); diff --git a/packages/cli/src/utils.ts b/packages/cli/src/utils.ts new file mode 100644 index 0000000..b6e9d62 --- /dev/null +++ b/packages/cli/src/utils.ts @@ -0,0 +1,18 @@ +import path from "path"; +import { getResources, getResourceGroups } from "@notation/core"; + +export async function getResourceGraph(entryPoint: string) { + const outFilePath = getInfraOutFilePath(entryPoint); + await import(path.join(process.cwd(), outFilePath)); + + const resourceGroups = getResourceGroups(); + const resources = getResources(); + + return { resourceGroups, resources }; +} + +export const getInfraOutFilePath = (entryPoint: string) => + `dist/infra/${entryPoint.replace(/.ts$/, ".mjs")}`; + +export const getRuntimeOutFilePath = (entryPoint: string) => + `dist/runtime/${entryPoint.replace(/.ts$/, "/index.mjs")}`; diff --git a/packages/cli/src/visualise.ts b/packages/cli/src/visualise.ts new file mode 100644 index 0000000..7016478 --- /dev/null +++ b/packages/cli/src/visualise.ts @@ -0,0 +1,20 @@ +import { createMermaidFlowChart, createMermaidLiveUrl } from "@notation/core"; +import { getResourceGraph } from "./utils"; +import { log } from "console"; +import { compileInfra } from "./compile"; + +export async function visualise(entryPoint: string) { + await compileInfra(entryPoint); + await generateGraph(entryPoint); +} + +export async function generateGraph(entryPoint: string) { + log(`Generating graph for ${entryPoint}`); + + const graph = await getResourceGraph(entryPoint); + const chart = createMermaidFlowChart(graph.resourceGroups, graph.resources); + const chartUrl = createMermaidLiveUrl(chart); + + log("\nGenerated infrastructure chart:\n"); + log(chartUrl); +} From be89e91b92c973f3aa95faf3b16cb206698b2955 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:06:56 +0000 Subject: [PATCH 12/21] Zip function packages --- packages/cli/package.json | 3 ++- packages/cli/src/compile.ts | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 58c1cdf..5ee7da7 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -14,6 +14,7 @@ "@notation/esbuild-plugins": "workspace:*", "commander": "^11.0.0", "esbuild": "^0.19.3", - "glob": "^10.3.10" + "glob": "^10.3.10", + "fflate": "0.8.1" } } diff --git a/packages/cli/src/compile.ts b/packages/cli/src/compile.ts index 5bba1f6..39b5f1c 100644 --- a/packages/cli/src/compile.ts +++ b/packages/cli/src/compile.ts @@ -14,6 +14,7 @@ export async function compile(entryPoint: string) { // @todo: fnEntryPoints could be an output of compileInfra const fnEntryPoints = await glob("**/*.fn.ts"); await compileFns(fnEntryPoints); + await zipFns(fnEntryPoints); } export async function compileInfra(entryPoint: string) { @@ -49,4 +50,17 @@ export async function compileFns(entryPoints: string[]) { }); } } + +export async function zipFns(entryPoints: string[]) { + log("Compiling deployable packages"); + + for (const entryPoint of entryPoints) { + const inputFilePath = getRuntimeOutFilePath(entryPoint); + const inputFile = fs.readFileSync(inputFilePath); + + const zipFilePath = `${inputFilePath}.zip`; + const archive = fflate.zipSync({ "index.mjs": inputFile }, { level: 9 }); + + fs.writeFileSync(zipFilePath, archive); + } } From 8e727c646ae0e45f6b126d72546750b5dbac2ebc Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Sun, 12 Nov 2023 09:58:55 +0000 Subject: [PATCH 13/21] Sort dependencies --- packages/core/package.json | 2 +- pnpm-lock.yaml | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index e9f0e5b..5079ee1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -9,12 +9,12 @@ "dev": "npm run build -- --watch" }, "dependencies": { - "@types/pako": "^2.0.2", "js-base64": "^3.7.5", "pako": "^2.1.0" }, "devDependencies": { "@types/common-tags": "^1.8.2", + "@types/pako": "^2.0.2", "common-tags": "^1.8.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a15d9f..f4c6b03 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,15 +92,15 @@ importers: esbuild: specifier: ^0.19.3 version: 0.19.3 + fflate: + specifier: 0.8.1 + version: 0.8.1 glob: specifier: ^10.3.10 version: 10.3.10 packages/core: dependencies: - '@types/pako': - specifier: ^2.0.2 - version: 2.0.2 js-base64: specifier: ^3.7.5 version: 3.7.5 @@ -111,6 +111,9 @@ importers: '@types/common-tags': specifier: ^1.8.2 version: 1.8.2 + '@types/pako': + specifier: ^2.0.2 + version: 2.0.2 common-tags: specifier: ^1.8.2 version: 1.8.2 @@ -1889,7 +1892,7 @@ packages: /@types/pako@2.0.2: resolution: {integrity: sha512-AtTbzIwhvLMTEUPudP3hxUwNK50DoX3amfVJmmL7WQH5iF3Kfqs8pG1tStsewHqmh75ULmjjldKn/B70D6DNcQ==} - dev: false + dev: true /@types/semver@7.5.1: resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} @@ -2509,6 +2512,10 @@ packages: reusify: 1.0.4 dev: false + /fflate@0.8.1: + resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} + dev: false + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} From 1aac596a2bf913bf8480f63d35211524549859ea Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Sun, 12 Nov 2023 10:15:56 +0000 Subject: [PATCH 14/21] Fix tests --- .../__snapshots__/api-gateway.test.ts.snap | 488 +++++++++++++++++- .../test/__snapshots__/lambda.test.ts.snap | 182 +++++++ packages/aws/test/api-gateway.test.ts | 10 +- packages/aws/test/lambda.fn.test.ts | 17 + packages/aws/test/lambda.test.ts | 9 - .../plugins/function-infra-plugin.test.ts | 8 +- test/compiler.test.ts | 5 +- 7 files changed, 687 insertions(+), 32 deletions(-) create mode 100644 packages/aws/test/__snapshots__/lambda.test.ts.snap create mode 100644 packages/aws/test/lambda.fn.test.ts diff --git a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap index c3f7527..0714645 100644 --- a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap +++ b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap @@ -6,7 +6,7 @@ AwsResourceGroup { "name": "api", }, "dependencies": {}, - "id": 0, + "id": 1, "platform": "aws", "resources": [ { @@ -16,14 +16,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 0, - "id": 0, + "groupId": 1, + "id": 4, "output": null, + "retryOn": undefined, "type": "aws/api-gateway", }, { "config": { - "StageName": "dev", + "AutoDeploy": true, + "StageName": "$default", }, "dependencies": { "router": { @@ -33,19 +35,489 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 0, - "id": 0, + "groupId": 1, + "id": 4, "output": null, + "retryOn": undefined, "type": "aws/api-gateway", }, }, "deploy": [Function: AsyncFunction], - "groupId": 0, - "id": 1, + "groupId": 1, + "id": 5, "output": null, + "retryOn": undefined, "type": "aws/api-gateway/stage", }, ], "type": "api", } `; + +exports[`route resource group snapshot 1`] = ` +AwsResourceGroup { + "config": {}, + "dependencies": { + "fn": 3, + "router": 2, + }, + "id": 4, + "platform": "aws", + "resources": [ + { + "config": { + "RouteKey": "GET /hello", + }, + "dependencies": { + "api": { + "config": { + "Name": "api", + "ProtocolType": "HTTP", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 2, + "id": 6, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway", + }, + "lambdaIntegration": { + "config": {}, + "dependencies": { + "api": { + "config": { + "Name": "api", + "ProtocolType": "HTTP", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 2, + "id": 6, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway", + }, + "lambda": { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-3", + "Handler": "index.handler.fn.js", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 10, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 13, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway/integration/lambda", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 4, + "id": 14, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway/route", + }, + ], + "type": "api/route", +} +`; + +exports[`route resource group snapshot 2`] = ` +AwsResourceGroup { + "config": { + "config": { + "fileName": "src/fns/handler.fn.js", + "handler": "handler.fn.js", + }, + }, + "dependencies": {}, + "id": 3, + "platform": "aws", + "resources": [ + { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-3", + "Handler": "index.handler.fn.js", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 10, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + { + "config": {}, + "dependencies": { + "lambda": { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-3", + "Handler": "index.handler.fn.js", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 10, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 11, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/log-group", + }, + { + "config": {}, + "dependencies": { + "api": { + "config": { + "Name": "api", + "ProtocolType": "HTTP", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 2, + "id": 6, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway", + }, + "lambda": { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-3", + "Handler": "index.handler.fn.js", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 10, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 12, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/permission/api-gateway", + }, + { + "config": {}, + "dependencies": { + "api": { + "config": { + "Name": "api", + "ProtocolType": "HTTP", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 2, + "id": 6, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway", + }, + "lambda": { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-3", + "Handler": "index.handler.fn.js", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "3-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 8, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 10, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 13, + "output": null, + "retryOn": undefined, + "type": "aws/api-gateway/integration/lambda", + }, + ], + "type": "aws/function", +} +`; diff --git a/packages/aws/test/__snapshots__/lambda.test.ts.snap b/packages/aws/test/__snapshots__/lambda.test.ts.snap new file mode 100644 index 0000000..d705a8f --- /dev/null +++ b/packages/aws/test/__snapshots__/lambda.test.ts.snap @@ -0,0 +1,182 @@ +// Bun Snapshot v1, https://goo.gl/fbAQLP + +exports[`lambda resource group snapshot 1`] = ` +AwsResourceGroup { + "config": { + "config": { + "fileName": "src/fns/handler.fn/index.js", + "handler": "handler", + }, + }, + "dependencies": {}, + "id": 0, + "platform": "aws", + "resources": [ + { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 1, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-0", + "Handler": "index.handler", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 1, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 2, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + { + "config": {}, + "dependencies": { + "lambda": { + "config": { + "Code": { + "ZipFile": Uint8Array [], + }, + "FunctionName": "function-0", + "Handler": "index.handler", + "PackageType": "Zip", + "Runtime": "nodejs18.x", + }, + "dependencies": { + "policyAttachment": { + "config": { + "PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + }, + "dependencies": { + "role": { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 1, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/policy-attachment", + }, + "role": { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/role", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 2, + "output": null, + "retryOn": [ + "InvalidParameterValueException", + ], + "type": "aws/lambda", + }, + }, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 3, + "output": null, + "retryOn": undefined, + "type": "aws/lambda/log-group", + }, + ], + "type": "aws/function", +} +`; diff --git a/packages/aws/test/api-gateway.test.ts b/packages/aws/test/api-gateway.test.ts index dabfa2f..5bac94e 100644 --- a/packages/aws/test/api-gateway.test.ts +++ b/packages/aws/test/api-gateway.test.ts @@ -1,16 +1,8 @@ -import { test, expect } from "bun:test"; +import { test, expect, beforeEach } from "bun:test"; import { apiGateway } from "@notation/aws.iac/resources"; import { api, route, router } from "src/api-gateway"; -import { json } from "src/api-gateway.runtime"; import { lambda } from "src/lambda"; -test("json returns a JSON string and a 200 status code", () => { - const payload = { message: "Hello, world!" }; - const response = json(payload); - expect(response.statusCode).toEqual(200); - expect(response.body).toEqual(JSON.stringify(payload)); -}); - test("api resource group snapshot", () => { const apiResourceGroup = api({ name: "api" }); expect(apiResourceGroup).toMatchSnapshot(); diff --git a/packages/aws/test/lambda.fn.test.ts b/packages/aws/test/lambda.fn.test.ts new file mode 100644 index 0000000..ed5a266 --- /dev/null +++ b/packages/aws/test/lambda.fn.test.ts @@ -0,0 +1,17 @@ +import { test, expect } from "bun:test"; +import { handle, json } from "src/lambda.fn"; + +test("handlers wrap user-provided handlers", async () => { + const fn = async () => ({ body: "{}" }); + for (const handler of Object.values(handle)) { + const result = await handler(fn)({} as any, {} as any); + expect(result).toEqual({ body: "{}" }); + } +}); + +test("json returns a JSON string and a 200 status code", () => { + const payload = { message: "Hello, world!" }; + const response = json(payload); + expect(response.statusCode).toEqual(200); + expect(response.body).toEqual(JSON.stringify(payload)); +}); diff --git a/packages/aws/test/lambda.test.ts b/packages/aws/test/lambda.test.ts index f0b586d..acec349 100644 --- a/packages/aws/test/lambda.test.ts +++ b/packages/aws/test/lambda.test.ts @@ -1,15 +1,6 @@ import { test, expect } from "bun:test"; -import { handle } from "src/lambda.fn"; import { lambda } from "src/lambda"; -test("handlers are identity functions", async () => { - const fn = () => ({}); - for (const handler of Object.values(handle)) { - const result = handler(fn); - expect(result).toEqual(fn); - } -}); - test("lambda resource group snapshot", async () => { const fnResourceGroup = lambda({ fileName: "src/fns/handler.fn/index.js", diff --git a/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts b/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts index 08be9c8..7035b30 100644 --- a/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts +++ b/packages/esbuild-plugins/test/plugins/function-infra-plugin.test.ts @@ -18,7 +18,7 @@ it("remaps exports", async () => { const expected = stripIndent` import { lambda } from "@notation/aws/lambda"; const config = { service: "aws/lambda" }; - export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getNum", ...config }); + export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.mjs", handler: "getNum", ...config }); `; const output = await buildInfra(input); @@ -37,7 +37,7 @@ it("merges config", async () => { const expected = stripIndent` import { lambda } from "@notation/aws/lambda"; const config = { service: "aws/lambda", memory: 64 }; - export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getNum", ...config }); + export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.mjs", handler: "getNum", ...config }); `; const output = await buildInfra(input); @@ -60,8 +60,8 @@ it("should strip runtime code", async () => { const expected = stripIndent` import { lambda } from "@notation/aws/lambda"; const config = { service: "aws/lambda" }; - export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getNum", ...config }); - export const getDoubleNum = lambda({ fileName: "dist/runtime/entry.fn/index.js", handler: "getDoubleNum", ...config }); + export const getNum = lambda({ fileName: "dist/runtime/entry.fn/index.mjs", handler: "getNum", ...config }); + export const getDoubleNum = lambda({ fileName: "dist/runtime/entry.fn/index.mjs", handler: "getDoubleNum", ...config }); `; const output = await buildInfra(input); diff --git a/test/compiler.test.ts b/test/compiler.test.ts index 4efedd5..671bd11 100644 --- a/test/compiler.test.ts +++ b/test/compiler.test.ts @@ -14,10 +14,11 @@ beforeAll(async () => { it("generates infra and runtime modules matching source file structure", async () => { const expected = [ "dist/infra/src/api.mjs", - "dist/runtime/src/todos/todos.fn.js", + "dist/runtime/src/todos/todos.fn/index.mjs", + "dist/runtime/src/todos/todos.fn/index.mjs.zip", ]; - const actual = await glob("dist/**/*.{js,mjs}", { cwd }); + const actual = await glob("dist/**/*.{js,mjs,zip}", { cwd }); expect(actual).toEqual(expected); }); From 4444070098d418674a9b304ef6ce1554594fbe79 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Sun, 12 Nov 2023 20:04:13 +0000 Subject: [PATCH 15/21] Make side effecty zip operation an IAC resource --- packages/aws.iac/package.json | 1 + .../aws.iac/src/resources/lambda/lambda.ts | 11 +- packages/aws/package.json | 1 + packages/aws/src/lambda/lambda.ts | 21 ++- .../__snapshots__/api-gateway.test.ts.snap | 162 ++++++++++++------ .../test/__snapshots__/lambda.test.ts.snap | 68 +++++--- packages/std.iac/package.json | 14 ++ packages/std.iac/src/index.ts | 20 +++ packages/std.iac/tsconfig.json | 6 + packages/std.iac/tsup.config.ts | 8 + pnpm-lock.yaml | 12 ++ 11 files changed, 238 insertions(+), 86 deletions(-) create mode 100644 packages/std.iac/package.json create mode 100644 packages/std.iac/src/index.ts create mode 100644 packages/std.iac/tsconfig.json create mode 100644 packages/std.iac/tsup.config.ts diff --git a/packages/aws.iac/package.json b/packages/aws.iac/package.json index 4150c98..8caa5fb 100644 --- a/packages/aws.iac/package.json +++ b/packages/aws.iac/package.json @@ -23,6 +23,7 @@ "@aws-sdk/client-iam": "^3.441.0", "@aws-sdk/client-cloudwatch-logs": "^3.441.0", "@notation/core": "workspace:*", + "@notation/std.iac": "workspace:*", "@types/aws-lambda": "^8.10.125" } } diff --git a/packages/aws.iac/src/resources/lambda/lambda.ts b/packages/aws.iac/src/resources/lambda/lambda.ts index a182449..0308ab6 100644 --- a/packages/aws.iac/src/resources/lambda/lambda.ts +++ b/packages/aws.iac/src/resources/lambda/lambda.ts @@ -5,26 +5,33 @@ import { CreateFunctionCommandOutput, } from "@aws-sdk/client-lambda"; import { LambdaIamRoleInstance, LambdaRolePolicyAttachmentInstance } from "./"; +import { ZipFileInstance } from "@notation/std.iac"; import { lambdaClient } from "src/utils/aws-clients"; export type LambdaInput = CreateFunctionCommandInput; export type LambdaOutput = CreateFunctionCommandOutput; -export type LambdaDeps = { role: LambdaIamRoleInstance } & LambdaImplicitDeps; type LambdaImplicitDeps = { policyAttachment: LambdaRolePolicyAttachmentInstance; }; +export type LambdaDeps = { + role: LambdaIamRoleInstance; + zipFile: ZipFileInstance; +}; + const createLambdaClass = createResourceFactory< LambdaInput, LambdaOutput, - LambdaDeps + LambdaDeps & LambdaImplicitDeps >(); export const Lambda = createLambdaClass({ type: "aws/lambda", getIntrinsicConfig: (dependencies) => ({ + PackageType: "Zip", + Code: { ZipFile: dependencies.zipFile.output.contents }, Role: dependencies.role.output.Role!.Arn, }), diff --git a/packages/aws/package.json b/packages/aws/package.json index f4278ec..344dd53 100644 --- a/packages/aws/package.json +++ b/packages/aws/package.json @@ -15,6 +15,7 @@ "dependencies": { "@notation/aws.iac": "workspace:*", "@notation/core": "workspace:*", + "@notation/std.iac": "workspace:*", "@types/aws-lambda": "^8.10.125" } } diff --git a/packages/aws/src/lambda/lambda.ts b/packages/aws/src/lambda/lambda.ts index 76428ff..0f59811 100644 --- a/packages/aws/src/lambda/lambda.ts +++ b/packages/aws/src/lambda/lambda.ts @@ -1,15 +1,16 @@ -import path from "node:path"; -import fs from "node:fs"; import * as aws from "@notation/aws.iac/resources"; +import * as std from "@notation/std.iac"; import { AwsResourceGroup } from "@notation/aws.iac/client"; export const lambda = (config: { fileName: string; handler: string }) => { - // @todo: make this a zip resource (maybe with a deploySync method) - const zipPath = path.join(process.cwd(), `${config.fileName}.zip`); - const zipContents = fs.readFileSync(zipPath); - const functionGroup = new AwsResourceGroup("aws/function", { config }); + const zipFile = functionGroup.add( + new std.Zip({ + config: { fileName: config.fileName }, + }), + ); + const role = functionGroup.add( new aws.lambda.LambdaIamRole({ config: { RoleName: `${functionGroup.id}-role` }, @@ -30,13 +31,15 @@ export const lambda = (config: { fileName: string; handler: string }) => { const lambdaResource = functionGroup.add( new aws.lambda.Lambda({ config: { - Code: { ZipFile: zipContents }, - PackageType: "Zip", FunctionName: `function-${functionGroup.id}`, Handler: `index.${config.handler}`, Runtime: "nodejs18.x", }, - dependencies: { role, policyAttachment }, + dependencies: { + role, + policyAttachment, + zipFile, + }, }), ); diff --git a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap index 0714645..4e80ad3 100644 --- a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap +++ b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap @@ -17,7 +17,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 1, - "id": 4, + "id": 5, "output": null, "retryOn": undefined, "type": "aws/api-gateway", @@ -36,7 +36,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 1, - "id": 4, + "id": 5, "output": null, "retryOn": undefined, "type": "aws/api-gateway", @@ -44,7 +44,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 1, - "id": 5, + "id": 6, "output": null, "retryOn": undefined, "type": "aws/api-gateway/stage", @@ -77,7 +77,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 2, - "id": 6, + "id": 7, "output": null, "retryOn": undefined, "type": "aws/api-gateway", @@ -93,19 +93,15 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 2, - "id": 6, + "id": 7, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, "lambda": { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-3", "Handler": "index.handler.fn.js", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -121,7 +117,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -129,7 +125,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 9, + "id": 11, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -141,15 +137,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 10, + "id": 12, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -159,7 +167,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 13, + "id": 15, "output": null, "retryOn": undefined, "type": "aws/api-gateway/integration/lambda", @@ -167,7 +175,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 4, - "id": 14, + "id": 16, "output": null, "retryOn": undefined, "type": "aws/api-gateway/route", @@ -189,6 +197,18 @@ AwsResourceGroup { "id": 3, "platform": "aws", "resources": [ + { + "config": { + "fileName": "src/fns/handler.fn.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, { "config": { "RoleName": "3-role", @@ -196,7 +216,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -213,7 +233,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -221,19 +241,15 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 9, + "id": 11, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-3", "Handler": "index.handler.fn.js", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -249,7 +265,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -257,7 +273,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 9, + "id": 11, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -269,15 +285,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 10, + "id": 12, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -289,12 +317,8 @@ AwsResourceGroup { "dependencies": { "lambda": { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-3", "Handler": "index.handler.fn.js", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -310,7 +334,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -318,7 +342,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 9, + "id": 11, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -330,15 +354,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 10, + "id": 12, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -348,7 +384,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 11, + "id": 13, "output": null, "retryOn": undefined, "type": "aws/lambda/log-group", @@ -364,19 +400,15 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 2, - "id": 6, + "id": 7, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, "lambda": { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-3", "Handler": "index.handler.fn.js", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -392,7 +424,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -400,7 +432,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 9, + "id": 11, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -412,15 +444,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 10, + "id": 12, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -430,7 +474,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 12, + "id": 14, "output": null, "retryOn": undefined, "type": "aws/lambda/permission/api-gateway", @@ -446,19 +490,15 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 2, - "id": 6, + "id": 7, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, "lambda": { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-3", "Handler": "index.handler.fn.js", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -474,7 +514,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -482,7 +522,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 9, + "id": 11, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -494,15 +534,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 8, + "id": 10, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 3, + "id": 9, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 10, + "id": 12, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -512,7 +564,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 3, - "id": 13, + "id": 15, "output": null, "retryOn": undefined, "type": "aws/api-gateway/integration/lambda", diff --git a/packages/aws/test/__snapshots__/lambda.test.ts.snap b/packages/aws/test/__snapshots__/lambda.test.ts.snap index d705a8f..0344adc 100644 --- a/packages/aws/test/__snapshots__/lambda.test.ts.snap +++ b/packages/aws/test/__snapshots__/lambda.test.ts.snap @@ -14,7 +14,7 @@ AwsResourceGroup { "resources": [ { "config": { - "RoleName": "0-role", + "fileName": "src/fns/handler.fn/index.js", }, "dependencies": {}, "deploy": [Function: AsyncFunction], @@ -22,6 +22,18 @@ AwsResourceGroup { "id": 0, "output": null, "retryOn": undefined, + "type": "std/zip", + }, + { + "config": { + "RoleName": "0-role", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 1, + "output": null, + "retryOn": undefined, "type": "aws/lambda/role", }, { @@ -36,7 +48,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 0, + "id": 1, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -44,19 +56,15 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-0", "Handler": "index.handler", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -72,7 +80,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 0, + "id": 1, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -80,7 +88,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -92,15 +100,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 0, + "id": 1, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn/index.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 2, + "id": 3, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -112,12 +132,8 @@ AwsResourceGroup { "dependencies": { "lambda": { "config": { - "Code": { - "ZipFile": Uint8Array [], - }, "FunctionName": "function-0", "Handler": "index.handler", - "PackageType": "Zip", "Runtime": "nodejs18.x", }, "dependencies": { @@ -133,7 +149,7 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 0, + "id": 1, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -141,7 +157,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", @@ -153,15 +169,27 @@ AwsResourceGroup { "dependencies": {}, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 0, + "id": 1, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, + "zipFile": { + "config": { + "fileName": "src/fns/handler.fn/index.js", + }, + "dependencies": {}, + "deploy": [Function: AsyncFunction], + "groupId": 0, + "id": 0, + "output": null, + "retryOn": undefined, + "type": "std/zip", + }, }, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 2, + "id": 3, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -171,7 +199,7 @@ AwsResourceGroup { }, "deploy": [Function: AsyncFunction], "groupId": 0, - "id": 3, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/log-group", diff --git a/packages/std.iac/package.json b/packages/std.iac/package.json new file mode 100644 index 0000000..56df6ef --- /dev/null +++ b/packages/std.iac/package.json @@ -0,0 +1,14 @@ +{ + "type": "module", + "name": "@notation/std.iac", + "version": "0.0.1", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "scripts": { + "build": "tsup", + "dev": "npm run build -- --watch" + }, + "dependencies": { + "@notation/core": "workspace:*" + } +} diff --git a/packages/std.iac/src/index.ts b/packages/std.iac/src/index.ts new file mode 100644 index 0000000..f51c5b4 --- /dev/null +++ b/packages/std.iac/src/index.ts @@ -0,0 +1,20 @@ +import { createResourceFactory } from "@notation/core"; +import path from "node:path"; +import fs from "node:fs/promises"; + +export type ZipInput = { fileName: string }; +export type ZipOutput = { contents: Buffer }; + +const createZipClass = createResourceFactory(); + +export const Zip = createZipClass({ + type: "std/zip", + + deploy: async (config: ZipInput) => { + const zipPath = path.join(process.cwd(), `${config.fileName}.zip`); + const zipFile = await fs.readFile(zipPath); + return { contents: zipFile }; + }, +}); + +export type ZipFileInstance = InstanceType; diff --git a/packages/std.iac/tsconfig.json b/packages/std.iac/tsconfig.json new file mode 100644 index 0000000..b667b19 --- /dev/null +++ b/packages/std.iac/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "tsconfig/base.json", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/packages/std.iac/tsup.config.ts b/packages/std.iac/tsup.config.ts new file mode 100644 index 0000000..3abd9e5 --- /dev/null +++ b/packages/std.iac/tsup.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + dts: true, + format: ["esm"], + platform: "node", +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4c6b03..e3202b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,6 +50,9 @@ importers: '@notation/core': specifier: workspace:* version: link:../core + '@notation/std.iac': + specifier: workspace:* + version: link:../std.iac '@types/aws-lambda': specifier: ^8.10.125 version: 8.10.125 @@ -74,6 +77,9 @@ importers: '@notation/core': specifier: workspace:* version: link:../core + '@notation/std.iac': + specifier: workspace:* + version: link:../std.iac '@types/aws-lambda': specifier: ^8.10.125 version: 8.10.125 @@ -134,6 +140,12 @@ importers: specifier: ^1.8.2 version: 1.8.2 + packages/std.iac: + dependencies: + '@notation/core': + specifier: workspace:* + version: link:../core + packages/tsconfig: {} test/compiler.test.app: From 9c48d05f8065ec22109916eeb23b37ef6ac6337a Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Sun, 12 Nov 2023 22:41:46 +0000 Subject: [PATCH 16/21] Move async request out of graph compilation path --- packages/aws.iac/src/context.ts | 4 +--- .../src/resources/lambda/lambda-api-permission.ts | 6 ++++-- packages/aws.iac/src/templates/arn.ts | 5 +++-- packages/core/src/resource.ts | 12 +++++++----- packages/core/test/resource.test.ts | 5 ++--- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/aws.iac/src/context.ts b/packages/aws.iac/src/context.ts index e105353..e57626e 100644 --- a/packages/aws.iac/src/context.ts +++ b/packages/aws.iac/src/context.ts @@ -3,9 +3,7 @@ import { stsClient } from "src/utils/aws-clients"; const command = new GetCallerIdentityCommand({}); -const getAwsAccountId = async () => { +export const getAwsAccountId = async () => { const response = await stsClient.send(command); return response.Account; }; - -export const accountId = await getAwsAccountId(); diff --git a/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts b/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts index ff0991c..ac80ba3 100644 --- a/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts +++ b/packages/aws.iac/src/resources/lambda/lambda-api-permission.ts @@ -26,12 +26,14 @@ export const LambdaApiGatewayPermission = createLambdaApiGatewayPermissionClass( { type: "aws/lambda/permission/api-gateway", - getIntrinsicConfig: (dependencies) => ({ + getIntrinsicConfig: async (dependencies) => ({ StatementId: "AllowExecutionFromAPIGateway", Principal: "apigateway.amazonaws.com", FunctionName: dependencies.lambda.output.FunctionName, Action: "lambda:InvokeFunction", - SourceArn: generateApiGatewaySourceArn(dependencies.api.output.ApiId!), + SourceArn: await generateApiGatewaySourceArn( + dependencies.api.output.ApiId!, + ), }), deploy: async (config: LambdaApiGatewayPermissionInput) => { diff --git a/packages/aws.iac/src/templates/arn.ts b/packages/aws.iac/src/templates/arn.ts index 8bab076..4988e33 100644 --- a/packages/aws.iac/src/templates/arn.ts +++ b/packages/aws.iac/src/templates/arn.ts @@ -1,10 +1,11 @@ -import { accountId } from "src/context"; +import { getAwsAccountId } from "src/context"; import { region } from "src/config"; export const getLambdaInvocationUri = (arn: string) => { return `arn:aws:apigateway:${region}:lambda:path/2015-03-31/functions/${arn}/invocations`; }; -export const generateApiGatewaySourceArn = (apiId: string) => { +export const generateApiGatewaySourceArn = async (apiId: string) => { + const accountId = await getAwsAccountId(); return `arn:aws:execute-api:${region}:${accountId}:${apiId}/*/*`; }; diff --git a/packages/core/src/resource.ts b/packages/core/src/resource.ts index 17035b5..a5a6e40 100644 --- a/packages/core/src/resource.ts +++ b/packages/core/src/resource.ts @@ -23,13 +23,13 @@ export abstract class Resource< return this; } - abstract getDeployInput(): Input; + abstract getDeployInput(): Promise | Input; abstract deploy(input: Input): Promise; async runDeploy() { let backoff = 1000; try { - const input = this.getDeployInput(); + const input = await this.getDeployInput(); this.output = await this.deploy(input); } catch (err: any) { if (this.retryOn?.includes(err.name)) { @@ -58,7 +58,9 @@ export function createResourceFactory< Config = Omit, >(opts: { type: string; - getIntrinsicConfig: (dependencies: Dependencies) => DefaultConfig; + getIntrinsicConfig: ( + dependencies: Dependencies, + ) => Promise | DefaultConfig; deploy: (input: Input) => Promise; retryOn?: string[]; }): DerivedResourceConstructor; @@ -73,11 +75,11 @@ export function createResourceFactory< type = opts.type; retryOn = opts.retryOn; - getDeployInput() { + async getDeployInput() { if ("getIntrinsicConfig" in opts) { return { ...this.config, - ...opts.getIntrinsicConfig(this.dependencies), + ...(await opts.getIntrinsicConfig(this.dependencies)), } as Input; } return this.config as any as Input; diff --git a/packages/core/test/resource.test.ts b/packages/core/test/resource.test.ts index 2ab5a6a..51557c6 100644 --- a/packages/core/test/resource.test.ts +++ b/packages/core/test/resource.test.ts @@ -20,7 +20,7 @@ it("creates a resource class factory", () => { expect(resource.type).toBe("test"); }); -test("merges config and intrinsic config", () => { +test("merges config and intrinsic config", async () => { const factory = createResourceFactory<{ name: string }>(); const TestResource = factory({ @@ -29,9 +29,8 @@ test("merges config and intrinsic config", () => { deploy: () => Promise.resolve({}), }); - // @ts-expect-error const resource = new TestResource({ config: { name: "overrideName" } }); - expect(resource.getDeployInput().name).toBe("intrinsicName"); + expect((await resource.getDeployInput()).name).toBe("intrinsicName"); }); it("passes dependencies to getIntrinsicConfig", () => { From 2bd9d3c316b6df510352938311d6dfe505f87313 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Wed, 15 Nov 2023 15:51:50 +0000 Subject: [PATCH 17/21] Formalise compiled file structure across packages --- packages/cli/src/compile.ts | 8 ++++---- packages/cli/src/utils.ts | 10 ++-------- packages/core/src/index.ts | 1 + packages/core/src/paths.ts | 12 ++++++++++++ packages/esbuild-plugins/package.json | 1 + .../src/plugins/function-infra-plugin.ts | 5 ++--- pnpm-lock.yaml | 3 +++ 7 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 packages/core/src/paths.ts diff --git a/packages/cli/src/compile.ts b/packages/cli/src/compile.ts index 39b5f1c..000c48c 100644 --- a/packages/cli/src/compile.ts +++ b/packages/cli/src/compile.ts @@ -1,13 +1,13 @@ import fs from "fs"; import * as fflate from "fflate"; import { glob } from "glob"; +import { log } from "console"; import esbuild from "esbuild"; import { functionInfraPlugin, functionRuntimePlugin, } from "@notation/esbuild-plugins"; -import { getRuntimeOutFilePath } from "./utils"; -import { log } from "console"; +import { filePaths } from "@notation/core"; export async function compile(entryPoint: string) { await compileInfra(entryPoint); @@ -41,7 +41,7 @@ export async function compileFns(entryPoints: string[]) { await esbuild.build({ entryPoints: [entryPoint], plugins: [functionRuntimePlugin()], - outfile: getRuntimeOutFilePath(entryPoint), + outfile: filePaths.dist.runtime.index(entryPoint), outExtension: { ".js": ".mjs" }, bundle: true, format: "esm", @@ -55,7 +55,7 @@ export async function zipFns(entryPoints: string[]) { log("Compiling deployable packages"); for (const entryPoint of entryPoints) { - const inputFilePath = getRuntimeOutFilePath(entryPoint); + const inputFilePath = filePaths.dist.runtime.index(entryPoint); const inputFile = fs.readFileSync(inputFilePath); const zipFilePath = `${inputFilePath}.zip`; diff --git a/packages/cli/src/utils.ts b/packages/cli/src/utils.ts index b6e9d62..e2fe209 100644 --- a/packages/cli/src/utils.ts +++ b/packages/cli/src/utils.ts @@ -1,8 +1,8 @@ import path from "path"; -import { getResources, getResourceGroups } from "@notation/core"; +import { getResources, getResourceGroups, filePaths } from "@notation/core"; export async function getResourceGraph(entryPoint: string) { - const outFilePath = getInfraOutFilePath(entryPoint); + const outFilePath = filePaths.dist.infra.index(entryPoint); await import(path.join(process.cwd(), outFilePath)); const resourceGroups = getResourceGroups(); @@ -10,9 +10,3 @@ export async function getResourceGraph(entryPoint: string) { return { resourceGroups, resources }; } - -export const getInfraOutFilePath = (entryPoint: string) => - `dist/infra/${entryPoint.replace(/.ts$/, ".mjs")}`; - -export const getRuntimeOutFilePath = (entryPoint: string) => - `dist/runtime/${entryPoint.replace(/.ts$/, "/index.mjs")}`; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 4e0283e..c875cf5 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,3 +1,4 @@ +export * from "./paths"; export * from "./chart"; export * from "./resource"; export * from "./resource-group"; diff --git a/packages/core/src/paths.ts b/packages/core/src/paths.ts new file mode 100644 index 0000000..847ccae --- /dev/null +++ b/packages/core/src/paths.ts @@ -0,0 +1,12 @@ +export const filePaths = { + dist: { + runtime: { + index: (entryPoint: string) => + `dist/runtime/${entryPoint.replace(/.ts$/, "/index.mjs")}`, + }, + infra: { + index: (entryPoint: string) => + `dist/infra/${entryPoint.replace(/.ts$/, ".mjs")}`, + }, + }, +}; diff --git a/packages/esbuild-plugins/package.json b/packages/esbuild-plugins/package.json index cfc5a15..41ba48a 100644 --- a/packages/esbuild-plugins/package.json +++ b/packages/esbuild-plugins/package.json @@ -9,6 +9,7 @@ "dev": "npm run build -- --watch" }, "dependencies": { + "@notation/core": "workspace:*", "esbuild": "^0.19.3", "typescript": "^5.2.2" }, diff --git a/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts b/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts index 04dc8b1..72beca8 100644 --- a/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts +++ b/packages/esbuild-plugins/src/plugins/function-infra-plugin.ts @@ -2,6 +2,7 @@ import path from "node:path"; import { Plugin } from "esbuild"; import { parseFnModule } from "src/parsers/parse-fn-module"; import { GetFile, fsGetFile, withFileCheck } from "src/utils/get-file"; +import { filePaths } from "@notation/core"; type PluginOpts = { getFile?: GetFile; @@ -15,7 +16,7 @@ export function functionInfraPlugin(opts: PluginOpts = {}): Plugin { const getFile = withFileCheck(opts.getFile || fsGetFile); const fileContent = await getFile(args.path); const fileName = path.relative(process.cwd(), args.path); - const outFileName = getOutFilePath(fileName); + const outFileName = filePaths.dist.runtime.index(fileName); const { config, configRaw, exports } = parseFnModule(fileContent); const reservedNames = ["preload", "config"]; @@ -39,5 +40,3 @@ export function functionInfraPlugin(opts: PluginOpts = {}): Plugin { }, }; } -const getOutFilePath = (entryPoint: string) => - `dist/runtime/${entryPoint.replace(".ts", "/index.mjs")}`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3202b3..4eaa368 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,6 +126,9 @@ importers: packages/esbuild-plugins: dependencies: + '@notation/core': + specifier: workspace:* + version: link:../core esbuild: specifier: ^0.19.3 version: 0.19.3 From 01a818bbe8e8ba8043742deeee4952703d40573a Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Thu, 23 Nov 2023 16:35:26 +0000 Subject: [PATCH 18/21] Make findResource return typed resource --- packages/aws/src/api-gateway/route.ts | 14 ++++---------- packages/aws/test/api-gateway.test.ts | 6 ++---- packages/core/src/resource-group.ts | 6 ++++-- packages/core/test/resource-group.test.ts | 15 +++++++++++---- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/packages/aws/src/api-gateway/route.ts b/packages/aws/src/api-gateway/route.ts index 4a4bb30..78307ab 100644 --- a/packages/aws/src/api-gateway/route.ts +++ b/packages/aws/src/api-gateway/route.ts @@ -10,9 +10,7 @@ export const route = ( path: `/${string}`, handler: ApiGatewayHandler, ) => { - const apiResource = apiGroup.findResource( - "aws/api-gateway", - ) as aws.apiGateway.ApiInstance; + const apiResource = apiGroup.findResource(aws.apiGateway.Api)!; // at compile time becomes infra module const lambdaGroup = handler as any as ReturnType; @@ -23,17 +21,13 @@ export const route = ( let integration; - const lambdaResource = lambdaGroup.findResource( - "aws/lambda", - )! as aws.lambda.LambdaInstance; + const lambdaResource = lambdaGroup.findResource(aws.lambda.Lambda)!; const permission = lambdaGroup.findResource( - "aws/lambda/permission/api-gateway", + aws.lambda.LambdaApiGatewayPermission, ); - integration = lambdaGroup.findResource( - "aws/api-gateway/integration/lambda", - ) as aws.apiGateway.LambdaIntegrationInstance; + integration = lambdaGroup.findResource(aws.apiGateway.LambdaIntegration); if (!permission) { lambdaGroup.add( diff --git a/packages/aws/test/api-gateway.test.ts b/packages/aws/test/api-gateway.test.ts index 5bac94e..0522b4d 100644 --- a/packages/aws/test/api-gateway.test.ts +++ b/packages/aws/test/api-gateway.test.ts @@ -1,4 +1,4 @@ -import { test, expect, beforeEach } from "bun:test"; +import { test, expect } from "bun:test"; import { apiGateway } from "@notation/aws.iac/resources"; import { api, route, router } from "src/api-gateway"; import { lambda } from "src/lambda"; @@ -52,9 +52,7 @@ test("router provides methods for each HTTP verb", () => { for (const method of ["GET", "POST", "PUT", "DELETE", "PATCH"]) { const routerKey = method.toLowerCase() as keyof typeof apiRouter; const routeGroup = apiRouter[routerKey]("/hello", handler as any); - const route = routeGroup.findResource( - "aws/api-gateway/route", - ) as apiGateway.RouteInstance; + const route = routeGroup.findResource(apiGateway.Route); expect(route.config.RouteKey).toEqual(`${method} /hello`); } }); diff --git a/packages/core/src/resource-group.ts b/packages/core/src/resource-group.ts index dba69fe..60be8ea 100644 --- a/packages/core/src/resource-group.ts +++ b/packages/core/src/resource-group.ts @@ -40,7 +40,9 @@ export abstract class ResourceGroup { return resource; } - findResource(type: string) { - return this.resources.find((r) => r.type === type); + findResource Resource>(ResourceClass: T) { + return this.resources.find((r) => r instanceof ResourceClass) as + | InstanceType + | undefined; } } diff --git a/packages/core/test/resource-group.test.ts b/packages/core/test/resource-group.test.ts index caaf326..5c711d0 100644 --- a/packages/core/test/resource-group.test.ts +++ b/packages/core/test/resource-group.test.ts @@ -22,8 +22,15 @@ const TestResource = createResourceFactory<{ a: number }, {}>()({ }, }); +const TestResource2 = createResourceFactory<{ a: number }, {}>()({ + type: "test-resource-2", + deploy() { + throw new Error("Method not implemented."); + }, +}); + const testResource = new TestResource({ config: { a: 1 } }); -const testResource2 = new TestResource({ config: { a: 2 } }); +const testResource2 = new TestResource2({ config: { a: 2 } }); it("creates a resource group", () => { const resourceGroup = new TestResourceGroup("test-group", { a: 1 }); @@ -71,12 +78,12 @@ it("increments resource group IDs", () => { expect(rg2.id).toBe(1); }); -it("finds a resource by type within a group", () => { +it("finds a resource within a group", () => { const resourceGroup = new TestResourceGroup("test-group", { type: "group1" }); const resource = resourceGroup.add(testResource); - expect(resourceGroup.findResource("test-resource")).toBe(resource); - expect(resourceGroup.findResource("nonExistentType")).toBeUndefined(); + expect(resourceGroup.findResource(TestResource)).toBe(resource); + expect(resourceGroup.findResource(TestResource2)).toBe(undefined); }); it("references resources within groups", () => { From b16e438edca02ecd2ea312123333c414e045e039 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Thu, 23 Nov 2023 17:53:00 +0000 Subject: [PATCH 19/21] Fix CI --- .github/workflows/pr.test.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr.test.yaml b/.github/workflows/pr.test.yaml index a899438..a60659d 100644 --- a/.github/workflows/pr.test.yaml +++ b/.github/workflows/pr.test.yaml @@ -41,7 +41,13 @@ jobs: run: pnpm install bun -g - name: Install - run: pnpm install --frozen-lockfile --strict-peer-dependencies + run: pnpm install + + - name: Build + run: bun run build + + - name: Install local bin scripts + run: pnpm install - name: Test run: bun test From 0520b913b0bc05a919042e5c608138d81db6f80a Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:21:05 +0000 Subject: [PATCH 20/21] Fix tests in CI --- test/compiler.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/compiler.test.ts b/test/compiler.test.ts index 671bd11..da62b28 100644 --- a/test/compiler.test.ts +++ b/test/compiler.test.ts @@ -20,5 +20,5 @@ it("generates infra and runtime modules matching source file structure", async ( const actual = await glob("dist/**/*.{js,mjs,zip}", { cwd }); - expect(actual).toEqual(expected); + expect(actual.sort()).toEqual(expected); }); From 56814cc41b9aa042513e7adf2798c57c12693846 Mon Sep 17 00:00:00 2001 From: Daniel Grant <1670902+djgrant@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:26:48 +0000 Subject: [PATCH 21/21] Ensure tests can be run in any order --- .../__snapshots__/api-gateway.test.ts.snap | 208 +++++++++--------- packages/aws/test/api-gateway.test.ts | 9 +- packages/aws/test/lambda.fn.test.ts | 7 +- packages/aws/test/lambda.test.ts | 7 +- packages/core/src/index.ts | 1 + packages/core/src/state.ts | 2 +- packages/core/test/resource-group.test.ts | 4 +- packages/core/test/resource.test.ts | 1 + 8 files changed, 128 insertions(+), 111 deletions(-) diff --git a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap index 4e80ad3..8fd723b 100644 --- a/packages/aws/test/__snapshots__/api-gateway.test.ts.snap +++ b/packages/aws/test/__snapshots__/api-gateway.test.ts.snap @@ -6,7 +6,7 @@ AwsResourceGroup { "name": "api", }, "dependencies": {}, - "id": 1, + "id": 0, "platform": "aws", "resources": [ { @@ -16,8 +16,8 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 1, - "id": 5, + "groupId": 0, + "id": 0, "output": null, "retryOn": undefined, "type": "aws/api-gateway", @@ -35,16 +35,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 1, - "id": 5, + "groupId": 0, + "id": 0, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, }, "deploy": [Function: AsyncFunction], - "groupId": 1, - "id": 6, + "groupId": 0, + "id": 1, "output": null, "retryOn": undefined, "type": "aws/api-gateway/stage", @@ -58,10 +58,10 @@ exports[`route resource group snapshot 1`] = ` AwsResourceGroup { "config": {}, "dependencies": { - "fn": 3, - "router": 2, + "fn": 1, + "router": 0, }, - "id": 4, + "id": 2, "platform": "aws", "resources": [ { @@ -76,8 +76,8 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 2, - "id": 7, + "groupId": 0, + "id": 0, "output": null, "retryOn": undefined, "type": "aws/api-gateway", @@ -92,15 +92,15 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 2, - "id": 7, + "groupId": 0, + "id": 0, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, "lambda": { "config": { - "FunctionName": "function-3", + "FunctionName": "function-1", "Handler": "index.handler.fn.js", "Runtime": "nodejs18.x", }, @@ -112,32 +112,32 @@ AwsResourceGroup { "dependencies": { "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 11, + "groupId": 1, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -148,16 +148,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 9, + "groupId": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "std/zip", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 12, + "groupId": 1, + "id": 5, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -166,16 +166,16 @@ AwsResourceGroup { }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 15, + "groupId": 1, + "id": 8, "output": null, "retryOn": undefined, "type": "aws/api-gateway/integration/lambda", }, }, "deploy": [Function: AsyncFunction], - "groupId": 4, - "id": 16, + "groupId": 2, + "id": 9, "output": null, "retryOn": undefined, "type": "aws/api-gateway/route", @@ -194,7 +194,7 @@ AwsResourceGroup { }, }, "dependencies": {}, - "id": 3, + "id": 1, "platform": "aws", "resources": [ { @@ -203,20 +203,20 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 9, + "groupId": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "std/zip", }, { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -228,27 +228,27 @@ AwsResourceGroup { "dependencies": { "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 11, + "groupId": 1, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, { "config": { - "FunctionName": "function-3", + "FunctionName": "function-1", "Handler": "index.handler.fn.js", "Runtime": "nodejs18.x", }, @@ -260,32 +260,32 @@ AwsResourceGroup { "dependencies": { "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 11, + "groupId": 1, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -296,16 +296,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 9, + "groupId": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "std/zip", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 12, + "groupId": 1, + "id": 5, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -317,7 +317,7 @@ AwsResourceGroup { "dependencies": { "lambda": { "config": { - "FunctionName": "function-3", + "FunctionName": "function-1", "Handler": "index.handler.fn.js", "Runtime": "nodejs18.x", }, @@ -329,32 +329,32 @@ AwsResourceGroup { "dependencies": { "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 11, + "groupId": 1, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -365,16 +365,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 9, + "groupId": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "std/zip", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 12, + "groupId": 1, + "id": 5, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -383,8 +383,8 @@ AwsResourceGroup { }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 13, + "groupId": 1, + "id": 6, "output": null, "retryOn": undefined, "type": "aws/lambda/log-group", @@ -399,15 +399,15 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 2, - "id": 7, + "groupId": 0, + "id": 0, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, "lambda": { "config": { - "FunctionName": "function-3", + "FunctionName": "function-1", "Handler": "index.handler.fn.js", "Runtime": "nodejs18.x", }, @@ -419,32 +419,32 @@ AwsResourceGroup { "dependencies": { "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 11, + "groupId": 1, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -455,16 +455,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 9, + "groupId": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "std/zip", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 12, + "groupId": 1, + "id": 5, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -473,8 +473,8 @@ AwsResourceGroup { }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 14, + "groupId": 1, + "id": 7, "output": null, "retryOn": undefined, "type": "aws/lambda/permission/api-gateway", @@ -489,15 +489,15 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 2, - "id": 7, + "groupId": 0, + "id": 0, "output": null, "retryOn": undefined, "type": "aws/api-gateway", }, "lambda": { "config": { - "FunctionName": "function-3", + "FunctionName": "function-1", "Handler": "index.handler.fn.js", "Runtime": "nodejs18.x", }, @@ -509,32 +509,32 @@ AwsResourceGroup { "dependencies": { "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 11, + "groupId": 1, + "id": 4, "output": null, "retryOn": undefined, "type": "aws/lambda/policy-attachment", }, "role": { "config": { - "RoleName": "3-role", + "RoleName": "1-role", }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 10, + "groupId": 1, + "id": 3, "output": null, "retryOn": undefined, "type": "aws/lambda/role", @@ -545,16 +545,16 @@ AwsResourceGroup { }, "dependencies": {}, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 9, + "groupId": 1, + "id": 2, "output": null, "retryOn": undefined, "type": "std/zip", }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 12, + "groupId": 1, + "id": 5, "output": null, "retryOn": [ "InvalidParameterValueException", @@ -563,8 +563,8 @@ AwsResourceGroup { }, }, "deploy": [Function: AsyncFunction], - "groupId": 3, - "id": 15, + "groupId": 1, + "id": 8, "output": null, "retryOn": undefined, "type": "aws/api-gateway/integration/lambda", diff --git a/packages/aws/test/api-gateway.test.ts b/packages/aws/test/api-gateway.test.ts index 0522b4d..5d063dd 100644 --- a/packages/aws/test/api-gateway.test.ts +++ b/packages/aws/test/api-gateway.test.ts @@ -1,8 +1,13 @@ -import { test, expect } from "bun:test"; +import { test, expect, beforeEach } from "bun:test"; +import { resetResourceGroupCounters } from "@notation/core"; import { apiGateway } from "@notation/aws.iac/resources"; import { api, route, router } from "src/api-gateway"; import { lambda } from "src/lambda"; +beforeEach(() => { + resetResourceGroupCounters(); +}); + test("api resource group snapshot", () => { const apiResourceGroup = api({ name: "api" }); expect(apiResourceGroup).toMatchSnapshot(); @@ -52,7 +57,7 @@ test("router provides methods for each HTTP verb", () => { for (const method of ["GET", "POST", "PUT", "DELETE", "PATCH"]) { const routerKey = method.toLowerCase() as keyof typeof apiRouter; const routeGroup = apiRouter[routerKey]("/hello", handler as any); - const route = routeGroup.findResource(apiGateway.Route); + const route = routeGroup.findResource(apiGateway.Route)!; expect(route.config.RouteKey).toEqual(`${method} /hello`); } }); diff --git a/packages/aws/test/lambda.fn.test.ts b/packages/aws/test/lambda.fn.test.ts index ed5a266..07d1168 100644 --- a/packages/aws/test/lambda.fn.test.ts +++ b/packages/aws/test/lambda.fn.test.ts @@ -1,6 +1,11 @@ -import { test, expect } from "bun:test"; +import { test, expect, beforeEach } from "bun:test"; +import { resetResourceGroupCounters } from "@notation/core"; import { handle, json } from "src/lambda.fn"; +beforeEach(() => { + resetResourceGroupCounters(); +}); + test("handlers wrap user-provided handlers", async () => { const fn = async () => ({ body: "{}" }); for (const handler of Object.values(handle)) { diff --git a/packages/aws/test/lambda.test.ts b/packages/aws/test/lambda.test.ts index acec349..849f0d5 100644 --- a/packages/aws/test/lambda.test.ts +++ b/packages/aws/test/lambda.test.ts @@ -1,5 +1,10 @@ -import { test, expect } from "bun:test"; +import { beforeEach, test, expect } from "bun:test"; import { lambda } from "src/lambda"; +import { resetResourceGroupCounters } from "@notation/core"; + +beforeEach(() => { + resetResourceGroupCounters(); +}); test("lambda resource group snapshot", async () => { const fnResourceGroup = lambda({ diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index c875cf5..8d3b558 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -3,3 +3,4 @@ export * from "./chart"; export * from "./resource"; export * from "./resource-group"; export * from "./state-getters"; +export { resetResourceGroupCounters } from "./state"; diff --git a/packages/core/src/state.ts b/packages/core/src/state.ts index aa90bc6..3b9bed5 100644 --- a/packages/core/src/state.ts +++ b/packages/core/src/state.ts @@ -15,7 +15,7 @@ export const getNextResourceGroupCount = () => { return ++resourceGroupCounter; }; -export const reset = () => { +export const resetResourceGroupCounters = () => { resources = []; resourceGroups = []; resourceCounter = -1; diff --git a/packages/core/test/resource-group.test.ts b/packages/core/test/resource-group.test.ts index 5c711d0..0c7d529 100644 --- a/packages/core/test/resource-group.test.ts +++ b/packages/core/test/resource-group.test.ts @@ -5,10 +5,10 @@ import { getResourceGroups, getResources, } from "src"; -import { reset } from "src/state"; +import { resetResourceGroupCounters } from "src/"; beforeEach(() => { - reset(); + resetResourceGroupCounters(); }); class TestResourceGroup extends ResourceGroup { diff --git a/packages/core/test/resource.test.ts b/packages/core/test/resource.test.ts index 51557c6..b9b0061 100644 --- a/packages/core/test/resource.test.ts +++ b/packages/core/test/resource.test.ts @@ -4,6 +4,7 @@ import { Resource, createResourceFactory } from "src"; it("creates a resource class factory", () => { class TestResource extends Resource<{ name: string }, { id: number }> { type = "test"; + retryOn = []; getDeployInput() { return { name: "testName" }; }